26

我不断收到此警告和错误,有人可以帮忙吗?

    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)

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

4

7 回答 7

65

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

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

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

于 2012-05-23T01:51:56.170 回答
10

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

于 2018-03-04T13:32:36.707 回答
3

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

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

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

XCode 很臭,我还能说什么?

于 2020-11-30T22:00:37.630 回答
1

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

于 2012-04-27T09:43:53.773 回答
0

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

希望对你有帮助..

于 2012-04-27T09:13:42.797 回答
0

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

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

于 2020-04-06T05:19:04.573 回答
-1

转到单击项目图标-> 目标-> 构建设置-> 体系结构

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

清理和构建

于 2012-04-27T09:58:10.993 回答