缺少文件中所需的架构armv7?

时间:2012-04-27 09:08:38

标签: iphone objective-c xcode4

我一直收到此警告,任何人都可以提供错误吗?

    ld: warning: ignoring file /Applications/Xcode.app/Contents/Developer/Platforms       /iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/System/Library/Frameworks//SystemConfiguration.framework/SystemConfiguration, missing required architecture armv7 in file
    Undefined symbols for architecture armv7:
    "_SCNetworkReachabilityCreateWithAddress", referenced from:
  +[Reachability reachabilityWithAddress:] in Reachability.o
   "_SCNetworkReachabilityCreateWithName", referenced from:
  +[Reachability reachabilityWithHostName:] in Reachability.o
   "_SCNetworkReachabilityUnscheduleFromRunLoop", referenced from:
  -[Reachability stopNotifier] in Reachability.o
   "_SCNetworkReachabilityScheduleWithRunLoop", referenced from:
  -[Reachability startNotifier] in Reachability.o
   "_SCNetworkReachabilitySetCallback", referenced from:
  -[Reachability startNotifier] in Reachability.o
   "_SCNetworkReachabilityGetFlags", referenced from:
  -[Reachability connectionRequired] in Reachability.o
  -[Reachability currentReachabilityStatus] in Reachability.o
   ld: symbol(s) not found for architecture armv7
   clang: error: linker command failed with exit code 1 (use -v to see invocation)

我的应用程序在模拟器中运行良好我没有得到它就在我构建到手机时。

7 个答案:

答案 0 :(得分:59)

您需要链接SystemConfiguration框架。在Xcode的项目导航器中选择项目,选择您的应用目标,然后选择Build Phases选项卡。在Link Binary With Libraries下,单击“+”按钮并选择SystemConfiguration.framework。

您可能需要以相同的方式添加其他框架依赖项,但添加SystemConfiguration会为我修复相同的错误。

ETA:我直接跳到了错误,没有看到粘贴顶部的ld警告。如果您已经链接到SystemConfiguration,可能尝试删除并重新添加它,如果所有其他方法都失败,请更新Xcode。最新版本肯定有正确的架构,所以对我来说听起来好像你的项目在错误的位置或框架本身的错误。

答案 1 :(得分:4)

当我包含一个使用Carthage构建的框架时,我发生了它,它的部署目标已设置为iOS 11,但我正在为iOS 9构建。因此,32位架构(armv7,i386)丢失了。我已将该框架的部署目标更改为iOS 9并解决了我的问题。

答案 2 :(得分:1)

请务必添加所有必要的库来构建您的应用。这个错误好像你错过了一些文件..

答案 3 :(得分:0)

如果你没有armv7而不是添加它,你可以在你的项目中添加军队(Path => Project tittle(select Xcode blue color reject title) -> Build Setting -> ARCHS)......

希望,这会对你有帮助..

答案 4 :(得分:0)

转到单击项目图标 - >目标 - >构建设置 - >架构

点击 - >其他+并在指定列中添加armv6 ...

清理和构建

答案 5 :(得分:0)

对于框架Twilio Chat客户端,我遇到了同样的问题。当我进入carthage文件夹并在其中打开Twilio Chat客户端框架的Info.plist文件时,最小部署目标设置为11.0,但是我正在为10.0开发应用程序,因此它缺少那些体系结构。

我的解决方法:我将Twilio Chat Client框架降级到了较早的版本,在该版本中,部署目标设置为9.0,并且可以正常使用。

答案 6 :(得分:0)

此问题与XCode在尝试缩短重用旧文件的构建时间时弄乱了调试文件,配置文件和最终发布文件有关。

这就是为什么缺少一种体系结构的原因(可能与您已经使用的体系相反),因为XCode试图重用它为单一体系结构构建的一些先前文件。

在XCode(⇧+⌘+ K)中清除项目,并尝试清除所有其他第三方库。之后,尝试直接在所需的发布模式下重建您的应用程序。无需重新启动XCode,它就能工作100%。

XCode很臭,我还能说什么?

相关问题