У меня возникли проблемы с правильной компиляцией моего рабочего пространства с Cocoapods. В рабочей области есть 3 проекта, каждый из которых имеет свою собственную цель:
- libPods - статическая библиотека Cocoapods со всеми внешними зависимостями
- libCommon - моя статическая библиотека, где я храню весь свой общий код (базовые контроллеры, сетевой код, общий пользовательский интерфейс и т.д.)
- myApp - приложение My iOS
Оба libCommon и myApp требуют внешних зависимостей от libPods. Первоначально я думал, что он будет работать следующим образом:
- libPods строит
- libCommon ссылки на libPods и сборки
- ссылки myApp с libCommon и сборки
В этом случае libCommon "владеет" контейнерами, а затем myApp просто связывается с libCommon, как будто я всегда делал pre-Cocoapods... но, по-видимому, статические библиотеки не любят быть связанными со статическими библиотеками (я получил куча динамических ошибок библиотеки). Я где-то читал о проблеме github, вместо этого мне нужно было создавать libPods и libCommon, а затем myApp должен был ссылаться на обе библиотеки. Прямо сейчас мой подкайл выглядит примерно так:
workspace 'MyApp.xcworkspace'
platform :ios, '5.0'
link_with ['Common', 'MyApp']
target 'MyApp' do
xcodeproj 'MyApp.xcodeproj'
pod 'AFNetworking', '1.1.0'
pod 'TTTAttributedLabel', '1.6.0'
pod 'JSONKit', '1.5pre'
pod 'Reachability', '3.1.0'
end
При этой настройке myApp владеет всеми модулями, а затем в настройках сборки libCommon я указываю путь к заголовкам контейнера. Это создает ОК, пока я не попытаюсь использовать один из классов в libCommon. Как только я это сделаю, я получаю одну из этих ошибок _OBJC_CLASS_$_Blah
(которая говорит мне, что, хотя заголовки доступны, они все еще не связаны должным образом). Когда я пытаюсь вручную связать libCommon в "Build Phases", я получаю кучу повторяющихся ошибок символов (что оставляет мне полагать, что оно уже связано?). Что за черт?
Как правильно это сделать и как должен выглядеть мой podfile?