web-dev-qa-db-ja.com

エラーITMS-90164 / 90046:無効なコード署名資格

注:私はXamarinを使用して開発しています。 Xamarinフォーラムに投稿された同様の質問 here

たとえば、CompanyAppというアプリを作成しています。次に、それに対応するアプリIDcom.Company.CompanyAppと、対応するアプリIDを使用する配布プロビジョニングプロファイルを作成しました。バイナリをアップロードしたところ、問題なく動作しました。

その後、アプリのデモ版を作成しました(基本的には小さな変更を加えた同じアプリなので、同じソリューションとプロジェクトであり、異なるバンドル署名設定です)、CompanyAppDemo新しいアプリIDcom.Company.CompanyAppDemo、および新しいアプリIDを使用する新しい配布プロビジョニングプロファイル。 iOSバンドルの署名オプションを更新して、新しいプロビジョニングプロファイルを使用し、IPAを生成しました。しかし、これをApplication Loaderにアップロードすると、次のエラーが発生しました。

[2015-01-23 16:08:21 SGT]エラー:エラーITMS-90164:「無効なコード署名資格。アプリバンドルの署名の資格は、プロビジョニングプロファイルに含まれる資格と一致しません。プロビジョニングに従ってプロファイルでは、バンドルには許可されていないキー値が含まれています。「Payload/CompanyApp.app/CompanyApp」のキー「application-identifier」の「TEAMID.com.Company.CompanyApp」

[2015-01-23 16:08:21 SGT]エラー:エラーITMS-90046: "無効なコード署名資格。アプリケーションバンドルの署名に、iOSでサポートされていないコード署名資格が含まれています。具体的には、値 'TEAMID.com.Company 'Payload/CompanyApp.app/CompanyApp'のキー 'application-identifier'の.CompanyApp 'はサポートされていません。この値は、TEAMIDで始まり、ドット'。 'が続き、その後にバンドルIDが続く文字列でなければなりません。 "

私は何日もデバッグしていませんでした。

新しいプロファイルで署名したときに、Application Loaderがスローしたエラーが元のIDTEAMID.com.Company.CompanyAppを参照する理由を疑問に思っていますの代わりにTEAMID.com.Company.CompanyAppDemo?これは、間違ったプロビジョニングプロファイルを選択するXamarinのバグですか、それとも何か不足していますか?アプリごとに異なる証明書は必要ありませんか?

XamarinのiOS Build Signingオプションを変更する前に、XCode> PreferenceのProvisioning Profileリストを常に更新していることに注意してください。

78
yonasstephen

髪を引っ張ってから2週間後。

何らかの理由で、TEAMID.com.Company.CompanyAppDemoに設定されたEntitlements.plistにキー 'application-identifier'がない場合、Xamarinは元のapplication-identifierを使用します、つまり- TEAMID.com.Company.CompanyApp

したがって、解決策は、Entitlements.plist内に正しいアプリケーションバンドルIDを指定するapplication-identifierを追加することでした。次に、ビルドオプション> iOSバンドル署名にplistを含めます。

17
yonasstephen

私のようなERROR ITMS-90046を検索して誰かがここに来た場合、私の解決策はそれをきれいにし、すべてのプリコンパイル済みフレームワーク(カスタムフレームワーク)を削除してから、再度ビルドすることでした。

注:エラーの説明には、キー「aps-environment」について「development」と記載されています。

Edit: The actual error message

132
quarac

私は同じ問題を抱えていて、単純な製品->クリーンで解決しました。

62
David P

エラーITMS-90164とエラーITMS-90046の両方をget-task- allowおよびasp-environmentキー:

1

David Pが言ったように、新しいアーカイブが私の問題を解決する前にProduct-> Clean.

私の場合、追加したいのは、障害のあるxarchiveに次のファイルがないことです。

2

その.xarchiveを本番署名のためにクライアントに送信する前に、archived-expanded-entitlements.xcentファイルを探して、そこにあることを確認したい場合があります。

19
Bluezen

同じ問題を簡単な製品->クリーンで解決しました。

8

Entitlements.plistでこれを変更します。

<key>aps-environment</key>
<string>development</string>

これに:

<key>aps-environment</key>
<string>production</string>
7
KalleP

これは、iTunes Connectの新しい契約に同意する必要がある場合にも発生します。 iTunes Connectにログインすると、最新の契約変更に同意するように促すバナーが上部に表示されます。

5
RickiG

