【Xcode】Failed to create provisioning profileの解決方法
今回はXcodeのエラーの原因と解決方法についてです。
事象
実際のエラーの状態はこんな感じです。
Failed to create provisioning profile
と
No profiles for 'Bundle Identifier' were found
の2つのエラーが表示されます。
このエラーが出ていると、多分ですが実機テストが出来ません。
問答無用でBuild Failedとなってしまいます。
シミュレータではビルド可能です。
原因
私の場合は、問題なく動いていたプロジェクトを削除して、再度同じ名前のプロジェクトを作成した場合にエラーが出ました。
どうやらBundle Identifierが重複しているために怒られているそうです。
物理的にプロジェクトを削除しただけではダメらしい。
そもそもBundle Identifierとは、アプリを区別出来る一意の値です。
そのため、AppStoreで公開する時に被るのは当然、ローカルでも被ってしまうことは許されないのです。
この辺りの仕様が正直よくわかりません。
一意のIDが重複してはいけないのは理解出来るのですが、そもそもプロジェクトを削除しているので平気のはず!と思ってしまいます。
解決方法
簡単に解決するなら、別名のプロジェクトを作成するのが早そうです。
結局のところ調べてもわかりませんでした。
作成したプロジェクトを消すことは想定されていないのかもしれません。
一応Derived Dataのプロジェクト削除も行いましたが効果なし。
方法は、「Xcode」→「Preferences...」の「Locations」タブを開き、Derived Dataの項目のパス内にあるプロジェクトのデータを削除。
パスの右側の矢印マークをクリックするとFinderで開いてくれると書いてありましたが私は開きませんでした。
なので、Finder上でCommand+Shift+Gでパスを貼り付けエンターで開きました。
フォルダの中身は自分で作ったプロジェクト名から始まるフォルダと謎のフォルダが2つくらい。
自作プロジェクト名が頭に付いたフォルダだけ削除してXcodeを再起動させましたが変化なしでした。
にしても困る事象ですよね。
プロジェクト削除してるのに重複扱いとは。
何かわかり次第更新します。
【2019年6月22日追記】
後日、再度Xcodeを立ち上げてみると何故かエラーが消えていました。
何ごともなくビルドも通り実機テストも出来ました。
なんでしょう。
やったことは
・キーチェーンの整理(期限切れのものを削除)
・Derived Dataの削除
・実機のiPhone側のデベロッパAppの登録解除
ぐらいですかね。
意外とOSの再起動とかが必要だった可能性もありますが。
ちなみに、再現しようとしてプロジェクトを削除後に同名のプロジェクトを作成してもエラーは出ませんでした。
なぞい。