アプリとWatchkitアプリを最初に作成したとき、「関連付けられたドメイン」機能を有効にしました。ウォッチキット拡張機能とコンパニオンアプリの両方の[機能]パネルで無効にし、各info.plistからキーが削除されていることを確認しました。
Appleの「証明書、識別子、プロファイル」ページに移動し、Watchkitアプリ、拡張機能、アプリごとにアプリIDを選択し、「関連付けられたドメイン」のチェックを外して、それぞれのプロビジョニングプロファイルを再生成し、ダウンロードしてインストールしました。
Ctrl-Shift-Command-Kを完全にクリーンアップし、再起動して、再構築しました。アプリストアにまとめると、以下のエラーメッセージが表示されます。
Xcode内でプロジェクト検索を実行しましたが、com.Apple.developer.associated-domainsキーが見つかりません。ビルドディレクトリ、nadaを検索しました。このキーが実際に私のコードに存在するとは思わないが、iTunesConnectはそこにあると考え、「*」に設定されているようだ。
これはバグだと思います。
コンパニオンアプリとWatchkit拡張機能の両方のEntitlements.plistに新しい配列アイテム「com.developer.Apple.associated-domains」とwebcredentialsの有効なドメイン:stringを挿入するだけで、回避策を管理しました。プロビジョニングファイルもアプリまたは拡張機能の[機能]タブも関連付けられたドメインに対して有効になっていないため、これは実際的な効果はありませんが、itunesconnectのコードスキャナーが存在しないキーの無効な値「*」をトリップしていたことを停止しました。
この問題を修正するには:
アプリIDに関連付けられているプロビジョニングファイルを再生成する必要があります。何らかの理由で、「関連ドメイン」が私のアプリでチェックされました。選択を解除すると、AppStoreの送信が機能しました。
関連付けられたドメインを使用する場合は、Entitlements.plist > com.developer.Apple.associated-domains
の各エントリが次の形式を使用していることを確認してください。
<service>:<fully qualified domain>[:port number]
例えば。
webcredentials:www.example.com
applinks:www.example.com
activitycontinuation:www.example.com
[:port number]
はオプションですが、<service>
および<fully qualified domain>
必須です!
アプリ送信失敗エラーから、私が理解しているのは、プロビジョニングプロファイルで「関連付けられたドメイン」がまだ有効になっていて、アプリケーションの「資格」ファイルにない可能性があることです。
したがって、明らかに2つのシナリオがあります。
シナリオ1:「関連付けられたドメイン」をサポートしますか?これは、「ユニバーサルリンク」などの機能に対して有効にする必要があります。
次のリンクを参照してください。
この場合、「エンタイトルメント」ファイルを手動で編集しないでください。代わりに、手順に従ってください。
1。 Xcodeでプロジェクトファイルを選択します。
2。 「ターゲット」の下で適切なターゲットを選択します
3。 「一般」の横にある「機能」を選択します
4。以下に示すように、「関連ドメイン」のオプションが表示されます。
5。 「関連ドメイン」を有効にします。 「関連ドメイン」を有効にすると、Xcodeは開発者アカウントにログインするように要求し、AppIdおよびプロビジョニングプロファイルと同期します。
上のスクリーンショットで述べたように、「関連ドメイン」を有効にしながら2つのことを行います
Xcodeと開発者アカウントからの設定の同期に問題がある場合は、次のチェックボックスが有効になっていることを確認してください。
また、社内およびアプリ配布のプロビジョニングプロファイルが適切に更新され、同期されていることを確認してください。
ほとんどの作業はXcode自体によって実行されます。耳を傾け、理解する必要があります。
シナリオ2:アプリに「Associated-Domain」は必要ありません"機能。この場合、@ CiprianRarauの回答に従ってください。そのよく説明されています。
ERROR ITMS-90164/90046:Invalid Code Signing Entitlements で述べられているように、クリーンビルドを実行することで問題を解決できました。記録のために、私はエラーコードITMS-90164を取得していました。