Xcode 5.1 升级后的架构链接错误

3
我遇到了以下错误:
libGPUImage.a,该文件是为不被链接的架构(armv7s)而构建的存档文件,
libPods.a,该文件是为不被链接的架构(armv7s)而构建的存档文件
等等...
这些是我的项目设置:
架构:armv7、armv7s、arm64
仅构建活动架构:否
有效架构:armv6 armv7 armv7s arm64 i386

除了下载最新的Xcode 5.1和iOS 7.1 SDK之外,我没有改变任何东西。在Xcode 5.0和iOS 7.0 SDK下,这个项目运行良好。可能是什么问题呢?


这里有一个选择:https://dev59.com/Hn3aa4cB1Zd3GeqPd399 - ohho
这可能是一个可行的修复方案 https://dev59.com/Ln3aa4cB1Zd3GeqPdnqj#22682667 - Hardik Darji
5个回答

4

前往 Build Settings -> 架构。

您可能已经设置了标准架构,对吗?

从 Xcode 5.1 开始,标准架构包括 arm64,而您还没有准备好支持它。

选择 Other..

双击 $(ARCHS_STANDARD) 并将其更改为 $(ARCHS_STANDARD_32_BIT)

注意:这只是一个临时解决方法。您可能正在使用某个未带有 64 位切片的静态库。请查看是否有可用的静态库并将架构切换回标准架构。


3
我曾经遇到了很多类似的问题,当我升级到Xcode 5.1时。我通过首先更新CocoaPods解决了这些问题: gem update cocoapods 然后在我的项目中更新pods: pod update 在我的情况下,我的~/.cocoapods目录中有一些损坏的东西导致pod抛出错误。删除~/.cocoapods中的所有内容,然后再次运行pod update使事情重新正常运转。

您手动从架构中删除了arm64吗?Cocopods似乎无法拉取64位版本。 - kgibbon
不,我所要做的就是更新CocoaPods本身和我正在使用的pods,然后架构构建错误就消失了。 - Nick Forge

2
我们曾经也遇到过类似的问题,问题出在“Architectures”下的“Standard Architectures”原本只包含armv7, armv7s,但是在Xcode 5.1中苹果将“Standard Architectures”改为了armv7, armv7s, arm64,因此现在你需要手动输入自己的架构而不是选择“Standard”。

这很可能是OP的正确答案。目前5.1的标准架构包括arm64,之前没有包括。OP可以将arm64从架构中删除并添加两个早期的32位版本,或者更好的是找到链接库的64位版本。 - Craig Otis
1
更改设置以从架构中删除arm64,但没有任何作用。https://www.dropbox.com/s/h3dcod63hxmrgn4/Screen%20Shot%202014-03-11%20at%205.59.40%20PM.png - kgibbon

0
在我的情况下,通过将_view更改为self.view来解决了问题。

0

在某个文本编辑器(例如SublimeText)中打开您的./Pods/Pods.xcodeproj/project.pbxproj文件。通常使用终端中的以下命令(请注意,您必须在项目目录中)st ./Pods/Pods.xcodeproj/project.pbxproj查找并替换ONLY_ACTIVE_ARCH = YESONLY_ACTIVE_ARCH = NO。同样,您也可以对{YOUR_PROJECT}.xcodeproj/project.pbxproj执行相同的操作。最后,在Xcode中清理并运行!

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接