XCode:架构arm64错误的未定义符号

时间:2014-01-04 20:54:21

标签: ios xcode5 restkit

在我的XCode 5项目中,我使用RestKit进行REST通信。 使用模拟器一切正常,但生成ipa文件,我收到以下错误:

ld: warning: ignoring file /Users/joseph/Library/Developer/Xcode/DerivedData/XXXXXXXXXX-gdwdekevxtdfivfpsnmyykeqhulk/Build/Products/Debug-iphoneos/libRestKit.a, missing required architecture arm64 in file /Users/joseph/Library/Developer/Xcode/DerivedData/XXXXXXXXXXXXX-gdwdekevxtdfivfpsnmyykeqhulk/Build/Products/Debug-iphoneos/libRestKit.a (2 slices)
Undefined symbols for architecture arm64:
  "_OBJC_CLASS_$_RKRelationshipMapping", referenced from:
      objc-class-ref in classname-xxx.o
  "_OBJC_CLASS_$_RKObjectMapping", referenced from:
      objc-class-ref in classname-xxx.o
  "_OBJC_CLASS_$_RKRequestDescriptor", referenced from:
      objc-class-ref in classname-xxx.o
  "_OBJC_CLASS_$_RKObjectManager", referenced from:
      objc-class-ref in classname-xxx.o
  "_OBJC_CLASS_$_RKResponseDescriptor", referenced from:
      objc-class-ref in classname-xxx.o

  "_RKStatusCodeIndexSetForClass", referenced from:
      -[classname-xxx classname-Method] in classname-xxx.o
      -[classname-xxx classname-Method] in classname-xxx.o
      -[classname-xxx classname-Method] in classname-xxx.o
      -[classname-xxx classname-Method] in classname-xxx.o
      -[classname-xxx classname-Method] in classname-xxx.o
  "_RKMIMETypeJSON", referenced from:
      -[classname-xxxinitWithURLBase:timeOut:] in classname-xxx.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation).

如果在RestKit项目中,我更改了“Build Settings” - > “架构”标准体系结构(包括64位)(ARMv7,armv7s,arm64)选项的“标准体系结构(ARMv7,armv7s)”,一切都编译得很好。这是正确的吗?,没有带来任何结果,我必须改变一些其他设置。

6 个答案:

答案 0 :(得分:5)

这只是意味着您正在为64位(iPhone 5s)构建项目而无需担心,请参阅此链接以获取更多解释: Xcode 5 and iOS 7: Architecture and Valid architectures

答案 1 :(得分:4)

  1. 选择Restkit项目
  2. 仅构建活动架构设置为No
  3. Build Active Architecture Only

答案 2 :(得分:3)

只需更改RestKit项目 - >构建设置 - >标准体系结构的架构(armv7,armv7s,arm64)。之后一切都应该有效。

答案 3 :(得分:1)

我遇到了实现AVPictureInPictureController的相同/类似问题,问题是我没有在我的项目中链接AVKit框架。

错误消息是:

架构armv7的未定义符号:

"_OBJC_CLASS_$_AVPictureInPictureController", 
referenced from:
   objc-class-ref in yourTarget.a(yourObject.o)
ld: symbol(s) not found for architecture armv7

clang:错误:链接器命令失败,退出代码为1(使用-v查看调用) 解决方案:

转到您的项目 选择你的目标 然后,转到Build Phases 用库打开链接二进制文件 最后,只需添加+ AVKit框架/任何其他框架。 希望这可以帮助其他人遇到类似的问题。

答案 4 :(得分:1)

这对我有用:

ios sdk 9.3

进入app.xcodeproj的构建设置有效架构​​:armv7 armv7s构建活动架构:否

清洁和建造,为我工作。

答案 5 :(得分:0)

在我的情况下,我忘了在我的项目中添加sqlite库。 从Linked框架和库添加库后,构建成功。