プロファイルが、アプリケーション識別子エンタイトルメントのエンタイトルメントファイルの値と一致しません


92

アプリをアプリストアにアップロードしようとしていますが、証明書があるページでこのエラーが発生します。私が知る限り、フィールドを変更して一致させましたが、何かが足りません。

これがポップアップするものです

どんな助けでも大歓迎です。

info.plist


1
entitlements.plistファイルを表示します。
Imad Ali

たぶん、これまで探したことがなかったからかもしれませんが、私が見た唯一のplistは情報を言っていますが、これが2番目の画像です。
ポールレイモンド

リンクを投稿できなくなったと書いてあります。誰かが何かを思いついたら、シカゴ行きの飛行機に乗ろうとしています
Paul Raymond

回答:


208

これで修正された理由はわかりませんが、[ターゲットの機能]タブに移動し、iCloudをオンにして、アーカイブビルドを実行しようとしましたが、失敗しました。もう一度iCloudをオフにして、アーカイブビルドを実行しようとすると、成功しました。その後、証明書を再び自動的に解決することができました。


3
なぜこれが機能したのかはわかりませんが、機能しました。アップルのサポートはあまり役に立ちませんでした。
ポールレイモンド

13
これに感謝します-オン/オフを切り替えた後、xcodeprojの横に空の.entitlementsplistが作成されました。これが提出プロセスが探しているもののようです。おそらく、資格/機能を必要としない既存のアプリのXcode9の問題のみです。
アンドリューウッド

3
こっちも一緒。古代のプロジェクト。機能を切り替える提案に感謝します。現在、受け入れられる空の.entitlementsがあります。Appleにバグを報告する。
RickJansen 2017年

6
このbsで一晩中スパンキング。オンとオフを切り替えて、空白のエンタイトルメントファイルを作成してから、「コード署名エンタイトルメント」ビルド設定をその空白のファイルにポイントする必要がありました。
Adam Waite 2017年

2
Xcode 10.0beta5では、これはまだ発生しています。私にとっては、エンタイトルメントが作成された後にプロジェクト名を変更したことが原因でした。iCloudのオンとオフを切り替えると、エンタイトルメントファイルの名前が変更され、ビルド設定でその名前が更新されました。ファイルの内容は同一でした。アップローダーは、ビルド設定ファイル名に関係なく、エンタイトルメントファイルの名前を気にしているようです。
トロイ

41

Finderを右クリック->フォルダに移動...

~/Library/MobileDevice/Provisioning

Xcode11の場合

~/Library/MobileDevice/Provisioning Profiles/

すべてのプロビジョニングプロファイルを削除しました。


1
私の場合はフォルダは「〜/ライブラリ/モバイル装置/プロビジョニングプロファイル」である
ライトマン

これはパスがあるだけでXcodeの11と、正解で、同意~/Library/MobileDevice/Provisioning Profiles/
マリウスKažemėkaitis

なぜこれで問題が解決するのですか?何を削除しましたか?これには副作用がありますか?
マークドン

Xcodeによって自動的に追加されたプロビジョニングプロファイル、またはdeveloper.apple.comからプロファイルを開いて手動で追加されたプロビジョニングプロファイルを削除します。他のプロファイルを失いたくない場合は、次のようなものを使用できます... grep -ir YOUR_APP_ID〜 / Library / MobileDevice / Provisioning \ Profiles; 一致するプロファイルを表示します。それらを削除するだけで、同じタスクを実行できます。
クリスダグラス

33

作成したアプリのapplication-identifier値が、プロビジョニングプロファイルが期待しているものに対して正しくありません。チーム2ABCDEFGのappIDcom.example.fooの証明書は、application-identifier:2ABCDEFG.com.example.fooを期待します。アプリは、appIDがcom.example.fooであると宣言しましたが、application-identifierが一致しませんでした、間違ったチームプレフィックスを使用しているか、bundleIDが正しく構成されていません。

