Xcode 5:コード署名資格エラー


149

IOS 7をサポートする新しいアプリケーションを構築しました。新しいXCode 5 GMを入手し、新しいプロビジョニングプロファイルと配布証明書を使用してアプリに署名しようとしましたが、配布に問題があります。私は常に次のエラーを受け取ります:

「無効なコード署名エンタイトルメント。アプリバンドルシグネチャのエンタイトルメントは、プロビジョニングプロファイルに含まれているものと一致しません。プロビジョニングプロファイルによると、バンドルには許可されていないキー値が含まれています: '[XXXX.com.sampleキー 'keychain-access-groups'の.company] '。

と呼ばれるキー値についても同じエラーが発生しますapplication-identifier

エラーのスクリーンショット:

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

回答:


208

解決策は、プロビジョニングプロファイルを示すXcode 5の新しいオプションにあります。プロジェクトターゲットのプロビジョニングプロファイルを適切なプロファイルに設定するだけで機能します。

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


6
この回答に追加するには-プロビジョニングプロファイルにはディストリビューションとリリースの両方のタイプがありました。これと同じエラーが発生しました。これは、リリースタイプの開発プロファイルセットがあったためです(ディストリビューションタイプを使用していると思っていて、リリースタイプに気付かなかった)。それを自分のディストリビューションプロファイルに設定すると、うまくいきました。
2013

4
この答えをさらに明確にするために、結合ビューを使用して、プロビジョニングプロファイルとコード署名IDをそれぞれの最上位行に設定しようとしていました。これを行っても、<複数の値>に戻りました。ただし、両方の行を展開すると、各構成の「Any iOS SDK」サブ行がすべてNoneに設定されているのがわかりましたが、Debug / Release行には適切なプロファイル/署名IDがリストされていました。この状態でアーカイブすると、すべての「Any iOS SDK」行を適切な値に明示的に設定するまで、エラーが発生しました。
qix

1
私たちはこれに何日も費やしました!これの悪い点は、IPAを構築するときに同じプロファイルを再度選択する必要があることです。ベンジャミン、どうやってこれを見つけたの?
cregox 2013年

2
残念ながら、私にはうまくいきません。私はdeveloper.apple.comのWebサイトで自分のプロファイルを確認し、Game CenterとIn App Purchaseを有効にしました。私もどちらも使用せず、それが問題になるのではないかと思います。
JScarry 2013年

4
さらに明確にするために、Xcodeではプロジェクトターゲットの両方のプロビジョニングプロファイル情報を選択できることに注意してください。プロジェクトだけでなく、ターゲットの設定を変更していることを確認する必要があります。
Brian Stormont 2014年

55

あなたが私に似ているとあなたがしようとしたと考えられる場合は、すべてを、10回以上のプロジェクトをアーカイブし、キーボードの上に頭を打ちましたし、今でもこのエラーを取得します。自分でお願いし、XCodeを再起動してください。いつかアップル…嫌い。


1つのxcodeセッションで2つの異なるアプリをビルドし、1000エラーが発生しました。再起動しました。ありがとうございました!
donmarkusi 14年

これも私にとってはうまくいきました。Xcode 6.3を使用しています。コード署名にApple devアカウントを選択できませんでした。「iOSアプリID 'xxxxxxxxx'はマップ機能への変更をサポートしていません」という毎回、まったく無関係のエラーメッセージが表示されました。単純なxcode再起動で修正されました。
Sahil、

3
私があなたに1000回賛成できるとしたら、そうします。これでうまくいきました。これはXCode 7.1で発生しました。
Manu Kanthan、2015年

25

上記の手順の多くを実行しましたが、最終的に機能したのはXcodeでプロファイルを更新することでした。アプリの配布プロファイルが既にリストに表示されていたため、なぜそれが必要だったのかわかりません。手順は次のとおりです。

  1. Xcodeの設定
  2. [アカウント]タブ
  3. Apple IDを選択してください
  4. Apple ID詳細パネルの[詳細を表示]ボタンをクリックします
  5. 左下隅の[更新]ボタンをクリックします

2
これを行ったら、Build and Archiveコマンドを再実行して、新しいプロファイルが適用されていることを確認する必要もあります。(少なくとも、それは私にとって必要でした。)
ブレント・ロイヤル-ゴードン

12

私の場合、developer.apple.comのアプリケーションサービスと同じ機能をXcodeでアクティブにしました。それは私のために働く

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

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


