2

私はiOS用のアプリを開発しています。単独で問題なくコンパイルできるスタティック ライブラリを作成しました。

これらの手順に従って、静的ライブラリをセットアップしました。 http://www.blog.montgomerie.net/easy-xcode-static-library-subprojects-and-submodules

また、「ヘッダーのコピー」ビルドフェーズを追加し、すべてのヘッダーをパブリックとして追加しました。これは、上記のリンクで説明されているとおりに機能しないためです。

次に、Git リポジトリにプッシュしました。

リンクされた記事のすべての手順に従った後、ビルドしようとすると、150 Apple Mach-O リンカー エラーが発生します。ここに出力ログがありますhttp://pastebin.com/Ma2tCK1w

エラーは、アプリケーション プロジェクトで静的ライブラリの使用を開始した後にのみ発生します。静的ライブラリを追加するだけでは問題は発生しません。

他の誰かがこれに遭遇しましたか? すべての正しいフレームワークが含まれており、すべてのソース ファイルがスタティック ライブラリにコンパイルされています。この時点でアイデアがありません。基本的に、フォーラム、SOなどで見つけたすべてのガイドまたは回答に従いました。

4

1 に答える 1

1

そのブログ投稿で作成されたサンプルの静的ライブラリは非常に基本的なものであり、基本的な 3 つの iOS フレームワーク ( UIKit.frameworkFoundation.frameworkおよび) に対してリンクするだけで済みましたCoreGraphics.framework。iOS アプリケーション プロジェクト テンプレートにはすべて、同じ 3 つのフレームワークを使用した「ライブラリとバイナリをリンクする」ビルド フェーズのステップが含まれているため、追加のステップなしで iOS アプリにスタティック ライブラリを含めることができました。

ビルド出力に基づいて、スタティック ライブラリは、、、 、 、 、 、、、およびAddressBook.frameworkその他の多くの追加フレームワークの機能を使用します。これらのすべてのフレームワーク/dylib をメインの iOS アプリ プロジェクトに追加し、静的ライブラリのリンク ビルド フェーズに含まれているのと同じように、それらを「ライブラリとバイナリをリンクする」ビルド フェーズに含める必要があります。AddressBookUI.frameworkCFNetwork.frameworkCoreData.frameworkEventKit.frameworkEventKitUI.frameworkMediaPlayer.frameworkMessageUI.frameworkOpenGLES.frameworkQuartzCore.frameworkSystemConfiguration.frameworklibxml2.dylib

于 2012-12-18T00:43:10.807 に答える