Hatena::ブログ(Diary)

Debian GNU/Linux 3.1 on PowerMac G4 このページをアンテナに追加 RSSフィード Twitter

2011-11-01 Xcode の Code Sign error で困ってたけど漸く解決した!

iOS のアプリ作ってて良くあるハマりポイントにプロビジョニング関係がある。

最初はマジで Certificates だの Development だの Distribution だの App ID だの、なんだよ!と思った。

で、何度かやってると「あぁ〜そっか〜」という感じでわかってくるんだけど、どうしても1つ毎回問題になるアプリがあった。

今回、たぶんその問題が解決したと思うのでメモ。

[]どうしても Code Sign error が出るよ! 19:02 どうしても Code Sign error が出るよ!を含むブックマーク どうしても Code Sign error が出るよ!のブックマークコメント

f:id:paraches:20111101185015p:image

そのアプリは一番最初に作ったアプリで、App ID は何もわからずに * にしちゃったもの。

なぜか、このアプリは実機で動作させようとすると「Code Sign error: Provisioning profile "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" can't be found」が出る。

その Provisioning profile、昔作ったやつで今はもうないのに…。

しかも、Development(Debug) ではこのエラーなのに Distribution では問題ない。

iTC の Provisioning Portal で Development の Provisioning Profile を作り直してみたりしてもダメ。

[]Provisioning profile を決めてるファイルがある! 19:02 Provisioning profile を決めてるファイルがある!を含むブックマーク 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!)

f:id:paraches:20111101184839p:image

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


今回は Development での問題だったけど、Release や Distribution でも同じように修正ができると思う。

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


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

TeamDyquemTeamDyquem 2011/12/08 01:37 貴重な情報、有り難うございました。
助かりました^^

parachesparaches 2011/12/08 12:14 やっぱり他にも同じ様な状況の人がいたんですね〜。
お役に立てたようで良かったです!