これは私にとってうまくいきました-開発者センターでそれらをオフにすることはできません、そしてXcode 5.1.1でiOS 7.0をコンパイルするにはそれらをオンにする必要があるようです。
Matt H

6

私の場合(申し訳ありませんが)-> General-> Identityで「Team」を「None」に切り替えました

別のケースでは、このIDを「なし」から、IDとプロファイルを管理する開発者アカウントに切り替える必要がありました。

Xcodeはコード署名に大きく失敗することがあります。または、私たち人間は、もちろん、それが何をしているかを理解するのに十分なほど賢くないだけです。あきらめないでください。時々、すべてのコード署名拷問を経験しています!


わあ、ありがとうございます。しかし...それはなぜうまくいったのですか?
マーティン

なぜ機能したのか... Xcodeは非常に複雑な製品だと思います。IDとプロビジョニングプロファイリングは最初からかなり面倒でした。もう相互関係を完全に理解している人はいないと思います。私はしません。このスレッドが示すように、それは試行錯誤です。
RickJansen、2014年

5

私の場合、リリース用の正しいプロビジョニングプロファイルを設定してから、Xcodeを再起動する必要がありました。再起動する前は、同じプロビジョニングプロファイルがあり、機能しませんでした。したがって、再起動が奇跡を起こすことがあります。多分これは誰かを助ける。


3

誰かがGameCenterを使用している場合は、ターゲットのこのセクションを確認してください。私はいくつかの古いプロジェクトで作業しましたが、2つのエラーがありました(ただし、すべて正常に動作しました)。無効にしてから有効にすると、この問題は解決しました。ここに画像の説明を入力してください

ほとんどの場合、このアクションにより、App CenterにGame Centerの資格が追加され、それ自体が処理されます。


3

1.プロジェクトフォルダに移動し、*。entitlementsファイルを削除します。2.次に、xcodeプロジェクトのターゲットに移動します->ビルド設定->コード署名資格-値を削除します3.クリーン4.実行


3

ああ、この素晴らしいエラー。このエラーが表示されたときはいつでも、次のことを確認します。

1. XCodeがいつでもプロビジョニングプロファイル情報にアクセスできるようにする-XCodeを起動したときに、コンピューターのプライベートファイルにアクセスするように要求し続けるので、今ではなく常にアクセスを許可するオプションでプロビジョニングプロファイル情報を取得できます。または一度だけ-アクセスを常に許可に設定

2.プロジェクトに影響を与える古いエンタイトルメントファイルがある場合は、それらとそれらの兆候をすべて削除します。プロジェクトに.entitlementsファイルが表示されている場合は、それを削除します(不明な場合は、少なくともファイルへの参照を削除します)それを完全に削除する準備ができています)、その後、ビルド設定の「コード署名」セクションの下にある「コード署名資格」行が空であることを確認してください

3.アプリケーションサービスをオンラインで確認し、アプリのXCodeのサービスと一致させます-Apple Member Centerに移動してアプリのアプリIDを確認し、アプリをクリックして「アプリケーションサービス」を確認し、何をするかを確認しますチェックしてから、XCodeに移動し、[機能]セクションをチェックして、両方にAppleサービスの同じリストがあることを確認します

4.検証する前に、有効なプロビジョニングプロファイルをアプリに割り当ててください。AppleMember Centerでアプリのプロビジョニングプロファイルを再確認し、有効期限が切れていないこと、正しいバンドルIDと配布の正しいアプリIDがあることを確認してください。 。新しいプロビジョニングプロファイルをダウンロードしてクリックし、XCodeにそれがあることを確認するか、XCode> [設定]> [アカウント]に移動し、アカウントをクリックして[詳細を表示]をクリックし、下隅のボタンをクリックしてすべてのプロファイルをXCodeに同期します。「コード署名」セクションでプロファイルを選択できるようになっているはずです。正しいプロビジョニングプロファイルを取得したら、「コード署名ID」行をそのプロビジョニングプロファイルの正しいオプションに設定できます。

注-配布証明書を作成する場合は、すべての「コード署名ID」行を、デバッグ行を含む配布に使用するIDに設定するのに役立ちます

5.他のすべてが失敗した場合-プロジェクトをクリーンアップしてXCodeを再起動します。次にプロジェクトを開いて検証しようとすると、一部のApple Magicが正常に機能する場合があります


2

