Ошибка компоновщика Xcode 7 с помощью RestKit и CocoaPods

Я только что обновился до Xcode 7 и CocoaPods 0.38.2 и после решения некоторых проблем Swift 2 получил следующую ошибку компоновщика с моим смешанным проектом Objective-C и Swift, ориентированным на 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 входит в мой .pch файл и включается перед RestKit в заголовок моста, а биткод выключен. Я использую RestKit 0.24.1.

Так как кажется, что RestKit не обнаруживает присутствие каркаса CoreData, и поэтому его условные объявления, соответственно, передаются, я пробовал много разных способов сообщить моему приложению или модулю RestKit о наличии Core Data, но ничего не помогает.

Ответ 1

Я решил эту проблему, выполнив следующие шаги:

  • Обновите мои кокаподы (0.39.0)
  • Готовые настройки моей цели и поиск путей поиска заголовков.
  • Сделать все пути поиска заголовков рекурсивными (Это важно) Я также попытался сделать рекурсивный реквизит только для restkit, но по какой-то причине я не знаю, что он не работает.
  • Затем отключите биткод.
  • Наконец, построим.

Сводный снимок экрана

Для получения дополнительной информации см. эту ссылку

Ответ 2

Для меня работала модернизация старой версии RestKit (0.23.3) до 0.25.0.

Я также обновил Xcode до 7.0.1, удалил xcworkspace и reer pod install для хорошей оценки.

Ответ 3

обновите свои коко-каподы и xcode7.0.1

и снова удалите xcworkspace и pod install.