iOS小記--libtool: can't locate file for: -lPods-xxx
先說下我遇到的情況,需求是將一個包含cocoapods的framework打成混合的framework,這裡用到lipo -create,有很多優秀的部落格都提到了如何打包的問題,同時還提到了一種更加方便的方式,使用Aggregate(我的坑也就是這裡來的)。
***�
- 坑
填坑過程不再贅述,這裡貼一下報錯資訊。標題裡是我通過百度搜尋的關鍵字,但是我運氣不太好,沒能找到有效的答案。
原因
說起來其實很簡單,還記得在做xcodebuild打包的時候有一句話,如果專案包含workspace,請使用-workspace關鍵字替代-target。是的,問題就是這麼簡單,前文部落格裡提供的指令碼是針對一般的framework打包的,並沒有使用workspace,而我的專案因為用到了cocoapods,所以悲劇了。後記
後面在build過程中還有遇到一個路徑不對導致的報錯問題,修改路徑成有效路徑就好。貼一下修改之後的指令碼,適用於帶有.xcworkspace的專案。
# Sets the target folders and the final framework product.
# 如果工程名稱和Framework的Target名稱不一樣的話,要自定義FMKNAME
# 例如: FMK_NAME = "MyFramework"
FMK_NAME=${PROJECT_NAME}
# Install dir will be the final output to the framework.
# The following line create it in the root folder of the current project.
INSTALL_DIR=${SRCROOT}/Products/${FMK_NAME}.framework
# Working dir will be deleted after the framework creation.
WRK_DIR=${SRCROOT}/build
DEVICE_DIR=${WRK_DIR}/Release-iphoneos/${FMK_NAME}.framework
SIMULATOR_DIR=${WRK_DIR}/Release-iphonesimulator/${FMK_NAME}.framework
# -configuration ${CONFIGURATION}
# CONFIGURATION_BUILD_DIR=xxx
# Clean and Building both architectures.
# 適用於帶有.xcworkspace ,否則請檢視:(http://yzlyty.github.io/2016/11/22/create-a-framework-and-bundle-containing-resources-for-ios-oc/)
xcodebuild -configuration "Release" -workspace "${FMK_NAME}".xcworkspace -scheme "${FMK_NAME}" -sdk iphoneos clean build CONFIGURATION_BUILD_DIR=${WRK_DIR}/Release-iphoneos
xcodebuild -configuration "Release" -workspace "${FMK_NAME}".xcworkspace -scheme "${FMK_NAME}" -sdk iphonesimulator clean build CONFIGURATION_BUILD_DIR=${WRK_DIR}/Release-iphonesimulator
# Cleaning the oldest.
if [ -d "${INSTALL_DIR}" ]
then
rm -rf "${INSTALL_DIR}"
fi
mkdir -p "${INSTALL_DIR}"
cp -R "${DEVICE_DIR}/" "${INSTALL_DIR}/"
# Uses the Lipo Tool to merge both binary files (i386 + armv6/armv7) into one Universal final product.
lipo -create "${DEVICE_DIR}/${FMK_NAME}" "${SIMULATOR_DIR}/${FMK_NAME}" -output "${INSTALL_DIR}/${FMK_NAME}"
rm -r "${WRK_DIR}"
open "${INSTALL_DIR}"
相關文章
- The scripts outputs "Can't locate Net/SNMP.pm in @INC.....
- ?Error: Can't locate /etc/centreon/conf.pm in @INC (@INError
- MongoDB報錯:"assertion" : "can't map file memory"MongoDB
- 關於收到localhost modprobe: modprobe: Can't locate module ethX的錯誤localhost
- can't create PID file問題處理
- Linux安裝openssl出現Can‘t locate IPC/Cmd.pm in @INCLinux
- mha_replication_check Can't exec "mysqlbinlog": No such file or directoryMySql
- errors in crontab file, can't install. - linux crontabErrorLinux
- CentOS 6.5安裝perl模組報錯'Can't locate ExtUtils/Manifest.pm'CentOS
- cordova 解決can’t not find moudle " plugman platform ios"PlatformiOS
- Can't locate DBI.pm in @INC (@INC contains: /usr/lib64/perl5AI
- Can't locate Config.pm in @INC (@INC contains: /ade/smayer_perl58AI
- Fatal error: can't check configuration file '/home/watt/proxy/dError
- rman: can't open target
- 【crontab】“bad minute”及“errors in crontab file, can't install”錯誤處理Error
- 啟動infobright的時候遇見Can't find file: './mysql/host.frm'MySql
- mail can't send title on SolarisAI
- Docker 掛載許可權 chcon: can't apply partial context to unlabeled fileDockerAPPContext
- linux操作提示:“Can't open file for writing”或“operation not permitted”的解決辦法LinuxMIT
- MySQL_ERROR 1231 (42000) at line XX in file 'file_name' Variable 'time_zone' can't beMySqlError
- datastage7.5 can't view data?ASTView
- [筆記].痛哉!!!Error: Can't access JTAG chain, Error: Operation failed筆記ErrorAI
- "locate: can not open `/var/lib/mlocate/mlocate.db"問題解決
- Android 4.2.2_r1 online-gcm-ref及couldn't locate source file編譯錯誤解決AndroidGC編譯
- TypeError: can‘t concat str to bytesError
- Mongoose can't update timestampGo
- [ERROR] Can't open the mysql.plugin tableErrorMySqlPlugin
- mysql遇到Variable can’t be set to the value of ‘NULL’MySqlNull
- Oracle dbconsole can't startOracle
- mysql can't start dues to the disk space is fullMySql
- [重慶思莊每日技術分享]-解除安裝grid時執行指令碼報錯Can't locate Env.pm in @INC指令碼
- redis : Can't save in background: fork: Cannot allocate memoryRedis
- Supervisor 解決 can't find command *
- Can't load IA 32-bit .dll on a
- eslint --fix 報錯 can't not find modulesEsLint
- mysql [ERROR] Can't create IP socket: Permission deniedMySqlError
- 解決can't find -lGL的問題
- RMAN的"rman: can't open target"錯誤