古い3.1.5プロジェクトをビルドしている場合、Xcode 5にはいくつかのバグがあり、そこから選択できるプロビジョニングプロファイルがないため、残念ながらBenjaminの答えは不可能です。Xcodeプロジェクトファイルを何時間も苦労して読んだ後、私はこのソリューションを思い付きました。

  • Xcode 5のユーティリティペイン(右側)で、プロジェクトドキュメントの下にあるXcode 3.1互換からXcode 3.2互換に変更します。
  • 組織名を入力してください。
  • プロジェクトを閉じます。
  • プロジェクトファイルを開きます。 open -a TextEdit path/to/name.xcodeproj/project.pbxproj
    • 2つのDistribution句を削除しisa=XCBuildConfigurationます()。
    • buildConfigurationの2つの付随する行を削除します(1つはPBXNativeTarget、もう1つはPBXProject XCConfigurationLists)。

これで、再び開いてアーカイブし、App Storeに送信する準備が整いました。再び動作します!

どのように機能するか

私はこれがうまくいくと思います。なぜならAppleはどこか別のディストリビューション設定の必要をなくすことを決めたからです。これは良いことです。アーカイブすると、Xcodeは配布用に自動的に符号をコーディングします。それはそもそもそれが実装されるべきだった方法であり、それはAppleがIDEの自動移行の一部を作ることができないのは残念なことです。代わりに、開発者に何十年も費やしてこの機能を動作させるように強制します。


2

私はこの問題に1日以上も取り組んでおり、ここやインターネットの他の場所で提案されているあらゆる種類の解決策を試しています。何もうまくいきませんでした...

しかし、ようやく問題を解決することができました!

私が抱えていた問題は、3年以上触れていない古いアプリにありました。そして今、待望のアップデートをリリースしようとしていました。私がアプリをリリースして以来、Appleは証明書とアプリIDの仕組みを更新してきました。彼らは、使用が推奨されているように思われるチームIDの概念を導入しました。特に、Appleの「Certificates、Identifiers&Profiles」サイトでは、それ以来多くの変更が加えられています。

そこで、App Store配布に使用していたプロビジョニングプロファイルがアプリIDに接続されているED8xxxxxxx.com.rostsolutions.*ことに気付きましたが、送信しようとしているゲームのアプリIDを見ると、アプリIDがわかりましたATMxxxxxxx.com.rostsolutions.Swisch。したがって、アプリIDのプレフィックスが一致しませんでした。それが問題の根本のようでした。そこで、ATMxxxxxxx.com.rostsolutions.Swisch代わりに、アプリID に接続された新しいプロビジョニングプロファイルを作成しました。そのプロビジョニングプロファイルを使用して、アプリをApp Storeに正常に送信しました。今では、他のすべてのものがApple側で正常に機能することを確認しました。

ATMxxxxxxx.com.rostsolutions.*代わりに、新しいプロビジョニングプロファイルをワイルドカードID に接続しようとしましたが、うまくいきませんでした)。

しかし、私を困惑させるのは、iTunes Connectsで古いアプリを見て、バイナリの詳細に移動すると、アプリIDがであるということですED8xxxxxxx.com.rostsolutions.Swisch。それでは、なぜ「証明書、識別子、プロファイル」ページにアプリIDがリストされているのATMxxxxxxx.com.rostsolutions.Swischですか?


このダニエルを投稿してくれてありがとう。目的の証明書とプロファイルが使用されないようにする同様の動作が見られます。証明書をダウンロードするか、Xcodeにそれを許可するたびに、私のケースではiCloud機能(使用法)を「壊す」「ファントム」チームIDが表示されます。まだ解決策はありません。
David

ああ、神様!これと同じがらくたが50以上のアプリで発生しています。ファントムチームは私たちを殺しています。なぜアップルなのか!????
スキマ14年

2

私の問題は、「設定」->「アカウント」から私のApple IDを削除してから、もう一度追加することで解決しました。次に、すべてのプロビジョニングプロファイルファイルが[詳細の表示]ユーティリティパネルに表示されました。プロジェクトの実際のディストリビューションプロビジョニングプロファイルではなく、「Mac Team Provisioning Profile:*」を誤って選択していたため、一般的な選択であると考えていました。プロビジョニングファイルはプロジェクトに固有である必要があります。ああ、ところで、プロビジョニングプロファイルに正しい資格(たとえば、マップ)があることを確認してください。資格なしでOSX Mapsを備えたアプリをなんとかリリースし、Appleはそれを承認しました-しかし、Mapsは製品版には表示されませんでした!