私の場合、ビルドスキームを使用して、prodアプリとqaアプリをビルドできるようにしています。prodの場合はcom.example.foo、QAの場合はcom.example.foo.qa。Info.plistのbundleIdentifierを$(PRODUCT_BUNDLE_IDENTIFIER)$(BUNDLE_SUFFIX)に設定しました。これは、シミュレーターやデバイスでさまざまなアプリを使用する場合に最適ですが、アーカイブフェーズでアプリがアプリケーションIDを生成すると、 Info.plistによって生成されたbundleIdentifierを読み取っていてはなりません。

この状況を改善するために、FooProject.xcodeproj / project.pbxproj(テキストエディターを使用)を編集して、QA buildSettingsPRODUCT_BUNDLE_IDENTIFIERをcom.example.foo.qaに変更しました。

AppleのテクニカルQ&Aを見ると、これを解決するための詳細がわかります。エクスポートしたアプリでcodesignエンタイトルメントを実行し、アプリが作成されたばかりのアプリケーションIDを確認すると、何が間違っているのかをすぐに理解できるはずです。 https://developer.apple.com/library/content/qa/qa1879/_index.html エラーメッセージのフレーズを実際に使用したり、アプリケーションを呼び出したりしていないため、Google検索でそのページが見つかりませんでした-フルネームによる識別子。代わりにアプリIDと言います。

また、この問題の解決策は、アプリケーションIDの資格を持つ新しいプロビジョニングプロファイルを生成することではありません。その資格はありますが、プロビジョニングプロファイルの値と、アプリが一致している必要があります。


2
ありがとうございました!パッケージの下でビルド設定を変更して、Product BundleIdentifierのサフィックスにカスタム変数を使用するように修正することができました。例:com.mycompany.myapp $(BUNDLE_ID_SUFFIX)これで解決しました。そのため、プロジェクトファイルを手動で編集する必要がなく、環境ごとに異なるバンドルIDを簡単に維持できました。
n8tr

アプリケーション識別子の不一致が発生する可能性がある理由の1つは、すべてのプロビジョニングプロファイルがダウンロードされていないことです。正確なアプリIDを持つプロファイルが欠落している場合、アーカイブはワイルドカードプロファイルで作成されます。これにより、エクスポートフェーズで不一致が発生します。
diidu 2018年

これは私のために働いた。Ionicアプリを作成していて、別のアカウントでテストしたことに気付きました。com.foo.testNameを使用し、正しいアカウントでビルドするときに元に戻しました。com.foo.testNameはまだpbxprojファイルにあったようです
Dewald Els

どうもありがとう、これがまさに私の検証を妨げていたものであり、説明は非常に明確です!
MDH 2018

@ n8trほぼ1週間の頭痛と欲求不満の後、あなたのコメントは私を救いました。ありがとう。
Behdad

9

{project} .entitlementsファイルが見つからなかった可能性があります。@samkassが述べたことを実行すると、ファイルが自動生成され、機能します。したがって、基本的には、[機能]タブに移動し、すべてを有効にして、無効にします。


これはばかげていますが、私が更新していたいくつかの古いプロジェクトではうまくいきました。
aspro

7

iCloudトグルをオンに変更し、iCloudを構築して無効にすると、次のようなエラーがなくなりました。

プロファイルが、application-identifierおよびkeychain-access-groupsエンタイトルメントのエンタイトルメントファイルの値と一致しません。


3

Xcode 11では、これは、プロジェクトに.entitlementファイルが存在しない場合に発生する可能性があります。解決策は、[署名と機能]の下の[+機能]をクリックしてランダムな機能を追加し(これにより、.entitlementファイルが作成されます)、機能を削除することです。これにより、証明書も自動的にプロビジョニングできます。


2

アプリ内購入、プッシュ通知、アプリ間オーディオ、Siriキットなど、アプリケーションに必要なアプリケーション機能を確認してください。

これが、このタイプのエラーの唯一の原因です。

アプリIDで上記のフラグがオンになっていることを確認してください。

