iOSシミュレータで音が鳴らない/ファイルが読み込めないことがある

いつも通りビルドしたつもりなのに、突然下記の症状が出ることがあります。

  • 音声が再生されない
  • 画像が表示されない
  • ファイルが読み込めない

特に音については、CocosDenshion(SimpleAudioEngine)の使用方法や
caf/mp3/wav/aifファイルの作成方法、
afconvertコマンドでの引数指定を間違えたのか、と思いがちです。

トリガーとなるのは、直前のクリーンとリソースファイルの登録し直しです。

原因は、
Project Navigator のプロジェクト→TARGETS→Build Phases→Copy Bundle Resources
に該当のリソースファイルが登録されていないからです。
しかしここに追加しても根本的な解決になりません。

.png以外のリソースファイルをXcodeウィンドウにドラッグアンドドロップすると、
直後の「Choose options for adding these files」ダイアログにて
Add to targetsオプションでターゲットのチェックが外れています。
(.pngファイルだと、ターゲットにデフォルトでチェックが付きます)

よって、リソースファイルが更新されてもコピーされずに以前のデータが使われていたが、
クリーンしたことでそのデータも消えてしまった、というわけです。

ドラッグアンドドロップ後のダイアログによく注意し、
ターゲットにチェックを付けるようにしましょう。