我刚刚更新了新发布的Xcode 5,我正在开发一个使用Google SDK的iOS应用程序。当我在Xcode 4中开发时,我在我的项目设置中更改了我的Architectures
设置,按照Google的向项目中添加SDK的说明的步骤7
在Xcode 4中,一切都很好。但是,当我在Xcode 5中打开项目时,我会在问题导航器中看到以下警告:
验证项目设置 更新到建议的设置
当我单击警告时,Xcode会带我到我的项目设置,并显示带有“取消”和“执行更改”按钮的弹出窗口,以及它想要进行的更改的以下说明
项目“您的项目”-自动选择架构 项目“您的项目”将覆盖“架构”设置。这将删除设置,并允许Xcode根据可用于活动平台和部署目标的硬件自动选择体系结构。
我试着点击“执行更改”,让Xcode做它想做的任何事情,这个应用程序仍然为模拟器构建得很好。但是,当我尝试插入一个iPhone 5(它支持ARMv7S)并在其上运行时,该应用程序在构建时出现了以下链接程序错误:
Ld /Users/macmini/Library/Developer/Xcode/DerivedData/Your_App-bmrouudjlblpafdjzhpwcuekzgwu/Build/Products/Debug-iphoneos/Your\ App.app/Your\ App normal armv7s
cd "/Users/macmini/Documents/Your App"
setenv IPHONEOS_DEPLOYMENT_TARGET 6.1
setenv PATH "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch armv7s -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk -L/Users/macmini/Library/Developer/Xcode/DerivedData/Your_App-bmrouudjlblpafdjzhpwcuekzgwu/Build/Products/Debug-iphoneos -F/Users/macmini/Library/Developer/Xcode/DerivedData/Your_App-bmrouudjlblpafdjzhpwcuekzgwu/Build/Products/Debug-iphoneos -F/Users/macmini/Documents/Your\ App -filelist /Users/macmini/Library/Developer/Xcode/DerivedData/Your_App-bmrouudjlblpafdjzhpwcuekzgwu/Build/Intermediates/Your\ App.build/Debug-iphoneos/Your\ App.build/Objects-normal/armv7s/Your\ App.LinkFileList -dead_strip -ObjC -fobjc-arc -fobjc-link-runtime -miphoneos-version-min=6.1 -framework SystemConfiguration -framework MapKit -framework QuartzCore -framework OpenGLES -lz -licucore -lc++ -framework ImageIO -framework GLKit -framework CoreText -framework CoreLocation -framework AVFoundation -framework CoreData -framework UIKit -framework Foundation -framework CoreGraphics -framework GoogleMaps -Xlinker -dependency_info -Xlinker /Users/macmini/Library/Developer/Xcode/DerivedData/Your_App-bmrouudjlblpafdjzhpwcuekzgwu/Build/Intermediates/Your\ App.build/Debug-iphoneos/Your\ App.build/Objects-normal/armv7s/Your\ App_dependency_info.dat -o /Users/macmini/Library/Developer/Xcode/DerivedData/Your_App-bmrouudjlblpafdjzhpwcuekzgwu/Build/Products/Debug-iphoneos/Your\ App.app/Your\ App
ld: file is universal (2 slices) but does not contain a(n) armv7s slice: /Users/macmini/Documents/Your App/GoogleMaps.framework/GoogleMaps file '/Users/macmini/Documents/Your App/GoogleMaps.framework/GoogleMaps' for architecture armv7s
clang: error: linker command failed with exit code 1 (use -v to see invocation)
一旦我恢复了Xcode所做的自动修改,我的应用程序再次为iPhone 5编译好了--但我当然收到了警告。
如何在仍然允许我的应用程序为iPhone 5成功构建的同时满足Xcode并消除警告呢?
发布于 2013-09-19 07:47:53
哎呀--就在我贴出这个问题之后,我只花了几秒钟的时间就找到了答案:
现在,您的设置与以前一样,您可以为iPhone 5构建,但是警告已经消失。
我现在觉得有点模糊,因为我花了时间发表这个问题,但我把这个问题和这个答案留在这里,以防它对未来的任何人有帮助。
发布于 2013-09-22 15:15:21
GoogleMapsSDKv1.5现在支持ARMv7S。从v1.5 发布说明
用于iOS的现在附带了一个armv7s片。(第4745期)
在应用程序中支持ARMv7S将提高性能,因此如果您看到问题中描述的警告,最好的操作方法是将Google版本更新为v1.5 (或者更高版本,如果您将来正在阅读此版本),然后双击警告并允许Xcode将您的架构设置更改为默认设置。
发布于 2013-09-19 07:41:38
链接器给出了一个错误,因为您正在使用的GoogleMaps框架不支持armv7s体系结构。也许最新版本的GoogleMaps框架有这样的支持,或者你需要等待谷歌的更新。
https://stackoverflow.com/questions/18898999
复制