1.准备源码
这个就不用说了
2.支持的设备指令集
为了在不同设备上运行需要支持不同的指令集
模拟器的指令集是有限的
常见的指令集如下
1 | armv6:iPhone2G/3G、iPod 1G/2G |
从上面可以看出
目前只要支持arm64 armv7 armv7s
这三个指令集就可以了
但是为了支持模拟器运行
还需要支持i386 x86_64
才行
3.合并真机和模拟器
这是因为真机和模拟器编译出来的支持的指令集不一样
合并之后就能支持更多的指令集了
查看指令集命令
1 | lipo -info xxx.a |
后面加上静态库地址
这样就能看到静态库文件所支持的指令集了
如果两个静态有重复的指令集就会合并不了
解决的办法有两种
第一种在编译的时候去掉
1 | Target->BuildSetting->Architectures->Excluded Architectures |
可以选择在Debug
或者Release
添加需要去除的指令集
因为Xcode
可以开发很多东西
所以你需要在里面选择
假如真机和模拟器的指令集冲突
你可以在选择在真机编译的时候去掉一个
就选择Any iOS
或者在模拟器编译的时候去掉一个
就选择Any iOS Simulator
第二种编译好去掉
1 | lipo -remove i386 xxx.a -output noi386.a |
然后就是合并
1 | lipo -create zhenji.a moni.a -output hebing.a |
4.测试
直接放进项目里
试一下真机和模拟器
没有问题就可以了