私にとって問題は、自動的に追加された空のEntitlements.plistでした。カスタム資格フィールドから削除し、問題を解決しました。

View of the iOS Bundle Signing on Visual Studio 2015

4
Cássio

パックする前に対応するリリース証明書を選択しないと、エラーITMS-90164が報告されます

ビルド設定->コード署名ID->リリース->任意IOS SDK

3
user5938649

アーカイブするときは、WatchKitアプリではなくAppターゲットを選択したことを確認してください。

2
Ric Santos

他の答えはどれも私のためにこのエラーを解決しませんでしたが、これはしました:

  1. 新しいXCodeアプリケーションを作成し、コード署名設定を調べます。

  2. アプリをデフォルトのXCode 7またはXcode 8の署名およびプロビジョニング設定と同様に設定してみてください。XCode7はここに示されていますが、XCode 8で再び変更されています。

provisioning and signing

  1. 上記で十分でない場合は、再度行う必要がありますが、今回は、その前に、Appleキーリングから古い期限切れのプロビジョニングプロファイルを削除するか、Apple開発者(iTunes)アカウント。変更後は必ずXCODEを終了して再起動してください。次に、アカウントを再度追加し、XCodeに新しい署名とチーム情報を取得させます。
2
Warren P

2つのターゲット(2つの開発者ID、2つの資格)を含むプロジェクトがこれにつながる可能性があります。 (それがどのように起こったのか聞かないでください...)

アーカイブするとき、別の資格ファイルを一時的に削除します。

1
hstdt

マスターではないgitブランチからビルドをアップロードしようとしました。この問題を解決するために、ブランチをマスターにマージして再構築しました。その後、ビルドを正常にアップロードできました。

1
Kurt Anderson

Entitlements.plistで、Accessドメインの値をapplinks:htts://domain.app.linkからapplinks:domain.app.linkに変更しました。これは魅力のように機能します。乾杯!

1
Sathish

ここにリストされているすべてを試してみましたが、問題は私の.entitlementファイルであり、そもそも入れなかった行が何とか追加されただけでした。
これらの行を削除して、もう一度試してみました。

1
Nolan.K

適切なXcode 'Quit'を実行してから再起動することが、それを機能させる最後のアクションでした。

(デモ版の)バンドル識別子を変更し、アーカイブされたビルドを検証するときに同じ質問(質問で詳述)を受け取りました。 Xcodeを使用しています。 Xcodeを閉じてプロジェクトを再度開くだけでは十分ではありませんでしたが、完全な「終了」で十分でした。おそらく私が推測している場所に何かがキャッシュされていた。

1
Marcus

何時間も調査した後、簡単な解決策を見つけました。

アプリケーションローダーを使用してアプリケーションをアップロードする代わりに、XCodeのオーガナイザーを使用しましたが、アップロード時に警告なしで機能しました。

0

私の問題は、間違ったバンドルを使用してIPAファイルを作成していたことです

0
Netero

私にとっては、自動コード署名機能を再びオン/オフすることで解決できました。

enter image description here

0
Dave G

ここに私の2セント。

たった今、この問題に巻き込まれたのは、Apple開発者ポータルからTeamID /アプリケーションIDをコピーすると、entitlement.plistに多くの無関係な値がもたらされるためです。 Xcodeを使用してentitlement.plistを編集しており、最初の改行文字以降は入力ボックスにすべてが表示されないため、これに気付きませんでした。

この場合、entitlement.plistにプレーンテキストエディターを使用することをお勧めします。

ありがとう、サミュエル

0
Samuel Leung
  1. XcodeでBuild Phaseに移動します
  2. すべてのフレームワークを削除する
  3. それらを元に戻す
  4. ビルド->アーカイブ-> App Storeへのアップロード

万歳、あなたはそれで完了です。問題が解決しました

0
Mehul Thakkar

私にとって、iOS Bundle SigningのCustom Entitlements設定に間違ったファイルがありました。それを削除し、動作しました!

0
JP Hochbaum

資格を確認する必要があります。 plistファイルのようなものです。開発用に編集し、余分なフィールドを削除します。

ここに画像の説明を入力

0
Rajesh Gaddam

私はまったく同じ問題を抱えていて、それは非常に愚かな間違いでした。私はこれに時間を費やしたくないので、このために:

Mistake

ここで何が起こったのかと言えば、展開ターゲットに「10」と入力したということです。代わりに10.0になっているはずです。それが悪名高いERROR ITMS-90164/90046:無効なコード署名資格を生み出したものです!

0
Benjamin de Bos