与RestKit和CocoaPods的Xcode 7链接器错误

时间:2015-09-16 22:40:27

标签: ios core-data linker restkit

我刚刚升级到Xcode 7和CocoaPods 0.38.2,在解决了一些Swift 2问题之后,我的混合Objective-C&针对iOS 7的Swift项目:

Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_RKManagedObjectRequestOperation", referenced from:
      objc-class-ref in NetworkHelper.o
  "_OBJC_CLASS_$_RKManagedObjectResponseMapperOperation", referenced from:
      type metadata accessor for ObjectiveC.RKManagedObjectResponseMapperOperation in MappingHelper.o
  "_RKLogCoreDataError", referenced from:
      ___33-[RKEntityByAttributeCache load:]_block_invoke in libRestKit.a(RKEntityByAttributeCache.o)
      ___43-[RKManagedObjectImporter finishImporting:]_block_invoke in libRestKit.a(RKManagedObjectImporter.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

CoreData包含在我的.pch文件中,并且在桥接标头中包含在RestKit之前,而Bitcode已关闭。我使用的是RestKit 0.24.1。

由于似乎RestKit没有检测到CoreData框架的存在并且其条件声明因此被传递,我已经尝试了很多种方法来告诉我的应用程序或RestKit pod有关存在核心数据,但似乎没有任何帮助。

3 个答案:

答案 0 :(得分:4)

我按照以下步骤解决了这个问题:

  1. 升级我的cocoapods(0.39.0)
  2. 转到目标的构建设置并搜索标题搜索路径。
  3. 使所有标题搜索路径递归(这很重要)我还尝试通过仅对restkit进行递归,但出于某种原因我不知道它不起作用。
  4. 然后禁用bitcode。
  5. 终于建立。
  6. Reference screenshot

    了解更多信息see this link

答案 1 :(得分:1)

从旧版RestKit(0.23.3)升级到0.25.0对我有用。

我还将Xcode升级到7.0.1,删除了xcworkspace,然后重新pod install以获得良好的衡量标准。

答案 2 :(得分:0)

升级你的cocoapods和xcode7.0.1

并再次删除xcworkspace和pod安装。