24

これが予想されるのか、それともバグなのかわかりません。XCodeと同じフォルダ構造をディスクに作成しようとしています。次の手順を使用して、プロジェクトにリソースファイルを追加します。

  1. Resourcesプロジェクトのルートフォルダの下にフォルダを作成します。
  2. ResourcesフォルダをXCodeにドラッグすると、フォルダのが作成Groupされます。
  3. リソースファイルをXCodeFinderのフォルダにドラッグします。Resources

そして今、私はすべてのリソースファイルがBuild Phrases->にリストされているのを見ることができますCopy Bundle Resources

奇妙なことは、[[NSBundle mainBundle] pathForResource:@"book" ofType:@"epub"]を返す一方で、見つけることができるファイルパスを返すこと[[NSBundle mainBundle] pathForResource:@"book" ofType:@"epub" inDirectory:@"Resources"]です(null)

窓からBuild Results、私はこの行に気づきます:

CpResource MBookReader/Resources/book.epub /Users/neevek/Library/Developer/Xcode/DerivedData/workspace-fykuaikryknuhxgevcdtspkspptj/Build/Products/Debug-iphonesimulator/MBookReader.app/book.epub
cd /Users/neevek/workspace/xcode_projects/MBookReader
setenv PATH "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
builtin-copy -exclude .DS_Store -exclude CVS -exclude .svn -exclude .git -exclude .hg -resolve-src-symlinks -strip-tool /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/strip /Users/neevek/workspace/xcode_projects/MBookReader/MBookReader/Resources/book.epub /Users/neevek/Library/Developer/Xcode/DerivedData/workspace-fykuaikryknuhxgevcdtspkspptj/Build/Products/Debug-iphonesimulator/MBookReader.app

これは、Resources/book.epubファイルが実際にMBookReader.app/(アプリバンドルのルートディレクトリ)にコピーされていることを示しています。

これでディスク内の実際のフォルダになりましResourcesたが、フォルダ自体がコピーされないのはなぜですか?

PS。XCode4.3.2を使用しています。

4

1 に答える 1

40

リソースフォルダをXcodeに追加するときは、スライディングウィンドウで[追加されたフォルダのグループを作成する]ではなく、[フォルダ参照を作成する]を選択します。

つまり、質問の3つのステップを次のステップに置き換えます。

  1. プロジェクトのルートディレクトリの下にResourcesディレクトリを作成します。Resourcesディレクトリ内のディレクトリ構造を希望どおりに整理します。
  2. ResourcesディレクトリをXCodeにドラッグし、 [フォルダ参照の作成]オプションを選択します。

完了です。Xcodeは、Resourcesディレクトリの内容を再帰的にバンドルにコピーします。

Xcodeが変更されたファイルをResourcesディレクトリ内のどこかにコピーしない場合、今後問題が発生する可能性があります。クリーンビルドは通常これを修正します。または、ビルドする前に.appファイルを削除することもできます。これにより、変更されていないソースファイルが再構築されることはありませんが、Xcodeはすべてのリソースを新たにコピーするように強制されます。

サンプルフォルダリファレンス

于 2012-09-12T13:07:12.930 に答える