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


82

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

CompanyAppという名前のアプリを作成しています。次に、対応するアプリIDを使用する配布プロビジョニングプロファイルとともに、com.Company.CompanyAppのアプリIDを作成しました。バイナリをアップロードしましたが、問題なく動作しました。

次に、アプリのデモバージョン(基本的に同じアプリに少し変更を加えたものなので、同じソリューションとプロジェクトで、バンドル署名設定が異なるだけです)、新しいアプリIDcom.Company.CompanyAppDemoを使用してCompanyAppDemo作成しました Aと一緒に、新しいアプリ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が続く文字列である必要があります。

私は何日もデバッグを続けて、役に立たないことを理解しました。

私は新しいプロファイルで署名する場合、アプリケーションローダーが投げたというエラーが元のIDを参照してくださいなぜ私が疑問に思ってTEAMID.com.Company.CompanyAppの代わりにTEAMID.com.Company.CompanyAppDemoですか?これは、間違ったプロビジョニングプロファイルを取得するXamarinのバグですか、それとも何かが足りませんか?アプリごとに異なる証明書は必要ありませんよね?

XamarinのiOSビルド署名オプションを変更する前に、XCode> Preferenceのプロビジョニングプロファイルリストを常に更新していることに注意してください。

回答:


133

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

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

編集:実際のエラーメッセージ


これについてもう少し説明してもらえますか?
ジョン

1
はい、カスタムフレームワークを使用しているアプリでは、「ビルドフェーズ」、「ターゲットの依存関係」セクションに追加されるため、アプリをコンパイルすると、コンパイルされ、署名されます。また、各フレームワークの「ビルドフェーズ」に、コンパイルされたフレームワークを別のフォルダーに移動するスクリプトがあります。署名プロセスにバグがあるようです。重要な部分はフレームワークの削除であり、コンパイラーがそれらをコンパイルして再度署名することを余儀なくされたと思います。そのエラーは二度と起こりません。
quarac 2015年

おかげで、これは私の問題を解決するのに役立ちました!
DiscDev 2015

7
私がしなければならなかったのは、クリーンを実行することだけでした...これは、約50のビルドがTestFlightにアップロードされた後の新しいエラーでした
Phamer

2
Xcodeでの開発は、終わりのない悪夢です。どうやら、働くことを祈ることはコーディングよりも重要です。
エドゥアルド

63

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


1
エラーITMS-90164を解決するために私のために働いてくれてありがとう:「無効なコード署名資格。アプリバンドル署名の資格がプロビジョニングプロファイルに含まれているものと一致しません。プロビジョニングプロファイルによると、バンドルには次のようなキー値が含まれています許可されていません:「Payload / PalauMoja.app / PalauMoja」のキー「get-task-allow」に対して「true」エラーITMS-90164:「無効なコード署名資格。アプリバンドル署名の資格は許可されていませんプロビジョニングプロファイルに含まれているものと一致。
ジョセップ・エスコバル

Josepと同じエラーがあり、clean-> archive-> uploadで再度解決しました。このソリューションを投稿していただきありがとうございます。
少し

製品- >クリーンはどこで行いますか?XCodeまたはVisualStudioで?ところで、Xamarinを使用して開発しています。
James Lavery 2018年

20

誰かが両方のエラーを検索することにより、ここに入った場合ITMS-90164およびエラーITMS-90046のget-タスクが可能ASP-環境キー:

1

デビッドPが言ったように、製品->クリーンに、新しいアーカイブが私の問題を解決する前に、ます。

私の場合、障害のあるxarchiveに次のファイルがないことを確認したことを追加したいと思います。

2

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


18

最後に2週間の髪を引っ張った後..

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

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


13
xamarinはそのような生産性の向上です!
アントントロパシュコ2016年


8

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

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

これに:

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

5

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


1
あなたの命の恩人:)アップルの無関係なエラーメッセージが大好きです
Yoav Schwartz

4

私にとって、問題は自動追加されて空だったEntitlements.plistでした。[カスタムエンタイトルメント]フィールドから削除し、問題を解決しました。

Visual Studio2015でのiOSバンドル署名の表示


3

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

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


2

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


2

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

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

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

プロビジョニングと署名

  1. 上記が十分でない場合は、もう一度行う必要があるかもしれませんが、今回は、行う前に、Apple Keyringから古い期限切れのプロビジョニングプロファイルを削除するか、XCodeでApple Developer(itunes)アカウントを削除して再サインインします環境設定。変更があった場合は、必ずXCODEを終了して再起動してください。次に、アカウントを再度追加し、XCodeに新しい署名とチーム情報を取得させます。

1

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


1

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

アーカイブするときは、別のエンタイトルメントファイルを一時的に削除してください。


1

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

バンドル識別子を変更し(デモバージョンの場合)、アーカイブされたビルドを検証するときに同じエラーが発生しました(質問で詳しく説明されています)。Xcodeを使用しています。Xcodeを閉じてプロジェクトを再開するだけでは不十分でしたが、完全な「終了」で十分でした。おそらくどこかにキャッシュされていると思います。


これは私のためにそれをしました。XCodeは時々とても気難しいことがあります。
アーロンクラウス2017年

1

ここにリストされているすべてを試しましたが、問題は私の.entitlementファイルであり、最初に入力したことのない行があり、何らかの理由で追加されただけであることがわかりました。
それらの行を削除して再試行し、機能しました。


1

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


0
  1. Build PhaseXcodeでに移動します
  2. すべてのフレームワークを削除します
  3. それらを追加し直します
  4. 今すぐビルド->アーカイブ-> AppStoreにアップロード

やあ、あなたはそれで終わりです。問題が解決しました


0

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

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


0

私の場合、iOSバンドル署名のカスタムエンタイトルメント設定に間違ったファイルがありました。それを削除し、それは動作しました!


1
スクリーンショットがいいでしょう。
ウォーレンP

0

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

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


0

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


0

私はまったく同じ問題を抱えていました、そしてそれはかなりばかげた間違いでした。私は誰にもこれに時間を費やしてほしくないので、これについては:

間違い

ここで起こったことは、デプロイメントターゲットに「10」を入力したことです。代わりに10.0である必要があります。それが悪名高いエラーITMS-90164 / 90046:無効なコード署名資格を生成したものです!



0

ここに私の2セント。

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

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

ありがとう、サミュエル


0

Stackoverflowで昨日読んだすべてのトリックを試した後、ファイル「xxxxxx.entitlements」を削除して再生成します。[機能]をクリックし、[関連付けられたドメインでオン]を選択しますを追加します。次に、[機能]> [プッシュ通知]で、[修正] [プッシュ通知の資格を資格ファイルに追加する]をクリックします。

それを私にアーカイブを成功させる


0

このようなリンクwebcredentials:https://************.linkがあったため、アップロードが失敗していました。私はそれを取り除き、問題は解決しました。

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