【问题标题】:missing required architecture armv7 in file?文件中缺少所需的架构 armv7?
【发布时间】:2012-05-08 00:56:46
【问题描述】:

我不断收到此警告和错误,谁能帮忙?

    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)

我的应用程序在模拟器中运行良好我不明白这一点,只是在我构建到手机时。

【问题讨论】:

    标签: iphone objective-c xcode4


    【解决方案1】:

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

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

    ETA:我直接跳到错误并没有在粘贴顶部看到 ld 警告。如果您已经链接到 SystemConfiguration,则可以尝试删除并重新添加它,如果一切都失败了,请更新 Xcode。最新版本肯定具有正确的架构,所以在我看来,要么是您的项目找错了地方,要么是框架本身有问题。

    【讨论】:

    • 你,我的朋友,摇滚。这花了 30 秒,并立即为我解决了。谢谢。
    • 谢谢!你刚刚把我从一个漫长的下午中解救了出来 :)
    • 也为我工作。我认为这是正确的答案。
    • 刚刚意识到我从来没有真正接受这个作为正确答案。
    • 叹息。现在是 2016 年。为什么 Xcode 不能帮助我们解决此类问题,而不是喷出模糊的错误消息?!我昨天注意到 apple.com/feedback 网站可以让您对所有 Apple 硬件和软件提供反馈,Xcode 除外。有趣的是……无论如何,谢谢 - 这完美地解决了我的问题!
    【解决方案2】:

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

    【讨论】:

    • 感谢这有很大帮助!对我来说同样的问题。
    【解决方案3】:

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

    这就是缺少架构的原因(它可能与您已经使用的相反),因为 XCode 试图重用它为单个架构构建的一些以前的文件。

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

    XCode 很臭,我还能说什么??

    【讨论】:

    • 这帮我解决了,谢谢!
    【解决方案4】:

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

    【讨论】:

      【解决方案5】:

      如果您没有 armv7,请在此 ARCHS 中的项目中添加军队 (Path => Project tittle(select Xcode blue color reject title) -> Build Setting -> ARCHS),然后添加它...

      希望对你有帮助..

      【讨论】:

        【解决方案6】:

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

        我是如何解决的:我将我的 Twilio Chat Client 框架降级到了部署目标设置为 9.0 的早期版本,并且可以正常工作。

        【讨论】:

          【解决方案7】:

          Go To 点击项目图标-> Targets -> Build Settings -> Architectures

          点击->其他+,在指定列添加armv6..​​.

          清理和构建

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-04-03
            • 1970-01-01
            • 2015-10-10
            • 2013-10-15
            • 2013-12-14
            • 2014-12-20
            • 1970-01-01
            • 2016-02-03
            相关资源
            最近更新 更多