一、正文
问:
RT,最近有看到UWA_GOT工具新增了iOS版本的支持,于是下载了最新的工具包进行了接入测试。是按照文档直接将UWA_GOTv2.0.1_iOS.unitypackage导入进了Unity项目内,并且做了配置。但是发现添加了UWA_GOT插件以后iOS上不能正常出包,总是卡在xcodebuild archive这一步:报错信息如下:
** ARCHIVE FAILED **
The following build commands failed:
Check dependencies
我们打的是Distribution包,是否跟这个有关系?已经确认就是添加了UWA_GOT插件以后引起无法打包的问题,因为在移除了SDK以后可以顺利出包了
答:
自问自答,解决了,是被上面的报错信息混淆了视听。之前因为打包机环境比较复杂,有的时候不能得到真正的报错位置。而且同时还要不停地有出包任务,不好做调试。所以今天单独在一台纯净的Mac上面模拟了打包环境,并接入UWA_GOT的iOS版SDK,测试了以后有以下发现:
- 导出xcode工程并且在xcode中直接build不会报错。
- 导出xode工程,然后在xcode中执行Build Archive会报错
报错信息类似于下面这样:
ld: bitcode bundle could not be generated because '/xx/libuwa.a' was built without full bitcode. All object files and libraries for bitcode must be generated from Xcode Archive or Install build for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
这样就比较好解决了,原因是如果一个工程里面有静态库的引用,那么所有的静态库也需要打开Bitcode后重新编译。这一切在直接Build的时候都没有问题,但是在“Archive”的时候就会报错。我们在出iOS包的流程是先Build Archive 然后在export Archive导出ipa,因此就会出现问题了。
解决方法比较简单:我是直接在执行xcodebuild命令的时候把EnableBitcode设置为NO了,类似于下面的命令:
xcodebuild -target-configuration **ENABLE_BITCODE=NO**
看网上还有一种解决办法是不关闭bitcode,然后在执行xcode build命令的时候带上:
OTHER_CFLAGS="-fembed-bitcode"
参数,后面这种没有试过不知是否奏效。希望可以帮助到大家。
如果觉得本篇博客对您有帮助,可以扫码小小地鼓励下马三,马三会写出更多的好文章,支持微信和支付宝哟!
作者:马三小伙儿
出处:https://www.cnblogs.com/msxh/p/11963760.html
请尊重别人的劳动成果,让分享成为一种美德,欢迎转载。另外,文章在表述和代码方面如有不妥之处,欢迎批评指正。留下你的脚印,欢迎评论!