私のアプリでは、現在、すべてのコードを静的ライブラリに分割して、実際のアプリとコードの単体テストの xcode プロジェクト ターゲットを簡単に設定できるようにしています。これに関する問題は、ほとんどの xib ファイルを静的ライブラリにも配置したいということですが、アプリを実行して xib を参照しようとすると、実際のライブラリに含まれていない限り、それを見つけることができないようです。静的ライブラリ ターゲットではなく、アプリのターゲット。同じライブラリ内のコードで参照できる静的ライブラリに xib ファイルやその他のリソースを含めることは可能ですか?
6 に答える
静的ライブラリは「バンドル」と同じではないため、それは不可能です。
バンドルは、リソース ファイル (xib)、実行可能ファイル、静的ライブラリなど、あらゆる種類のファイルを含むディレクトリです。個々のファイルのグループとしてファイルシステムに存在します。
静的ライブラリは、ライブラリの作成者によってリンクされたクラス、コード、および変数を含む単一のファイルです。他のファイルを「含む」のではなく、基本的にコンパイルされたコードのデータベースです。
そこに xib のデータを配置することは可能ですが、Xcode はそれらをファイルシステム上の個別のファイルとして検索するため、そこにあることを知る方法がありません。
Mac OS では、基本的に複数のプロジェクトで再利用できるコード、リソース、設定などのバンドルである「フレームワーク」を作成できます。ただし、Apple は iPhone OS 用のカスタム フレームワークの作成をサポートしていないようです。
上記のすべてを自動的に実行し、さらに多くの https://github.com/kstenerud/iOS-Universal-Frameworkを実行する完璧なソリューションを見つけました。 そのxCodeプラグイン
それは私にとって魅力のように機能しました、それはXCode4以上でのみ機能します
はい、できます。通常のプロジェクトで行うように、ライブラリに xib ファイルを追加します。次に、ライブラリ プロジェクト ターゲットで、コピー ファイル セクションに xib ファイルを .a ファイルと共に追加します。ライブラリを使用しているメイン プロジェクトで、ライブラリの .a ファイルが配置されている xib ファイルをドラッグ アンド ドロップします。
配布するときに、SDK を作成することもできます。JSON.framework は SVN でこれを行い、私はこれを正常に複製しました。これがどのように行われたかは、http: //hltypes.svn.sf.net/ の hltypes-ios.xcodeproj とプロジェクトの iOS フォルダーで確認できます。
まず、ビルド フォルダーに「インストール」する必要があります。次に、特別にフォーマットされた SDKSettings.plist をコピーする必要があります。次に、SDK へのパスをアプリケーション プロジェクトの "Additional SDKs" リストに追加します。複合 SDK の欠点は、このミニ SDK が更新されるたびに Xcode 3.x を再起動する必要があることと、Xcode が Apple のベース SDK とミニ SDK から作成された複合 SDK を構築することを主張することです (つまり、かなり待つ必要があります)。 .
アプリケーション プロジェクトには、引き続き .xib およびその他のリソースを手動で追加する必要があります。