web-dev-qa-db-ja.com

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

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

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

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

498
quantumpotato

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

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

これは私にとってうまくいった、プロジェクトファイルの手動編集を必要としないより簡単な解決策です:

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

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

織り

129
Ori
  1. プロジェクトとターゲットのプロパティ - > "コードに署名しない" - > OK - > cmd + S(またはcmd + B)。
  2. プロジェクトとターゲットのプロパティ - > "あなたのプロビジョンプロファイル" - > OK

  3. すべてがまたうまくいく!

76
user732414

私はBradの答えに賛成です、あなたが手動であなたの目標/プロジェクトを編集することによってこの問題を解決することができて、以下のような行を削除することができます:

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

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

10
matt

この問題のバリエーションを見ただけです。私は上記のBrad Smithのメモに従ってproject.pbxprojファイルにアクセスしました。ただし、この場合、すべてのPROVISIONING_PROFILE行は正しいように見えました。見つかりません。

ただし、修正方法は同じです。理論上は「良」に見えても、project.pbxproj内のすべてのPROVISIONING_PROFILE行を削除してから、XCodeでプロジェクトを再開します。

6
theevank

Bradのソリューションを完全にTerminalで実現するには、次のコマンドを使います

  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で保存して閉じる
4
MechEngineer

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

そのプロファイルの他に、新しいものも(同じ名前で)表示されていて、単純にアプリケーションを再起動した後、私はそれをスムーズに実行させました。

3
stack-o-frankie

これを行うのに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を下にスクロールして、releaseセクションの2番目のインスタンスを見つけます。 releaseセクションの2番目のインスタンスは/* End XCBuildConfiguration section */というコメントで終わっているはずです。

8)CODE_SIGN_IDENTITY, "CODE_SIGN_IDENTITY[sdk=iphoneos*]PROVISIONING_PROFILEがすべて埋められるように、2番目のセクションが最初のセクションと一致することを確認してください。

3
bobbypage

1つの提案はまだ誰もそれを言っていないのでするつもりです:してくださいあなたがそれの内容を修正し始める前にあなたの全体の.xcodeprojファイルのバックアップをとってください。プロジェクトファイルを作成してバックアップを作成しないと、非常に不快な経験になります。

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

2
Richard Brown

Any iOS SDKの下の空白のコード署名の行を選択し、正しい証明書を選択します。

1
sunkencity

私はXCode4でこの問題に遭遇しました。これを修正するには、DebugとReleaseの両方の設定に正しい規定をすべて追加する必要があります。

私は自分のアプリを(アーカイブによって)送信しようとしていました。そのため、Debugの規定を「Don't Code Sign」に、Releaseの規定を私のアプリのappstoreの規定に変更するだけです。

これで修正され、通常のアーカイブが可能になります。それが役立つことを願っています。

1
GeneCode

Brad Smithの解決策は私には役に立ちましたが、それを機能させるにはCODE_SIGN_IDENTITYフィールドも削除する必要がありました。

1
jean_jean

残念ながら、この方法ではうまくいきませんでした。しかし、これは私のために働いていた修正です(これをうまく動かすためにはSubversionかそこらの上に作業中のプロジェクトファイルが必要です):

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

チュートリアルがうまくいかなかったので、プロジェクトファイルの作業中のリビジョンをusbスティックに保存して私のMacに移植するためにTortoiseを使いました。その後、私は新しい壊れたプロジェクトファイルを古い作業中のものと置き換え、きれいにし、そしてそれは魅力のように働いた!

0
Chris Conway

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

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

プロビジョニングファイルの古い参照を削除できました。その後、新しいプロビジョニングプロファイルをインポートしてXcode Builderを選択した後。

0
annu

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

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

enter image description here

0
RawMean