简单明了的记录一下打包静态库.a的步骤
1.编译出.a文件: 分别在真机和模拟器的Debug或者Release环境下编译,得到拿到对应的libAppEngine文件
2020-01-03 下午4.34.12.png
2.在Products目录下得到.a文件(就是项目最下面Products/libAppEngine.a),右键选择show in finder
2020-01-03 下午4.43.37.png
3.在finder里面,可以看到编译的Release-iphoneos和Release-iphonesimulator两个文件夹,把他们拷贝到你的桌面(只是为了使用命令行操作方便)
2020-01-03 下午4.53.57.png
4.在终端,cd 到你的桌面,然后lipo -create Release-iphoneos/libAppEngine.a ./Release-iphonesimulator/libAppEngine.a -output libAppEngine.a,得到一个新的 libAppEngine.a 文件就是你需要的静态库文件。
注意: 第四步是为了模拟器和真机都可以使用,如果不需要模拟器的话可以忽略这步,直接使用第三步Release-iphoneos文件夹下的 libAppEngine.a文件就好了。
====================xcode13 问题====================
最近发现用xcode13打包会出现一个问题,记录一下
2021-11-16 下午4.28.50.png
报错:have the same architectures (arm64) and can't be in the same fat output file
这个问题出现的原因是Xcode 12以后模拟器编译生成的framework中也会包含arm64,导致出现真机库和模拟器库不能合并的问题。
XCode12之前:
编译模拟器静态库支持i386 x86_64两架构
编译真机静态库支持armv7 arm64两架构
使用在编译模拟器的时候加上arm64就好了,注意:编译真机的时候要删除arm64,否则把合并完之后的.a文件加到项目里会报错
2021-11-16 下午4.32.13.png