4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

iOSアプリ開発:プロジェクトで使うリソースファイルが読み込めない

Last updated at Posted at 2015-07-23

※個人で管理しているHPに引っ越ししました。
リンク切れ等考慮して本ページは残しておきますが、今後はHPのほうで更新します。

現象

下記のように、シェーダーファイルを読み込ませようとした所、pathNameに値が入らずsourceにも値が入ってなかったです。

Test.m
NSString *pathName = [[NSBundle mainBundle] pathForResource:@"Shader" ofType:@"vsh"];
const GLchar *source = (GLchar *)[[NSString stringWithContentsOfFile:pathName encoding:NSUTF8StringEncoding error:nil] UTF8String];
if (!source) {
  NSLog(@"Failed to load vertex shader");
  return;
}

調査

プロジェクトに[Shader.vsh]が追加されているのか確認。

プロジェクトナビゲータ上にファイルがあれば大丈夫。
※プロジェクトナビゲータの表示の仕方
 XcodeのView->Navigators->Show Project Navigator

無ければ、下記ページで紹介している方法で追加してください。
iOSアプリ開発:画像追加

リソースとしてコピーする対象ファイルに追加されているのか確認。

プロジェクトナビゲータの一番上に、青いアイコンがあるかと思います。
それを押下するとPROJECTとTARGETSが表示されるので、TARGETSの今回作業しているものを押下。
Build Phases->Copy Bundle Resources
にあるものは、リソースとしてアプリ内部から扱う事が出来るようコピーされます。
無いと扱う事が出来ません。

今回は、ここに[Shader.vsh]が無かったです。

対応

先ほどの[リソースとしてコピーする対象ファイルに追加されているのか確認。]で見た、Copy Bundle Resourcesの下に[+]があるので、それを押下し[Shader.vsh]を指定したら追加され、正常に動作するようになりました。

後、Compile Sourcesに[Shader.vsh]が追加されていたようなので、こちらは削除しました。

4
4
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?