Codesignエラー:期限切れのプロファイルを削除した後、プロビジョニングプロファイルが見つかりません


500

昨日動作していたアプリを再構築しようとしました。プロファイルの有効期限が切れたというメッセージが表示されたので、iPodとiTunesから削除しました。新しいプロファイル(識別子に*が含まれているプロファイル)を選択すると、エラーが発生します。

コード署名エラー:プロビジョニングプロファイル(長い文字列)が見つかりません。

何が欠けていますか?私は関連する質問を調べましたが、このシナリオはまだ見ていません。

回答:


856

特に古いプロジェクトがあり、それを古いバージョンのxcode / iphone sdkで最初に作成した場合は特に、xcodeプロジェクトファイルがめちゃくちゃになることがあります。あなたがする必要があるのは、テキストエディターでプロジェクトファイルを開き、エラーから「長い文字列」を検索し、その行を手動で消去することです。実際、先に進んで、プロビジョニングプロファイルを指す行をすべて削除する必要があります。次に、xcodeでプロジェクトを再度開き、設定に移動して、新しいプロファイルを再度選択します。これにより、ほとんどの場合、そのような問題が解決されます。プロビジョニングプロファイルを指す行は次のようになります。

PROVISIONING_PROFILE = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";

210
.xcodeprojファイルは、実際にはアプリケーションバンドルのようなディレクトリです。ファインダーでそれを右クリックすると、パッケージの内容を表示することを選択でき、内部にいくつかのファイルが表示されます(またはターミナルにcdするだけです)。実際のプロジェクトファイルは、.pbxproj拡張子が付いたファイルです。テキストエディターで開くと、探している行は 'PROVISIONING_PROFILE =または' '"PROVISIONING_PROFILE [sdk = iphoneos *]" ='で始まるはずです。それらをすべて削除すれば、大丈夫です。
Brad The App Guy

2
上記に加えて、すべてのプロファイルを削除し、プロビジョニングポータルから再度ダウンロードして、XCodeに再インポートする必要があることがわかりました。次に、ビルド設定/コード署名で、すべてのビルド構成に適切なプロファイルを選択します。
Jay Imerman、2011

11
まだ2012年のXCode4での貴重なアドバイス。ありがとう!
Alexey Rusakov、2012年

6
... aaaaand 2014年のXcode6での貴重なアドバイス!本当にありがとう!
Tom van Zummeren、2014年

4
私のために働いた唯一のもの:設定->アカウント->詳細の表示->更新。これにより、開発ポータルからすべてのプロビジョニングプロファイルがリロードされました。これが誰かのお役に立てば
幸い

129

以下は、私にとって有効で、プロジェクトファイルを手動で編集する必要のない、より簡単なソリューションです。

XCodeの[グループとファイル]ペインで[ターゲット]を展開し、アプリのターゲットをダブルクリックします。これにより、ターゲットの情報ペインが表示されます。[ビルド]セクションで、[コード署名]セクションで古いプロファイルを確認し、正しいプロファイルに置き換えます。

これは、プロジェクトアイコンをダブルクリックしてそこからプロファイルを変更することとは異なることに注意してください。かなり素晴らしい:)

オリ


1
ありがとう!次回はこれを試してみます:)
クォンタムポテト

6
最初に正しいビルド構成を選択してください:)
Johnus

1
これは常に機能するとは限りません。時々、最初の答えに示されているように、まだそれに入って手動で変更する必要があります。
SpaceTrucker 2011

SpaceTruckerをエコーするもう1つの注意:このメソッドは常に機能するとは限りません。受け入れられた回答は、Xcodeがそのファントムプロファイルの検索を停止することを保証します。
Simone Manganelli、2011年

上記に加えて、すべてのプロファイルを削除し、プロビジョニングポータルから再ダウンロードして、XCodeに再インポートする必要があることがわかりました。次に、ビルド設定/コード署名で、すべてのビルド構成に適切なプロファイルを選択します。
Jay Imerman、2011

76
  1. プロジェクトとターゲットのプロパティ->「コード署名しないでください」-> OK-> cmd + S(またはcmd + B);
  2. プロジェクトとターゲットのプロパティ->「Your Provision Profile」-> OK

  3. すべてが再び機能します!


