iPhone アプリのデバッグ時にシンボルが読み込まれない - Xcode4

SPECIAL


Xcode4 での iPhone アプリの "Run" 実行時にシンボルが読み込まれない

Xcode4 で制作していた iPhone アプリを "Run" スキームでビルドして iPhone 実機で動作確認していたときのこと、起動後まもなくくらいの頃合いで、次のような警告メッセージがデバッグウィンドウに表示されているのに気が付きました。

warning: Unable to read symbols for /Data/Xcode/DerivedData/EZ-NET_IP_Phone-gekbbspdswwvgeqhshyxxoswyhk/Build/Products/Debug-iphoneos/EzIPPhone4.app/EzIPPhone4 (file not found)

warning: No copy of EzIPPhone4.app/EzIPPhone4 found locally, reading from memory on remote device. This may slow down the debug session.

そのときに画面に表示されるバイナリ名が、どうやら以前に設定していたバイナリ名になっている様子です。Xcode4 でプロジェクト名を変更したタイミングで、バイナリ名も併せて変更していたため、それが原因となっているようです。

ただ、プロジェクトの設定ファイル内に残されていた、古いバイナリ名を新しいバイナリ名に変更したところで、この警告メッセージが消えることはありませんでした。

 

このプロジェクト名が残されているところと言えば、残るは同じ Identifier が指定されている、iPhone 実機にインストールされているバイナリファイルくらいでしょうか。

そこで、iPhone 実機に以前に転送したバイナリを削除した上で、再度、"Run" スキームでデバッグを行ってみたところ、無事に "Unable to read symbols for ..." という警告メッセージが表示されないようになりました。

これが直接的にどのような範囲に影響を与えるのかは分かりませんけど、この感じだと、リリース後にはバイナリ名を、あまり変えない方が良かったりするのかもしれないですね。

 

プロジェクト名は変更して、バイナリ名を以前のままにしたい場合

何らかの理由でプロジェクト名を変更して、バイナリ名を以前のままにしておきたい場合には、次のような感じでそれを実現することができるようでした。

プロジェクト名の変更が必要であれば、Xcode4 の左側のメニューからプロジェクト名を選択して名前を変更します。

生成されるバイナリ名を変更したい場合には、左側のメニューからプロジェクト名のところを選択して、その右側に表示されるメニューで "TARGETS" 内のアイテムを選択します。

そして、その "TARGETS" 名と、さらにその "Build Settings" にある "Product Name" の項目を、バイナリに付けたい名前に変更してあげます。

これでビルドしてあげると、ここで設定した名前のバイナリが生成されるようになります。

他に "Info.plist File" というところにも、変更前のバイナリ名にちなんだ名前のファイルが設定されていますが、こちらについては特には変更しなくて大丈夫です。もちろん、そこで指定されている "プロジェクト名-Info.plist" のファイル名もそのままです。