2016-07-12 3 views
0

iOSデバイス(シミュレータではありません)で使用するためにXcodeにかなりシンプルなCocoa Frameworkを構築しました。私は静的ライブラリを構築する別のプロジェクトにこのフレームワークを落としました。この静的ライブラリをビルドすると、エラーなく成功します。問題はまだありません。スタティックライブラリサブプロジェクトで使用されるCocoaフレームワーク構築時にシンボルが見つかりません

NOW: 静的ライブラリプロジェクトをサブプロジェクトとして含む実際のiOSアプリプロジェクトがあります。 project layout

私はこのアプリを構築しようとしたとき、私は私のCocoaフレームワークで定義されている私が使用しようとしています二つのクラスに関するエラー「アーキテクチャが見つかりませシンボル」を取得していない: build errors

私がいないだけですアクティブアーキテクチャのための枠組みを構築する: framework settings

私はそれが実際にターミナルでのARMv7とarm64の両方のために構築されていることを確認した:

Kevins-MBP-2:ASI.framework kevin$ lipo -info ASI 
Architectures in the fat file: ASI are: armv7 arm64 

唯一の方法それはすでに私の静的ライブラリプロジェクトに既存に私も加えで、iOSアプリのプロジェクトにを私のCocoaフレームワークをドロップ場合は、この建物が正常で取得します。私は両方のプロジェクトでフレームワークを持つ必要がないように感じます。静的ライブラリのみが実際にフレームワークを使用します。 iOSアプリプロジェクトはフレームワークについて知る必要はありません。

答えて

0

スタティックライブラリには依存ライブラリが含まれていないため、スタティックライブラリにリンクするたびに、使用する依存ライブラリをリンカに提供する必要があります。

基本的に、質問の最後の文に記載されているように、実行可能ファイルをこのCocoaフレームワークにリンクする必要があります。

+0

まあまあです。静的ライブラリの代わりにCocoaフレームワークを構築するためにスタティックライブラリプロジェクトを変更するとどうなりますか?同じことが当てはまりますか? –

+0

いいえ、しかし、依然として依存するフレームワークをアプリと共にパッケージ化する必要があるので、ほとんど面倒です。 – Droppy

+0

まだアプリにパッケージ化する必要がある場合、何が違うのですか?新しいフレームワーク(元の静的ライブラリ)とiOSアプリのターゲットの両方にパッケージ化する必要があると言っていますか?だからまだ2つの場所に存在していますか? –

関連する問題