在新的XCode 5.1中,arm64已成为构建的标准架构之一.
但是,在我目前的项目中,我包含了尚未支持这种新架构的库(例如Google AdMob) - 这些现在导致链接器错误:
ld: symbol(s) not found for architecture arm64
Run Code Online (Sandbox Code Playgroud)
据说谷歌AdMob 6.8.0 支持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
Run Code Online (Sandbox Code Playgroud)
有办法解决这个问题吗?
我的项目开始做一些奇怪的事.我可以构建并测试好,但是当我存档时,我得到:
Warning all apps should include an armv7 architecture
Run Code Online (Sandbox Code Playgroud)
在Target构建设置中,我将架构设置为$(ARCHS_STANDARD),将Base SDK设置为最新iOS,将有效架构设置为arm64 armv7 armv7s
我搜索了这个并发现了几个解决方案,要求转到Target> Build Settings> Build Active Architecture Only并将其设置为NO.
这样做,项目将不再构建,我得到:
CCDirectorIOS.h Semantic issue
Redefinition of '__ccContentScaleFactor' with a different type:
'CGFloat' (aka double) vs 'float'
Run Code Online (Sandbox Code Playgroud)
我很喜欢这个项目,这是我第一次遇到这个问题.我已经尝试从早期的良好备份恢复,我得到了同样的问题,所以大概这是由Xcode更新引起的,而不是我自己的代码引起的.
有什么建议?