1

.xib ファイルを含む Xcode テンプレートから開始すると、その .xib ファイルはコンパイル ソース ビルド フェーズにリストされます。ビルド プロセス中に .xib ファイルを .nib ファイルに変換する必要があるため、これは理にかなっていますibtool

しかし、.xib ファイルの名前を変更していくつかの新しいファイルを追加すると、.xib ファイルがコンパイル ソース ビルド フェーズにリストされないという状況に陥りました。代わりに、それらはすべて Copy Files ビルド フェーズに一覧表示されます。これを修正できませんでした。(私にそれについて始めさせないでください。)

しかし、私はそれを修正する必要がないことがわかりました!ビルドするときに、ビルドしたアプリのパッケージを調べると、.xib ファイルではなく .nib ファイルが含まれていることがわかります。.xib ファイルは、ファイルのコピー ビルド フェーズであっても、リソース フォルダーにコピーされません。ソースのコンパイル ビルド フェーズでなくても、コンパイルされています。

そして、ビルドログを見ることでこれを確認できます:

CompileXIB "MyApp/en.lproj/ViewController~iphone.xib"
CompileXIB "MyApp/en.lproj/ViewController~ipad.xib"

どうすればいいの?

編集: 今、最初の前提を再現できません! ある回答者が言ったように、テンプレートは.xib ファイルを Compile Sources ビルド フェーズに入れません。それでも、いくつかの .xib ファイルが Compile Sources ビルド フェーズにあり、いくつかの .xib ファイルが Copy ビルド フェーズにあるという状況に陥り、それが私を混乱させました。

4

1 に答える 1

1

「Cocoa Application」テンプレートを使用して OS X 用のまったく新しい Xcode プロジェクトを作成すると、プロジェクトの唯一の.xibファイルが「コンパイル ソース」の下に表示されず、「バンドル リソースのコピー」の下に表示されます。.xibしたがって、そもそもコンパイルソースの下にあなたのがどのように/なぜリストされているのかわかりません。

コマンドを使用して自動的にコンパイルされる方法については、すべてのInterface Builderファイルに対して実行される「Interface Builder XIB Compiler」と呼ばれるCompileXIBXcodeのビルドルールが原因であると思われます。

于 2013-04-07T17:51:20.657 に答える