私はいくつかの一般的なサードパーティライブラリを共有するいくつかのiOSアプリケーションを開発しています。Xcode 4では、どのようにマルチ共有プロジェクトの設定を作成しますか?
これは私のフォルダのレイアウトです:
- すべての私のアプリthree20/
共通セットアップ:
-Shared/*chibiORM* (ORM layer)
-Shared/**BaseApp** (This link to chibiORM & three20)
---------------/Libs/(Several small 3dparty libs)
このアプリはBaseAppにリンク、およびthree20、chibiORM &を持っている必要があります3dパーティーのlibsアクセス..
- App1
- App2
- AppN...
私はどのように1つのプロジェクトに静的なlibをリンクするのか知っていますが、このマルチリンクの設定には失敗します。ここで、BaseAppはthree20、chibiORM、その他のユーティリティ、App1..Nのすべてのリンクにリンクしています。
私はそれぞれを1つずつ(私の現在の設定)リンクするのではなく、それらのすべてを1つにすることを好みます。
AppAppに細かいBaseAppをコンパイルし、単にプロジェクトを追加/ &のドロップをドラッグすることができます)。次に、ヘッダー/フレームワーク/ライブラリパスをそれらのすべてを指すようにします(ここで5を置くのではなく、単一のパスに簡略化できるのだろうかと思っています)が、BaseAppからリンクされた各libに対してこのエラーが表示されます:
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
これは可能ですか?