4
これは私のために働いた唯一のソリューションです(XCode4を使用)。「コード署名しない」を選択してアプリをビルドすることは、私にとって必須のステップでした。
Chazbot、2011

Xcodeが将来プロジェクトファイルの書き込み方法を変更する可能性があるため、これは200以上の賛成投票を持つソリューションよりも優れたソリューションのようです。
Danyal Aytekin、2011

1
これは私にとってXcode 4.2で機能した正しい解です
セルビン

10

私はブラッドの答えに同意します。この問題は、ターゲット/プロジェクトを手動で編集し、次のような行を削除することで修正できるということです。

PROVISIONING_PROFILE = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";

ただし、Xcode 4.2以降では、このテキストにアクセスして選択および削除する方法がはるかに簡単です。左側のプロジェクトナビゲーターで、プロジェクト(プロジェクトナビゲーターの一番上の行)を選択します。次に、[表示]> [バージョンエディタ]> [バージョンエディタを表示]を選択します。これによりプロジェクトがテキストとして表示され、XcodeのエディターペインでPROVISIONINGを検索して問題のある行を削除できます。


これに続いて、プロジェクトを閉じて開く必要はありません。より良いアプローチ:)
バイラル

6

この問題のバリエーションを見ただけです。上記のBrad Smithのメモに従って、project.pbxprojファイルに移動しました。ただし、この場合は、PROVISIONING_PROFILEのすべての行が正しいようで、XCodeができなかった「悪い」プロファイル文字列は発生していません。見つかりません。

しかし、修正は同じでした。project.pbxprojのすべてのPROVISIONING_PROFILE行を削除しましたが、理論的には「良さそう」でしたが、XCodeでプロジェクトを再度開きました。


4

完全にターミナルでブラッドのソリューションを実現するには、次のコマンドを使用します

  1. cd [Xcode project parent]
  2. vi [Xcode project name].xcodeproj/project.pbxproj
  3. /[offending provisioning profile] [Enter]
  4. dd -行全体を削除します
  5. 見つからなくなるまでnを押します
  6. 保存して閉じるにはCtrl + x

3

私の場合、ウィンドウ->オーガナイザーを開き、デバイスを選択して、右側の[プロビジョニング]パネルの下にある古いプロビジョニングプロファイルを削除することで、問題は解決しました。古いものにはすでに赤い「x」記号が付いていますが、iPhoneはまだそれを使用しています。

そのプロファイルに加えて、新しいプロファイルも(同じ名前で)表示され、アプリケーションを再起動するだけでスムーズに実行できました。


+1、プロファイルが期限切れのため、インストールできない場合があります-同じ識別子でも -私のデバイス上にありました。
クォンタムポテト2011年

これは私にとってはうまくいきましたが、それを機能させるためにXCodeを再起動する必要もありました。
マット

3

これを行うのに1時間ほど費やしただけで、Bradの助言といくつかの追加の変更により、すべてが機能しました。

10.7.3、Xcode 4.3.2、iOS 5.1 btwを使用してこれを行いました。

1)を右クリックしてmyapp.xcodeprojパッケージの内容を選択します

2)project.pbxprojテキストエディターで開きます(書式設定が台無しになる可能性があるため、texteditはお勧めしません)

3)見つかるまで下にスクロールします /* Begin XCBuildConfiguration section */

4)デバッグセクションとリリースセクションがあることに注意してください。

5)リリースのセクションで見てみるCODE_SIGN_IDENTITY"CODE_SIGN_IDENTITY[sdk=iphoneos*]"、それは次のようになります。

CODE_SIGN_IDENTITY = "iPhone Distribution: MyCompany LLC";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: MyCompany LLC";

6)見てみるPROVISIONING_PROFILEと、次のようになり"PROVISIONING_PROFILE[sdk=iphoneos*]"ます。

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

これは、Xcodeのプロビジョニングプロファイルと一致する必要があります。それらが一致するかどうかを確認するには、[Xcode]> [ウィンドウ]> [オーガナイザ]> [デバイス]> [プロビジョニングプロファイル]> [プロファイルを右クリック]> [Finderで表示]> .mobileprovisionのファイル名がプロファイルIDです。

