iOS 开发

Xcode 12打包framework 报错:have the

2021-05-12  本文已影响0人  猿逗比

解决此问题的时候走了很多弯路,在这就不多说了。

解决方案:

Target->BuildSetting->Architectures->Excluded Architectures

针对这个问题,详细说明一下:

正常我们打包framework都会需要支持i386、armv7、x86_64、arm64等,因为需要同时满足真机和模拟器的运行。所以我们正常都用将编译后的framework进行合并,命令行如下:

lipo -create 真机文件路径 模拟器文件路径 -output 真机文件路径

文件路径见图:


framework工程位置.jpg
framework在Finder位置.jpg

但是Xcode 12以后模拟器编译生成的framework中也会包含arm64,因此在合并的时候就会出现have the same architectures (arm64) and can't be in the same fat output file的报错,而我们一开始的方式就能解决这个问题。
此处补充一个查看framework包含内容的命令:

lipo -info framework路径

说到这里就会有别的问题了(可能是跟我换电脑有关),换了个M1的Mac之后编译的模拟器framework只有arm64了,x86_64的没有了。
此时需要用到另一个设置了,依然在Target->BuildSetting中,搜索VALID_ARCHS,在这里是描述你编译时需要包含哪些架构的,在后面添加上x86_64即可。

添加x86_64.jpg

写的可能不是太条理,大致的问题就是这么回事,有不明白的可以留言。

补充目前为止Apple移动设备默认指令集:

问题点:

user-defined.jpg
上一篇 下一篇

猜你喜欢

热点阅读