Ошибка компиляции с локальным модулем CocoaPods

Я пишу приложение, которое использует внешние библиотеки через CocoaPods, такие как AFNetworking, ReactiveCocoa и т. д., и одну статическую библиотеку, которую я написал ранее. Статическая библиотека также содержит некоторые внешние библиотеки от CocoaPods.

Я сделал свою статическую библиотеку локальным модулем CocoaPods и импортировал ее как один из своих модулей.

Однако при компиляции моего нового приложения произошла ошибка.

Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_YADAClientManager", referenced from:
  objc-class-ref in DZPAppDelegate.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

YADAClientManager — это один из классов моей статической библиотеки, и единственный код, использующий его в моем новом приложении, находится в DZPAppDelegate.m, в application:didFinishLaunchingWithOptions:

[YADAClientManager sharedClientManager];

Как решить эту ошибку компиляции? И спасибо заранее.

Редактировать:

В параметре Build Phrase моего целевого приложения, параметре Link Binary With Libraries, я добавил файл *.a моей статической библиотеки, такой как libPods-MyApp. -MyStaticLibrary.a, описанная выше проблема решена, но появилась другая проблема, связанная с отсутствующими символами AFNetworking и ReactiveCocoa.

После того, как я добавил файлы *.a этих библиотек, проблема решена.

Но я не думаю, что это элегантный способ решить проблему.


person Noah Blues    schedule 22.04.2014    source источник
comment
вы компилируете проект из рабочей области?   -  person Bryan Chen    schedule 23.04.2014
comment
@BryanChen Я использовал файл xcworkspace, предоставленный CocoaPods, а затем скомпилировал свое приложение, поэтому, думаю, я скомпилировал проект из рабочей области.   -  person Noah Blues    schedule 23.04.2014
comment
Я столкнулся с той же проблемой, вы нашли свой ответ?   -  person jAckOdE    schedule 15.07.2014
comment
@jAckOdE Я удалил все файлы libPods-*.a в разделе Link Binary With Libraries и добавил нужные мне файлы libPods-*.a один за другим, и проблема была решена.   -  person Noah Blues    schedule 15.07.2014


Ответы (1)


Я столкнулся с похожей проблемой: модифицированный модуль не компилируется

Мне удалось выяснить, что исходные файлы моего пода и статическая библиотека (.a) были закэшированы по этому пути:

/Users/'‹'username'>'/Library/Developer/Xcode/DerivedData/Example-gdaxkniovwphxbdlndbmlfqn/Build/Products/Debug-iphoneos

Этот путь также упоминается в вашей цели: «Настройки сборки»> «Пути поиска»> «Пути поиска фреймворка».
Я удалил эти кэшированные файлы, и мой модуль был перестроен с новыми символами. У меня ушло 2 дня на отладку.

person K.K    schedule 25.02.2016