7)を下にスクロールしてproject.pbxproj、リリースセクションの2番目のインスタンスを見つけます。リリースセクションの2番目のインスタンスは、コメントで終わる必要があります。/* End XCBuildConfiguration section */

8)は、第2節では、そのように最初のセクションと一致していることを確認しCODE_SIGN_IDENTITY, "CODE_SIGN_IDENTITY[sdk=iphoneos*]、そしてPROVISIONING_PROFILE全てに充填されています。


2

まだ誰も言っていないので、私が1つの提案をします。内容の変更を開始する前に、.xcodeprojファイル全体のバックアップを作成してください。プロジェクトファイルをめちゃくちゃにしてバックアップがないと、非常に不愉快な経験につながります。

編集を取り消すことができるのは天の恵みです。


はい、これがSCMの神々がソース管理を行った理由です。
Br.Bill

1

XCode4でこの問題が発生しました。これを修正するには、デバッグとリリースの両方の構成にすべての正しい規定を組み込む必要があります。

アプリを(アーカイブして)送信しようとしました。そのため、デバッグプロビジョンを「コード署名しない」に変更し、リリースプロビジョンをアプリのアプリストアプロビジョンに変更します。

これにより修正され、通常どおりアーカイブできるようになります。お役に立てば幸いです。


1

[任意のiOS SDK]で空白になっているコード署名の行を選択し、適切な証明書を選択します。


1

ブラッド・スミスの解決策は私にとってはうまくいきましたが、それを機能させるためにCODE_SIGN_IDENTITYフィールドも削除する必要がありました。


これは、テキストエディターでxcodeプロジェクトファイルを変更することによって手動で行われます。壊れた状態になったときに再び実行するために、これを頻繁に行う必要がありました。多くの場合、削除できるものを両方とも知っていると非常に役立ちます。いい視点ね。
ウォーレンP

0

残念ながら、このアプローチは私にはうまくいきませんでした。しかし、これは私のために働いた修正です(これを機能させるには、Subversionなどで動作するプロジェクトファイルが必要です):

プロジェクトファイルの作業バージョンにロールバックしました。Xcodeで元に戻すことはできないため(Xcode 4のソース管理の「元に戻す」オプションはどこにありますか?)-私はTortoise、私のWindowsマシン、およびこのチュートリアル(http://tortoisesvn.net/docs/nightly/TortoiseSVN_en)を使用しました/tsvn-howto-rollback.html)を使用して、古いプロジェクトファイルにロールバックします。

チュートリアルがうまくいかなかったので、私はTortoiseを使用してプロジェクトファイルの作業リビジョンをUSBメモリに保存し、Macに移植しました。その後、私は新しい壊れたプロジェクトファイルを古い作業ファイルに置き換え、クリーンアップし、それは魅力のように機能しました!


0

AdFocプロビジョニングプロファイルをTestFlightで使用するいくつかの新しいデバイスで更新したため、問題が発生しました。これは、xcodeがプロジェクトまたはターゲットのコード署名ビルド設定でプロビジョニングプロファイルに古い参照を持っているために発生していると考えられます。私が修正した方法は次のとおりです。

  1. ターゲットビルド設定とプロジェクトビルド設定の両方に移動します。コード署名の下で、すべてのプロビジョニングプロファイルを別のプロファイルに変更します。
  2. オーガナイザーでデバイス/プロビジョニングプロファイルに移動し、問題のあるプロファイルを削除してから、右下の更新ボタンをクリックします。
  3. ターゲットとプロジェクトのビルド設定に戻り、プロビジョニングプロファイルを適切に(できれば)新しく更新されたプロビジョニングプロファイルに設定します。

0

少なくともXcode 5では、これは私にとって問題を解決したものです:

プロビジョニングプロファイルで、問題のあるプロビジョニングプロファイルを選択し、プルダウンメニューで有効なプロビジョニングプロファイルを選択します。

ここに画像の説明を入力してください


0

プロビジョニングファイルの古い参照を削除できます。次に、新しいプロビジョニングプロファイルをインポートし、Xcodeビルダーを選択します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.