В Xcode 4, как создать настройку проекта с несколькими общими файлами? - PullRequest
0 голосов
/ 28 июня 2011

Сейчас я занимаюсь разработкой нескольких приложений для iOS, которые используют несколько общих сторонних библиотек, плюс некоторый собственный общий код.

Это мой макет папки:

- three20 /

Общая настройка всех моих приложений:

-Shared/*chibiORM* (ORM layer)
-Shared/**BaseApp** (This link to chibiORM & three20)
---------------/Libs/(Several small 3dparty libs)

Это приложение должно иметь ссылку на BaseApp и иметь доступ к библиотекам three20, chibiORM и 3dparty party ..

- App1 
- App2
- AppN...

Я знаю, как связать статическую библиотеку с одним проектом, но не могу выполнить эту настройку с несколькими ссылками, где BaseApp ссылается на three20, chibiORM, другие утилиты и App1..N ссылаются на все предыдущие.

Я предпочитаю не связываться с каждым по одному (мои текущие настройки), но вместо этого все они за один раз.

Я могу прекрасно скомпилировать BaseApp и просто добавить проект / перетащить и отпустить) в приложение 1.Затем я помещаю заголовки / frameworks / пути к библиотекам, чтобы они указывали на все из них (интересно, можно ли это упростить до одного пути вместо 5), но я получаю эти ошибки для каждой библиотеки, связанной с BaseApp:

Undefined symbols for architecture i386:
  "__ALog", referenced from:
      -[App1AppDelegate closeDb] in App1AppDelegate.o
      -[App1AppDelegate application:didFinishLaunchingWithOptions:] in App1AppDelegate.o
      -[BoardViewController cardSelected:indexPath:] in BoardViewController.o
      -[BoardViewController gestureRecognizerShouldBegin:] in BoardViewController.o
      -[BoardViewController moveActionGestureRecognizerStateChanged:] in BoardViewController.o
      -[BoardViewController finishedSnap:finished:context:] in BoardViewController.o
      -[BoardViewController animationDidStop:finished:context:] in BoardViewController.o
      ...
  "_sqlite3_unicode_free", referenced from:
      -[App1AppDelegate closeDb] in App1AppDelegate.o
  "_sqlite3_unicode_load", referenced from:
      -[App1AppDelegate application:didFinishLaunchingWithOptions:] in App1AppDelegate.o
  "_OBJC_CLASS_$_Db", referenced from:
      objc-class-ref in App1AppDelegate.o

Возможно ли это?

1 Ответ

0 голосов
/ 29 июня 2011

Я наконец заставляю это работать, комбинируя идеи из http://blog.carbonfive.com/2011/04/04/using-open-source-static-libraries-in-xcode-4/ & http://www.clintharris.net/2009/iphone-app-shared-libraries/.

(ошибки были из-за того, что я забыл связать lib с проектом и никак не связан с вопросом).

Основной трюк состоит в том, чтобы установить в каталоге установки значение $(BUILT_PRODUCTS_DIR) в статических целях lib.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...