ほとんどの場合、プッシュ通知を構成していない場合に発生します。開発中のアプリIDでアプリを購入します。


何も有効にしていません。本当にイライラします。
ポールレイモンド

あなたのアプリには、私が上で述べた機能がありますか
Tech

後でスクリーンショットを添付しますが、アプリのプッシュ通知やアプリの購入はありません。
ポールレイモンド

スクリーンショットは正確に何が欲しいですか?plistの下では、資格については言及されていません。
ポールレイモンド

2

ターゲットの[機能]タブに移動し、キーチェーン共有をオンにすると、機能し始めます


2

私にとっての秘訣は

  1. ターゲット(私の場合はウィジェット)の機能を追加/削除します。
  2. 作成したエンタイトルメントファイルがビルド設定にリストされていることを確認してください。
  3. そして、値が「development」の「APSEnvironemnt」キーをentitlemenetsファイルに追加します。

1

Xcode 10では、エンタイトルメントファイルをProjectNavigatorの正しいフォルダーに移動することで機能しました。エンタイトルメントファイルはありませんでしたが、[機能]タブの機能を切り替えることで取得できました。

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


1

これと同じエラーが発生しましたが、上記の解決策のいずれも私の場合の問題を解決しませんでした。

私にとってうまくいったのは、「Entitlements.plist」ファイルの「Canbedebugged」設定を「NO」から「YES」に変更することでした。


1

私の場合、問題は次のとおりでした。ビルドステップに使用されるプロビジョニングプロファイルは、エクスポートステップに使用されるプロビジョニングプロファイルとは異なるアプリIDに対して作成されました。

したがって、ビルドとエクスポートのステップで同じプロビジョニングプロファイルを使用していることを確認してください。


ビルドとエクスポートのステップでプロビジョニングプロファイルが異なるために、このエラーが発生する可能性があることを強調したかったためです。この場合、エラーメッセージは根本原因を見つけるのに役立ちません。答えが遅れる理由については、このエラーは特定の期間に限定されません。つまり、それは1年前に起こり、今でも同じように起こっています。私の場合、受け入れられた回答は機能しませんでした。
AlexeyKomov19年

1

私にとってうまくいったのは、XCode 11でアーカイブを作成し、Xcode12ベータでアップロードしたことです。


0

開発者アカウントでアプリIDに対して有効にしたオプションを使用して、アプリの機能をクロスチェックします。


これは無料のアプリで、何も有効にしていません。とてもイライラします。それは私のデバイスにうまくインストールされます、私はどこを見ればいいのか分かりません。
ポールレイモンド

両方のスクリーンショットを共有できますか?
KavyaKavita 2017

何のスクリーンショットが欲しいですか?
ポールレイモンド

開発者アカウントの機能セクションとアプリID構成のスクリーンショット
KavyaKavita 2017

0

ここの回答にリストされているいくつかのオプションを試しましたが、どれも役に立ちませんでしたが、[署名を自動的に管理する]チェックボックスをオフとオンに切り替えると問題が修正されました。


0

TL; DR:アプリIDをチェックし、サービスがターゲットの内容と一致していることを確認します。


私に起こったことは、Xcode 10.1にアプリIDの作成を手伝わせた後、ここで説明するような問題が発生したことです。(iTunesConnectでアプリを作成したときにwhildcardアプリIDを選択したので、これが行われたことに気づいていませんでした。)iOS開発者ポータルを開くと、新しいアプリIDでGameCenterとアプリ内購入が自動的に有効になります。

でGameCenterを有効にできなかったためTarget -> Capabilities、アプリ内購入を有効にすると、アプリに署名してアップロードできました。


0

同じ問題に直面したとき、上記のすべてを試しましたが、どれもうまくいきませんでした。

バンドル識別子を変更して、前の識別子と同じにならないようにしました。たとえば、「com.name.App」から「com.name.App2」に変更しました。xcodeにプロビジョニングプロファイルのフェッチ/作成を試みさせてから、元のプロファイルに戻すチャンスを与えます。