1

私の場合、同じ問題がありました。私の解決策は、アーカイブを実行する前に、ビルド設定で「リリースプロビジョニングプロファイル」を変更することでした。私はこれを2回行います。1回はApp Store配布用で、もう1回はアドホック配布用です。また、アーカイブにコメントを追加します。私の結論は、「アーカイブの再署名」について何かが壊れているということです。


1

この Webサイトには、その問題を解決するための非常に優れたチュートリアルがあります。

この問題は、プロジェクトバンドルIDがiTunes Connect Webサイトで入力したIDと異なる場合に発生する可能性があると述べています


1

xcode 5では、自分で作成した「配布」ではなく「リリース」を使用していると思います。


1

上記のすべてが機能しなかった場合(私の場合、2、3日経ってもすべてを試してもうまくいかない)、Macアプリケーションは1つしかありません取り消しに注意してください。

1)すべての「Mac App Distribution」と「Mac Installer Distribution」を手動で取り消す
2)キーチェーン内の関連する証明書とオープンキーを消去する(警告:削除する前にエクスポートする)
3)Xcodeを再起動する4)(Safariで)developer.appleに移動する.com->証明書など 5)キーチェーンでCertificateSigningRequest.certSigningRequestを作成->証明書アシスタント
6)* .certSigningRequestを使用して、「Mac App Distribution」と「Mac Installer Distribution」の両方をdeveloper.apple.comで手動で作成
7)プロビジョニングプロファイル->配布-> AppStoreのカスタムプロビジョニングの作成/修正(私は "AppStoreのMacプロビジョニングプロファイル"
8 と特別に名付けています)Xcode->設定->アカウント->アカウント->更新9)Xcode Clean-> Archive-> Validate


1

私は同様の問題で苦労してきました(アドホック配布用に構築していました)。最後の正常な展開以降に変更されたのは、プロビジョニングプロファイルに2つのデバイスを追加することだけです。

すべてのビルド設定をダブルおよびトリプルチェックした後、プロビジョニングプロファイルを(何も変更せずに)再生成し、再ダウンロードして正常に動作しました。

ですから、論理的な説明がない場合は、いつでも古き良きITブードゥーを試すことができます。

また、私はお勧めiPhone構成ユーティリティ、その名前にもかかわらず、あなたがコンピュータ上で持っているプロビジョニングプロファイル何をチェックするのに便利です。


1

エラーITMS-9000:「このバンドルは無効です。App Storeに送信される新しいアプリとアプリの更新は、XCode 5.1.1以降のパブリック(GM)バージョンとiOS 7 SDKで構築する必要があります。ベータ版ソフトウェアで構築されたアプリを送信しないでください。


0

複数の開発者が同じメンバーセンターアカウントを使用している場合。そのうちの1つは、他のユーザーが作成した証明書を使用できません。これは、自分のコンピューターを使用して作成された証明書要求を使用したためです。

自分で作成した証明書(コンピューターを使用して作成した証明書要求)を使用する必要があります。

別の方法として、開発者プロファイルを送信するように伝えました。名前がわからない 別のコンピューターで作成された証明書を使用する。


0

コード署名エンタイトルメントは、リソースにリソースにエンタイトルメントファイルが含まれていないために発生します。ビルド設定に移動し、コード署名エンタイトルメントを削除してデバッグとリリースのエントリを削除し、プロジェクトを再度ビルドすると、エラーは表示されません。乾杯


-1

私も同じ問題を抱えていましたが、ここに書かれたことは何もうまくいきませんでした。しかし、私は自分に役立つ簡単な方法を見つけました。方法は次のとおりです。

1)プロジェクトとターゲットのビルド設定で、すべてのプロビジョニングプロファイルに対して[なし]を選択し、すべてのコード署名IDに対して[コード署名しない]を選択します。

2)次に、ターゲットを選択し、ビルド設定に進みます。コード署名IDリリース設定で、[すべてのiOS SDK]に[iOSディストリビューション]を選択します。次に、Provisioning Profile Release設定で、「Any iOS SDK」の配布プロファイルを選択します。その後、コード署名IDリリースの設定が自動的に「iPhone配布」に変更されます。

3)ビルドをアーカイブして検証します。これで問題なく動作するはずです。それでおしまい!

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