shader-glslファイルをあるxcodeプロジェクトから別のプロジェクトに追加する際にいくつかの問題があります。私はファイルへのパスをxcodeにドラッグすることができないので、この時点では完全に混乱しています。 私はスペルを確認して、何度も「ファインダーで表示」しても問題が残っています...pathForResourceが誤ったnullを返す
xCodeに追加したファイルの私の例ですが、サブディレクトリに入れずにこれらの問題点:
今私のコード:
NSLog(@"Filepath of Tools-image: %@",[[NSBundle mainBundle] pathForResource:@"tools" ofType:@"png"]);
NSLog(@"Filepath of mo-tut is: %@",[[NSBundle mainBundle] pathForResource:@"mo" ofType:@"tut"]);
NSLog(@"Filepath of FragShader-fsh is: %@",[[NSBundle mainBundle] pathForResource:@"fragshader" ofType:@"fsh"]);
私はこの出力を取得し、実行時:
2011-07-02 02:03:33.516 windowconfig[16192:707] Filepath of Tools-image: /var/mobile/Applications/BC82AD2C-B8B9-4751-80A2-31EC5ACEC9C2/windowconfig.app/tools.png
2011-07-02 02:03:33.526 windowconfig[16192:707] Filepath of mo-tut is: /var/mobile/Applications/BC82AD2C-B8B9-4751-80A2-31EC5ACEC9C2/windowconfig.app/mo.tut
2011-07-02 02:03:33.531 windowconfig[16192:707] Filepath of FragShader-fsh is: (null)
誰か、これについて考えていますか?
EDIT: "tools.png"は現在、リソースのサブフォルダにあるタブバーで使用するアイコンで、比較のためのテストにすぎません。あなたがなぜ私がスクリーンショットで他のファイルへのパスを開かなかったのか疑問がある場合。
EDIT2:私は最後の2時間でクレイジーのように "クリーン"を使用しました。 "fragshader.fsh"は、 "mo.tut"を追加したのと同じ方法でプロジェクトに追加したにもかかわらず、 "windowconfig.app"バンドルにコピーされてしまいます。これはバンドルパッケージにあります。どのようにしてコピーを確実にすることができますか?
EDIT3:対象のメンバーシップは、両方のファイルのインスペクタでチェックされますが、シェーダはコピーされません。
ソリューション:
ターゲット・ビルド・フェーズの下のファイルは、「バンドルするコピーファイル」リストではありませんでした。 私はそれを手動で追加しましたが、プロジェクトにファイルを追加した後で自動的に追加されなかったのは不思議です。
"〜/ Library/Xcode/DerivedData/...."の下にバンドルを開いても、 "windowconfig.app"にはfragshaderは含まれていません。 "mo.tut"は、Xcodeと全く同じ方法で追加しましたが、です。どのようにコピーされるのかを確認するにはどうすればいいですか?それがコピーファイルのステップに入らなかった理由は何ですか? – Bersaelor
http://developer.apple.com/library/mac/#recipes/xcode_help-project_editor/Articles/CreatingaCopyFilesBuildPhase.htmlまたはそれに類するものが役に立ちます:) –