Appleの開発者フォーラムのこのスレッドからこのアイデアを得ました-https //forums.developer.apple.com/thread/114539


0

重複したターゲットを作成しようとした後、最近このページに出くわしました。どの提案もうまくいきませんでした。さらなる調査とある程度の髪の毛の引っ張りにより、最終的にはアプリのビルド設定を精査して、何が問題なのかを突き止めようとしました。

私のプロジェクトは、独自のターゲットではなく、元のターゲットのエンタイトルメントファイルをまだ指していることが判明しました。これを解決するために、Finderで元のエンタイトルメントファイルに移動しました(例:$ {SRCROOT} /MyProject/Entitlements/TargetName.entitlements)、同じフォルダー内にコピーを作成して、名前を変更しました(例:NewTargetName.entitlements)。

次に、新しいエンタイトルメントファイルを開き、application-identifierフィールドを変更して、新しいターゲットのバンドル識別子の末尾に一致させました(例:ABCDEFGH.US.co.fake-company.superduperapp-newtargetname)。

最後に、ビルド設定の[コード署名資格]フィールドを資格ファイルのパスに更新しました(私にとって、これは$ {SRCROOT} /MyProject/Entitlements/TargetName.entitlementsの行に沿ったものでした)。

[署名と機能]タブに戻りましたが、問題は修正されました。誰かがこれが役に立つと思うことを願っています。


0

Xcodeの[情報]タブに移動し、[バンドルID ]フィールドを変更します。アプリ名を変更した後、[全般]タブで[バンドルID]を変更しても変更されませんでした。上記の修正は私には機能しませんでしたが、これはすぐに機能しました。


0

この問題は、Xcode 12ベータ3の新しいアプリで発生しました(アプリの提出は本日開始されました)。

Xcodeは「署名を自動的に管理する」をオンにしました。ただし、「署名証明書」に表示されているチームIDが、iTunes ConnectWebサイトに表示されているチームIDと一致しませんでした。これが、アプリのアップロードを妨げる根本的な原因でした。

修正方法:

  1. AppStore配布用のプロビジョニングプロファイルを手動で作成しました
  2. Xcodeで、[設定]-> [アカウント]の[手動プロファイルのダウンロード]をタップしました
  3. 次に、「署名の自動管理」をオフにしました。
  4. ドロップダウンでプロビジョニングプロファイルを選択すると、[署名証明書]の下に正しいチームIDが表示されます

0

exportArchiveコマンドを実行してAppStoreにアップロードするGitlabパイプラインをセットアップしているときに、同じ問題が発生しました。ビルド設定のDEVELOPMENT_TEAMを、Signing&Certsで選択したのと同じチームに変更することで、それを機能させることができました。

以前は空白に設定されていたため、デフォルトで別のDEV TEAM IDを使用していましたが、これは正しくなく、一致せず、「application-identifier」= 12331232.com.bannana.apples.peachが一致しないと文句を言っていました。これにより、正しいDEV TEAMを設定することができ、うまくいきました。

Xcodeバージョン:バージョン11.3.1

これが誰かに役立つことを願っています。


0

私たちのセットアップ

複数のターゲット:

  • サブアプリ
  • 見る
  • アプリクリップ
  • 今日のウィジェット

...そしてiCloudを使用します。

iCloudのオンとオフを切り替えることは私たちの選択肢ではありませんでした。私たちはすでにそれを本番環境で使用しており、それを台無しにすることはありません...私は元の質問のメッセージとこのバリエーションもある時点で受け取りました:

プロファイルが、application-identifierおよびkeychain-access-groupsエンタイトルメントのエンタイトルメントファイルの値と一致しません。

解決

ここでの他の応答からヒントを得て、すべてのターゲットに.entitlementsファイルがあることを確認しました。ターゲットに何もなかった場合は、次のように空のターゲットを作成しました。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict/>
</plist>

...そしてターゲットCode Signing EntitlementBuild Settings空の.entitlementsファイルに向けました。

解決しました!


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