今天在拿到一个16年的项目来进行维护的时候,在打包的时候发现报错
error: Invalid bitcode signature
clang: error: linker command failed with exit code 1 (use -v to see invocation)
刚开始懵逼的不行,百度了一番发现没解决问题。
后来仔细看了下错误,发现这错误的造成就是因为bitcode错误了。然后结合项目的时间发现,很可能是第三方库再打包.a的时候没做bitcode = NO 这个操作,然后就把可以的第三方SDK做了替换,这个问题成功解决掉了。
所以这个问题的解决方法是看自己项目bitcode选项以及第三方的sdk选项
然后下一步编译发现了下一个错误
framework not found FileProvider for architecture arm64
也就是
framework not found xxxxx for architecture arm64
这个问题解决发现很简单项目用的是xcode8.3运行的,而第三方编译出的.a framewok包是9.0以上的 xocde8 没有这些framework.
找到xcode9的这个路径下/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/ 缺失的文件导入到xcode8对应的地址就ok了
下一个问题
3 duplicate symbols for architecture arm64
image.png
这个问题就是告诉你 有文件重复了。
解决方法