在新的 XCode 5.1 中,arm64 已成为构建的标准架构之一。
但是,在我当前的项目中,我包含了尚不支持这种新架构的库(例如 Google AdMob) - 这些现在会导致链接器错误:
ld: symbol(s) not found for architecture arm64
例如,Google AdMob 6.8.0 是 said to be supporting arm64但我无法真正确认这一点,除非 cputype (16777228) cpusubtype (0)
是 arm64? (通过文件命令行工具找到)
libGoogleAdMobAds.a: Mach-O universal binary with 5 architectures
libGoogleAdMobAds.a (for architecture armv7): current ar archive random library
libGoogleAdMobAds.a (for architecture armv7s): current ar archive random library
libGoogleAdMobAds.a (for architecture i386): current ar archive random library
libGoogleAdMobAds.a (for architecture x86_64): current ar archive random library
libGoogleAdMobAds.a (for architecture cputype (16777228) cpusubtype (0)): current ar archive random library
有没有办法解决这个问题?
最佳答案
暂时摆脱arm64并不难。您需要做的就是:
编辑您的目标的build设置。通过打开下拉列表更改
Architectures
的值,单击 Other... 并选择它,删除值为 的行$(ARCHS_STANDARD)
并添加两行值:armv7
和armv7s
(或 nschum 提到的$(ARCHS_STANDARD_32_BIT)
),关闭弹出窗口。编辑值
Valid Architectures
并简单地删除它的arm64
部分。 p>为您的工作区或项目中可能拥有的每个嵌套项目执行此操作。
注意:这不是解决方案,这只是缓解您当前问题的几个步骤,请继续关注您的依赖项目以了解它们何时具有 arm64 兼容性并恢复这些设置的更改尽快。
祝你好运
关于ios - xcode 5.1 中的 Arm64 架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22323039/