简体   繁体   中英

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.

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.

参考屏幕截图

For more information see this link

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.

upgrade you cocoapods and xcode7.0.1

and remove xcworkspace and pod install again.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM