的iOS模拟器连接命令失败(iOS simulator linker command failed)

2019-10-21 05:56发布

我试图发动对模拟器我的iOS应用,但它不工作。 运行于手机的工作原理应用程序正常不过。 它是与我的admon整合。 之前,模拟器运行平稳。 我使用的Xcode 6.1。

我添加了所有必需的框架:

AdSupport  
AudioToolbox  
AVFoundation  
CoreGraphics  
CoreTelephony  
EventKit
EventKitUI 
MessageUI
StoreKit
SystemConfiguration
as well as libGoogleAdMobAds.a

我得到的错误是:

ld: warning: ignoring file /Users/XXXXXXX/Documents/app1/app1/AdSupport.framework/AdSupport, missing required architecture i386 in file /Users/XXXXXXX/Documents/app1/app1/AdSupport.framework/AdSupport (3 slices)
Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_ASIdentifierManager", referenced from:
      objc-class-ref in libGoogleAdMobAds.a(GADDevice.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Answer 1:

转到项目设置和清库搜索路径“信息”,然后重新添加的libGoogleAdMobAds.a框架



Answer 2:

库最有可能不包含任何i386的二进制切片。 它可能包含了设备切片 - 3“iPhone”架构:ARMv7的,armv7s,arm64 - 但不是模拟器的架构,它运行在您的计算机上。 由于二元片不能被发现,链接器丢失的符号,使i386的可执行文件,它不能在模拟器中运行。



Answer 3:

你从哪里得到来自AdSupport.framework程式? 我现在认识到它在你的文档目录。

通常你应该在Xcode链接的目标,在目标设置会:

然后编阶段>链接二进制与图书馆:

搜索“AdSupport”,它应该是iOS8.1下:

图书馆应该有:



文章来源: iOS simulator linker command failed