Swift引入Framework时无法访问public属性和方法

从Github下了一个Framework,打算手动生成framework动态库。

参考了下面这篇文章:
xCode6制作动态及静态Framework

将生成的.framework文件导入到自己的项目,并且添加了Embedded Binaries

Embedded Binaries

完成后在需要调用的源文件加上import PKHUD

然后出现了问题:怎么也调用不了framework里明明是public的类、方法、属性

经过反复的尝试,发现了原因:
# 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时调用了lipo命令。在以前制作.a静态库的时候确实只要这句话即可,但是.framework文件中包含了module文件,lipo命令并不会合并两个文件夹中的文件

Module

可以看到只有arm和arm64的module,而模拟器却需要i386和x86_64的module,所以才会调用不了。

将Release-iphonesimulator\XXX.framework\Modules\XXX.swiftmodule中的i386和x86_64的文件拷贝到合并后的framework相应路径,问题解决。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容