1. ホーム
  2. ios

[解決済み] ERROR ITMS-90164/90046: 無効なコード・サイニング・エンタイトルメント

2023-04-11 15:19:01

質問

注:Xamarinで開発しています。Xamarinフォーラムに投稿された同様の質問 ここで

というアプリを作るのですが、例えば CompanyApp . そして、そのアプリのためにApp IDを作成しました com.Company.CompanyApp を作成し、対応する App ID を使用する Distribution Provisioning Profile も一緒に作成しました。バイナリをアップロードしたら、まったく問題なく動作しました。

次に、アプリのデモ版を作成しました (基本的に同じアプリに少し変更を加えているので、同じソリューション & プロジェクトですが、バンドル署名の設定が異なるだけです)。 会社AppDemo で、新しいアプリ ID com.Company.CompanyAppDemo と、新しい App ID を使用する新しい Distribution Provisioning Profile を追加しました。iOS Bundle Signing オプションを更新して、新しい Provisioning Profile を使用するようにし、IPA を生成しました。しかし、これを Application Loader にアップロードすると、次のエラーが発生しました。

[2015-01-23 16:08:21 SGT] ERROR: ERROR ITMS-90164: "無効なコードです。 エンタイトルメントに署名しています。あなたのアプリバンドル署名のエンタイトルメントが プロビジョニング プロファイルに含まれるものと一致しません。 プロビジョニングプロファイルによると、バンドルには、許可されていないキー値 が許可されていません。'TEAMID.com.Company.CompanyApp'というキーが含まれています。 'application-identifier' が含まれています。

[2015-01-23 16:08:21 SGT] ERROR: ERROR ITMS-90046: "無効なコードです。 エンタイトルメントに署名しています。アプリケーションバンドルの署名には コード署名のエンタイトルメントが含まれていますが、iOS ではサポートされていません。具体的には キー 'application-identifier' の値 'TEAMID.com.Company.CompanyApp' が無効です。 の値 'TEAMID.com.Company.CompanyApp' はサポートされていません。この値 は、TEAMIDで始まる文字列と、ドット「, で始まり、バンドル識別子が続きます。

私は無駄に把握するために何日もデバッグしています。

新しいプロファイルで署名したときに、アプリケーション ローダーが投げたエラーが元のプロファイルの ID を参照しているのはなぜでしょうか。 プロファイルで署名したとき、Application Loader が投げたエラーは、元のプロファイルの ID を参照していたのが不思議です。 TEAMID.com.Company.CompanyApp の代わりに TEAMID.com.Company.CompanyAppDemoです。 ? これはXamarinのバグで、間違ったプロビジョニングプロファイルを拾うのか、それとも私が何かを見逃しているのか?あなたは正しいアプリごとに異なる証明書を必要としませんか?

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

どのように解決するのですか?

2週間の毛抜き作業の後、ようやく...

何らかの理由で、Entitlements.plist に設定されているキー 'application-identifier' がない場合、そのキーに TEAMID.com.Company.CompanyAppDemo に設定されているキー 'application-identifier' がない場合。 に設定されている場合、Xamarinはオリジナルのアプリケーション識別子、つまり TEAMID.com.Company.CompanyAppです。

そこで、Entitlements.plist 内に正しいアプリケーションバンドル ID を指定する application-identifier を追加することで解決しました。そして、その plist を Build Options > iOS Bundle Signing に含めます。