iPhone アプリのビルド時にプロビジョニングプロファイルが見つからない。
MEMORANDUM
iPhone アプリで開発用プロビジョニングプロファイルを更新したところ、ビルド時にプロビジョニングプロファイルが見つからないというエラーが発生してしまいました。
それを解消し、正しくビルドできるようにする方法を調べてみました。
iPhone アプリのビルド時にプロビジョニングプロファイルが見つからない。
■ 概要
開発用のプロビジョニングプロファイルの有効期限を更新して新しいものに差し替えたときに、Xcode 3.3.2 で iPhone アプリをビルドしようとすると、次のようなエラーが発生する場合がありました。
Code Sign error: Provisioning profile 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX' can't be found.
このときは、"Release" ビルドでは問題なく新しいプロビジョニングプロファイルに差し替えることが出来たのですけど、"Debug" ビルドについては Don't Code Sign に変更しても、上記のエラーが変わらずに表示されてしまうのでした。
■ 原因
どうやらこれは "Debug" 構成では左側メニューの "ターゲット" のビルド情報にもコード署名 ID が設定されていたことが原因のようでした。
通常はビルド構成の方のコード署名 ID を調整すれば、こちらも自動的にそこで指定したコード署名が設定されるようなのですけど、ここに直接設定してしまうと、ビルド構成の方で設定しても、その内容がターゲットの方には反映されない様子です。
■ 修正方法
これを修正するために、まずは "ターゲット" の 名称の上で右クリックして、"情報" を表示します。
表示されたターゲットの情報ダイアログボックスで 【ビルド】 タブを選択して、エラーが出てしまうビルド構成を選んだ上で、"コード署名 ID" の下の "Any iPhone OS Device" の行を選択します。
ここで独自に値が設定されている場合には、その項目が太字で表示されているようです。
独自に設定されている場合には、この行を選んで [Del] キーを押し、ここでのコード署名 ID の設定は削除しておきます。
後は通常の通り、アップルメニューの "プロジェクト" から "プロジェクト構成の編集" を選択して、プロジェクトの情報ダイアログを表示し、そこでコード署名 ID の設定を行います。
先ほどの画面と非常に似ていますが、設定内容の反映のされ方が異なります。
ここで、設定したいプロビジョニングプロファイルを "コード署名 ID" として設定すれば、先ほどのターゲットの情報ダイアログ内の設定項目も含めて、新しい設定値に更新されます。
これでビルドを行えば、冒頭に記したようなエラーメッセージは発生しなくなると思います。