私のアプリでは、実際のアプリケーションのxcodeプロジェクトターゲットとコード用の単体テストを簡単に設定できるように、現在、すべてのコードを静的ライブラリに分けています。これの問題は、私も静的ライブラリに私のxibファイルのほとんどを入れたいですが、私は私のアプリを実行し、xibを参照しようとすると、それが実際のアプリのターゲットをスタティックライブラリターゲットの代わりに使用します。同じライブラリ内のコードで参照できる静的ライブラリにxibファイルやその他のリソースを含めることは可能ですか?iPhoneの静的ライブラリからXibファイルを参照できますか?
答えて
スタティックライブラリが "バンドル"と同じではないため、不可能です。
バンドルは、リソースファイル(xib)、実行可能ファイル、および静的ライブラリを含むすべての形式のファイルを含むことができるディレクトリです。個々のファイルのグループとしてファイルシステム上に存在します。
スタティックライブラリは、ライブラリ作成者によってリンクされたクラス、コード、および変数を含む単一のファイルです。それは他のファイルを「含む」わけではなく、本質的にコンパイルされたコードのデータベースです。
XIBのデータをそこに入れることは可能ですが、Xcodeはファイルシステム上の個々のファイルとしてXcodeを検索するので、そこにあることを知る方法がありません。
Mac OSでは、基本的にコード、リソース、設定などの束であり、複数のプロジェクトで再利用できる「フレームワーク」を作成することができます。しかし、AppleはiPhone OSのカスタムフレームワークの作成をサポートしていないようです。
コメントに返信(コメント欄に収まらない)
心配はありません、私はかなり同じことをやろうとしてきました先週のように、xibの "フレームワーク"、ファイルと.a libsをすべてのソースコードを渡すことなくクライアントに送ってみたいと思います。私もバンドルでこれを行う良い方法を見つけることができませんでした。
アップルは特にこれについて不明です。静的ライブラリ(十分に公正な動的ライブラリ)の場合、Appleがそうである理由はわかりません。
今の私のソリューションは、手動で次のサブフォルダを含むパッケージフォルダ "foo" を作成することです:
- "が含まれる" - >
- ここ.hファイルを置く "のRES" - >入れを。ここでXIBファイル
- "LIB" -
libfoo.aをと>含む "iphoneos" & "iphonesimulator" サブフォルダ各次にこれを圧縮し、クライアントに送信します。クライアントは次のようになります。
- パッケージはいつでも好きな場所で解凍できます。
- リソースグループの下に「res」フォルダを追加します。
- 次のターゲット設定を変更します:
他のリンカフラグ= -ObjC -lfoo
ヘッダ検索パスは=/
ライブラリ検索パス=/libに/ $(PLATFORM_NAME)が含ま
私がすることができますおそらく私の最後にいくつかのビルドステップでパッケージ作成を自動化していますが、クライアントは4つのやり方でセットアップを進めています。
-lfooリンカフラグは何を説明できますか?私はどのようにコンパイラがこれを処理するのか分かりません。ありがとう! – jpswain
'-lfoo 'は" link to library foo "のリンカフラグです。http://gcc.gnu.org/onlinedocs/gcc/Link-Options.htmlを参照してください。この回答が役に立つ場合は、アップしてください。 – Justicle
Okたとえば、私のlibが "Thingy"というパッケージに入っていて、出力ファイルが "libThingy.a"の場合、リンカーのフラグは "-lthingy"でしょうか? Objc " - それは" - ObjC "になっていませんか?ありがとう!+1 – jpswain
配布するときにSDKを作成することもできます。 JSON.frameworkはSVNでこれを行い、これを正常に複製しました。これは、hltypes-ios.xcodeprojとプロジェクトのiOSフォルダのhttp://hltypes.svn.sf.net/でどのように実行されたかを見ることができます。
主に、ビルドフォルダに「インストール」して、特別にフォーマットされたSDKSettings.plistをコピーする必要があります。次に、SDKへのパスをアプリケーションプロジェクトの「Additional SDKs」リストに追加します。コンポジットSDKの欠点は、このミニSDKがアップデートされるたびにXcode 3.xを再起動する必要があることと、アップルのベースSDKとミニSDKから作成されたコンポジットSDKを構築することに対するXcodeの主張(かなり待つ必要があることを意味します) 。
アプリケーションプロジェクトには.xibやその他のリソースを手動で追加する必要があります。
私はそれはXCodeの4のためにと
すべて自動的に上記の、より https://github.com/kstenerud/iOS-Universal-Framework その処理を行い、このための完璧な解決策を見つけました
はいできます。任意の通常のプロジェクトの場合と同様にxibファイルをライブラリに追加します。次に、ライブラリプロジェクトターゲットで、コピーファイルセクションにxibファイルを.aファイルとともに追加します。 ライブラリを使用しているメインプロジェクトで、ライブラリ用の.aファイルがあるxibファイルをドラッグアンドドロップします。
あなたはそれをサポートしている唯一の男それはできます。私はすべての解決策を試しましたが、それは全く私のために働いていません。 –
私は@ Rudeboyの要求に応えています。実際に試してみましたか、それともうまくいくと思っていますか? – Drux
- 1. Java非静的メソッドplay静的コンテキストからcompleteCompletelyを参照できません
- 2. 静的ファイル参照をバージョン
- 3. 非静的メソッドencode(byte [])は静的コンテキストから参照できません
- 4. 静的ライブラリを介してカスタムバンドルからXIBをロード
- 5. java:非静的変数を静的コンテキストから参照できないError
- 6. なぜ「静的でない変数から静的なコンテキストから参照できないのですか?」
- 7. iPhone静的ライブラリ
- 8. Iphone - 別のパッケージからroot.plistを参照できますか?
- 9. 非静的メソッドisGooglePlayServicesAvailableとgetErrorDialogを静的コンテキストから参照することはできません
- 10. 静的関数から非静的フィールドを参照することはできません。
- 11. 静的コンテキストから非静的フィールドを参照することはできません
- 12. 静的コンテキストから非静的メソッドを参照することはできません
- 13. 静的コンテキストから非静的メソッドを参照することはできません
- 14. は非匿名メソッドから非静的メソッドを参照できません
- 15. Android LoginActivityタイプから非静的メソッドshowToast(String)への静的参照を作成できません
- 16. 静的メソッドからの参照をスレッドセーフで戻していますか?
- 17. 非静的変数これは静的コンテキストから参照することはできません
- 18. 静的フィールドで自身を参照するクラスをガベージコレクションできますか?
- 19. Javaジェネリックス:非静的型変数Tは静的コンテキストから参照できません
- 20. 他の静的ライブラリを参照する静的ライブラリを作成してください
- 21. 静的ライブラリの場合は、参照されていない静的オブジェクトは作成されませんか?
- 22. iPhoneで静的ライブラリを実装する
- 23. テンプレート関数からの静的関数参照の問題xlC
- 24. 静的メソッド参照からクラス名を取得
- 25. は非静的メソッドをstatic参照できません(アンドロイドgetApplicationContext())
- 26. 静的なコンテキストから非静的メソッドを参照することはできませんが、静的なものは何もありません。
- 27. マシンからファイルを参照
- 28. Java - 静的でないフィールドリストへの静的参照
- 29. iPhone上で複数のsqliteテーブルを参照できますか?
- 30. C++静的ライブラリ - .libから.aファイルを作成する方法?
リンクありがとうございます。私のxibsを自分のバンドルにまとめてライブラリコードをそれに依存させることは可能でしょうか? (申し訳ありませんが、あなたが提供したリンゴの医師の回答があれば、私は現時点でそれを精読する時間はあまりありません。) – Kevlar
これを見つけただけです。http://landonf.bikemonkey.org/code/ iphone/iPhone_Framework_Support.20081202.html – Justicle
Xcode Wizards(またはOSXで呼び出されたもの)が間違っていない限り、iOS上には「バンドル」がなく、わずかに自殺状態になります。 –