swift打包库踩坑
1、新建动态包项目
1
2、配置支持版本,配置打包库的类型(此出我们选择动态库,关于这几种库的异同请百度)
2
3、添加测试文件,注意swift包,如果想被外部访问,需要用public或open描述,且用@objc描述(以前是不需要的)
3
4、导入第三方库,此处以SDWebImage为例.打包库里不能使用cocoapod的方式导入三方库,所以我去github下载了包,自己生成了iOS真机模拟器通用包(具体github有教程),导入第三方库后在头文件import
4
5、使用三方框架
5
6、添加需要支持的指令集(模拟器32位处理器测试需要i386架构,模拟器64位处理器测试需要x86_64架构,真机32位处理器需要armv7,或者armv7s架构,真机64位处理器需要arm64架构。arm64e架构用于A12芯片组,该芯片组在最新的2018 iPhone型号(XS / XS Max / XR)中添加)
6
7、设置打包环境,选择release或者debug
7-1
7-2
8、编译生成动态库
8-1
8-2
9、使用lipo -create -output命令生成真机模拟器通用包
9
10、使用最终生成的framework,导入生成的动态库,导入依赖的sdwebimage库,设置embed & sign
10-1
导入使用报错,找不到x86_64对应的模拟器指令集文件
10-2
我们cd到刚才生成的动态包目录,查看包支持的指令集(lipo -info),显示是有是有x86_64的
10-3
最后找到原因,
10-4
最后得到
10-5
11、重新导入生成的framework,成功编译使用,真机模拟器都可以使用
11