質問

私のアプリでは現在、すべてのコードが静的ライブラリに分離されており、実際のアプリとコードの単体テストの xcode プロジェクト ターゲットを簡単に設定できます。これの問題は、ほとんどの xib ファイルも静的ライブラリに入れたいことですが、アプリを実行して xib を参照しようとすると、実際のライブラリに含まれていない限り、xib ファイルが見つからないようです。静的ライブラリのターゲットの代わりにアプリのターゲットを使用します。同じライブラリ内のコードから参照できる xib ファイルやその他のリソースを静的ライブラリに含めることは可能ですか?可能であれば、どのようにすればよいですか?

役に立ちましたか?

解決

いいえ、それは不可能です。静的ライブラリは「バンドル」と同じではないためです。

バンドルは、リソース ファイル (xib)、実行可能ファイル、静的ライブラリを含むあらゆる種類のファイルを含むディレクトリです。ファイルシステム上には個々のファイルのグループとして存在します。

静的ライブラリは、ライブラリ作成者によってリンクされたクラス、コード、変数を含む単一のファイルです。他のファイルは「含まれていません」。本質的にはコンパイルされたコードのデータベースです。

xib のデータをそこに置くことは可能ですが、Xcode はファイルシステム上の個別のファイルとして xib を検索するため、そこにデータが存在することを知る方法がありません。

Mac OS では、基本的に複数のプロジェクトで再利用できるコード、リソース、設定などのバンドルである「フレームワーク」を作成できます。ただし、Apple は iPhone OS のカスタム フレームワークの作成をサポートしていないようです。

バンドルhttps://developer.apple.com/library/content/documentation/CoreFoundation/Conceptual/CFBundles/BundleTypes/BundleTypes.html#//apple_ref/doc/uid/10000123i-CH101-SW1

静的ライブラリhttp://en.wikipedia.org/wiki/Static_library

他のヒント

応答コメント(合わなコメントボックス)

なかなか同じことをしていた最後の週たいと思い船"の枠組み"のxibs、ファイルと.a libをクライアントとなくすべてのソースコード。見られませんでしたが良いことがあり、バンドル。

のための、理由の如何にかかわらず、Appleは、特に鈍いこと-見えないことに気づいた理由だというの場合の静的ライブラリ(動的ライブラリの公正ます。

私の解決のために現在は手動で作成パッケージフォルダ"Foo"は次に示す内容を含むサブフォルダ:

  1. "含む"->入れます。hファイルはこちら
  2. "res"->入れます。xibファイルはこちら
  3. "lib"->"が含まれiphoneos"&"iphonesimulator"のサブフォルダそれぞれlibFoo.a

そのzipこまでお送りするサービスです。トのとします。

  1. Unzipsのパッケージがっていきたいと思います
  2. 追加の"res"フォルダの下での資源グループ
  3. 変化を以下の目標を設定:
    その他のリンカーフラグ=-Objc-lfoo
    ヘッダーを検索パス=/など
    図書館サーチパス=/lib/$(PLATFORM_NAME)

できるだろうスマートインフラ/ポジショパッケージ作成と構築の手順で終了すが、クライアントがこだわったつややヒステ得に探しましょう。

私は、上記のすべて、自動的に、より行います。このための完璧な解決策を見つけました https://github.com/kstenerud/iOS-Universal-Frameworkする そのXcodeのプラグイン

これは魔法のように私のために働きました、 それだけでXCodeの4のためにと

上記の作品

はい、できます。あなたが任意の通常のプロジェクトのために行うように、あなたのライブラリ内のXIBファイルを追加します。そして、ライブラリプロジェクトの対象では.aファイルと一緒にコピーファイルセクションでXIBファイルを追加します。 あなたはライブラリを使用しているメインプロジェクトでは、ドラッグ・アンド・ライブラリの.Aファイルが置かれているXIBファイルをドロップします。

配布する場合は、

あなたはまた、SDKを作成することができます。 JSON.frameworkは彼らのSVNでこれをやった、と私は正常にこの複製しました。あなたはこれがで http://hltypes.svn.sf.net/ の中で行われたかを確認することができますプロジェクト内のhltypes-ios.xcodeprojとiOSフォルダます。

は、主に、あなたはあなたのビルドフォルダに「インストール」する必要があり、その後、あなたは特別な形式のSDKSettings.plistをコピーする必要があります。そして、アプリケーションプロジェクトで「追加のSDK」リストにSDKへのパスを追加します。複合のSDKの欠点は、このミニSDKが更新されるたびにXcodeの3.xのを再起動する必要があり、そしてAppleのベースSDKとあなたのミニSDKから作成した複合SDKを構築する上でのXcodeの主張は、(あなたはかなり待つ必要があることを意味します)ます。

アプリケーション・プロジェクトはまだ.xibやその他のリソースを持っている必要があります手動で追加します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top