從Github下了一個Framework,打算手動生成framework動態(tài)庫认境。
參考了下面這篇文章:
xCode6制作動態(tài)及靜態(tài)Framework
將生成的.framework文件導(dǎo)入到自己的項目魁亦,并且添加了Embedded Binaries
Embedded Binaries
完成后在需要調(diào)用的源文件加上import PKHUD
然后出現(xiàn)了問題:怎么也調(diào)用不了framework里明明是public的類妒牙、方法、屬性
經(jīng)過反復(fù)的嘗試,發(fā)現(xiàn)了原因:
# 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}"
用腳本合并模擬器和真機的framework時調(diào)用了lipo命令。在以前制作.a靜態(tài)庫的時候確實只要這句話即可硅堆,但是.framework文件中包含了module文件屿讽,lipo命令并不會合并兩個文件夾中的文件昭灵。
Module
可以看到只有arm和arm64的module,而模擬器卻需要i386和x86_64的module伐谈,所以才會調(diào)用不了烂完。
將Release-iphonesimulator\XXX.framework\Modules\XXX.swiftmodule中的i386和x86_64的文件拷貝到合并后的framework相應(yīng)路徑,問題解決诵棵。