У меня есть основной проект и несколько небольших подпроектов. Небольшие проекты содержат как автономное приложение Cocos2d, так и статическую библиотеку, содержащую только классы, относящиеся к основному проекту (все подпроекты используют инфраструктуру Cocos2D). Основной проект зависит от статических библиотек. Я думаю, что этот подход теоретически обоснован, но на практике он не работает.
Симптом, который я вижу, заключается в следующем: когда код выполняется как часть основного проекта, значения препроцессора работают. Когда я запускаю приложение подпроекта, оно запускается, как и ожидалось.
Я установил параметр компоновщика -all_load
в основной цели. Это потому, что классы в подпроектах упоминаются только в файлах nib. Без -all_load
классы «оптимизируются» вне основной цели, так как компилятор неправильно определяет код как лишний.
Я связал все подпроекты с необходимыми им .frameworks.
Это поправимо или этот подход обречен на провал? Как еще я могу управлять этими проектами без статических библиотек? Другие разработчики работают над подпроектами, и подход со статической библиотекой не позволяет нам взаимодействовать друг с другом.
Обновление
Чтение этого вопроса заставляет меня думать, что я должен был сделать перерыв намного раньше! Вопрос не очень хорошо объясняет проблему (или не имеет большого смысла!). Проблема связана с тем, как использовать подпроекты для организации кода. Я сейчас почти решил проблему. Я, вероятно, напишу пост в блоге, когда полностью его решу.