Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Xcode 7 linker error with RestKit and CocoaPods

I just upgraded to Xcode 7 and CocoaPods 0.38.2 and, after resolving some Swift 2 issues, got the following linker error with my mixed Objective-C & Swift project targeting iOS 7:

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 is included in my .pch file and is included before RestKit in the bridging header, and Bitcode is off. I'm using RestKit 0.24.1.

Since it appears that RestKit isn't detecting the presence of the CoreData framework and its conditional declarations are accordingly getting passed over, I've tried lots of various ways to tell my app or the RestKit pod about the presence of Core Data, but nothing seems to help.

like image 571
pr1001 Avatar asked Sep 16 '15 22:09

pr1001


2 Answers

I resolved this issue by following these steps:

  1. Upgrade my cocoapods (0.39.0)
  2. Goto build settings of my target and search for header search paths.
  3. Make all header search paths recursive (This is important) I also tried by my making recursive only to restkit but for some reason i don't know it does not work.
  4. Then disable the bitcode.
  5. Finally build.

Reference screenshot

For more information see this link

like image 169
Muhammad Zeeshan Avatar answered Oct 18 '22 21:10

Muhammad Zeeshan


Upgrading from an older version of RestKit (0.23.3) to 0.25.0 worked for me.

I also upgraded Xcode to 7.0.1, deleted xcworkspace, and reran pod install for good measure.

like image 25
Lane Rettig Avatar answered Oct 18 '22 22:10

Lane Rettig