用 CocoaPods 安装的库在 Release 模式下编译失败

2015-06-17 18:06:29 +08:00
 pheyer
Archive与Profile时设置Release模式都是编译失败,Profile时如果设置为Debug编译就没有问题。报的错为Undefined symbols for architecture armv7(或arm64)
找到那些库的.a文件,用lib -info命令查询,要不就全是armv7格式的,要不就全是armv7格式,搞不清是哪里设置不对,这里有人碰到过吗?
2959 次点击
所在节点    iDev
8 条回复
pheyer
2015-06-17 18:12:43 +08:00
排除Build Active Architecture Only设置问题,都设置了Debug为YES,Release为NO.
fangjinmin
2015-06-17 18:15:29 +08:00
看看Pods.release.xcconfig的设置对不对吧。
pheyer
2015-06-17 18:23:01 +08:00
@fangjinmin 要看哪项?我简单对比了Pods.release.xcconfig和Pods.debug.xcconfig,应该是一样的
pheyer
2015-06-17 18:47:13 +08:00
有个地方弄错了,应该是没有生成Release版本的pod版本库,在DerivedData文件夹中,无论是app的Build/Intermediates/Pods.build路径下还是Build/Products/路径下,都没有生成Release-iphoneos文件夹,自然也就没有Release库了。还是很奇怪。
报错是在最后一步Link时才出错的,也就是前面的cocoapods库和自己的源码编译都没有问题
pheyer
2015-06-17 19:23:55 +08:00
现在的问题是生成了Release-iphoneos文件夹,而且其中的.a库用lipo -info命令查看都是支持armv7 arm64,依然是报同样的错
pheyer
2015-06-17 20:11:36 +08:00
解决了,真TM坑啊,要在Build Setting - Linking - Other Linker Flags - Release - Any Architecture | Any SDK里加上$(inherited),使得Other Linker Flags下Debug和Release都显示一样的,光对Release设置$(inherited)无效。
另外上面做完后,编译还是一样的错,clear deriveddata文件夹后再编译就好了
wajmjjj
2015-06-17 20:55:53 +08:00
原来是这样
wezzard
2015-06-18 02:57:20 +08:00
我也遇到過同樣的問題

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/199328

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX