Provisioning profile を決めてるファイルがある!

App ID が * な Provisioning profile、最初にたくさん作っちゃってとりあえず * は1つ有れば良いじゃんって思って適当なの1つ残した。その残した1つで Development(Debug) 全部を賄いたいんだけどこのアプリだけはどうにもならない。
なんていうか Xcode のプロジェクトが「この Provisioning profile を使う!」って決めちゃってて、それがもう消しちゃった昔のやつって状態?
そんなわけで、Xcode のプロジェクトの中に Provisioning profile を決めてる場所があるだろうと思って探したら…ありました!

プロジェクトの xcodeproj ファイルを右クリックして「パッケージの内容を表示」すると「project.pbxproj」というファイルがある。
Macなパスだとこんな感じ。

プロジェクト名.xcodeproj:project.pbxproj

この中に「/* Begin XCBuildConfiguration section */」という箇所があって、最初の「/* Debug */」のブロックの中に発見!
(エラーになってる Profile Identifier で検索かけるとサックリ出て来る。)

"PROVISIONING_PROFILE[sdk=iphoneos*]" = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

これを今使っている Development(Debug)用の Provisioning profile の Profile Identifier に変更する。
Xcode の Organizer からコピーしてペーストすれば OK!)

これで保存して再度問題のプロジェクトを開いて実機を指定して「RUN」すると…エラー出なかった〜!


今回は Development での問題だったけど、Release や Distribution でも同じように修正ができると思う。
また、今回は Xcode 4.2 でやったのだけどプロジェクトのファイルって今まで何度か変わっているから、どのバージョンかによっては Provisioning Profile を指定する場所が違っているかもしれない。


というわけで、Code Sign error で困った場合にはちょこっと project.pbxproj を見てみると良いかも。