web-dev-qa-db-ja.com

資格が無効です

最近、iPhone SDKOSをバージョン2.2.1から3.0バージョンにアップグレードしました。その後、アプリケーションのビルド中に、プロビジョニングプロファイルの有効期限が切れているというエラーが表示されます。そこで、新しいプロビジョニングプロファイルを作成しました。

次に、プロビジョニングプロファイルを使用してアプリケーションを配布しました。しかし、アプリケーションをiPhoneデバイスに同期しているときにiTunesでエラーが発生します。エラーメッセージは、「資格が無効なため、アプリケーション「iGVA」はiPhoneにインストールされませんでした。」です。

エンタイトルメントに署名するコードに正しいエンタイトルメントplistファイルが含まれていることを確認しました。

これはどのように解決できますか?

17
Sathiya

上記のマイケルの答えは的を射ています(または彼が指しているリンクはです)。これが機能するために私が取らなければならなかったステップです:

  • デバイスのUDIDがチェックされるアドホック証明書を用意します。その証明書をXCodeアイコンにドラッグしてインストールします。
  • プロジェクトで、配布構成を作成し、ビルドパラメーターを適切なデバイスに設定します|分布。現在、デバイス3.0用にビルドしています|分布。
  • 私のプロジェクトにはEntitlements.plistファイルが含まれていませんでした-メニューから[ファイル] | [ファイル]を選択して追加する必要がありました。ファイルの追加| iPhone OS |エンタイトルメント、および新しいファイルEntitlements.plistを呼び出します
  • 新しいplistファイルには1つの行しかありません-その行の値をオフに設定します。
  • プロジェクトビルド構成の[コード署名資格]の行に、値としてEntitlements.plistファイル名を入力します。
  • コード署名IDで、アドホック証明書IDを選択します(ただし、配布証明書IDも使用できることがわかりました)。
  • NOW BUILD :)
  • 結果のアプリファイルとアドホック証明書を、UDIDを提供した人に配信します。動作するはずです:)。
30
mmattke

私もこれに少し触れて、アドホックアプリと資格で答えを見つけました。

Entitlements.plistファイルへのパスがプロジェクト設定の[コード署名資格]に入力されていることを確認する必要がある場合があります。

テスターがアドホックビルドをインストールするには、Entitlements.plistファイルが必要です。デフォルトのiOSテンプレートには含まれていません。 XCode 3.2.4では、次のように作成します。

  1. メニューから「ファイル>新しいファイル…」を選択します。
  2. IOSテンプレートの下に、コード署名セクションがあります。 Entitlementsという名前の証明書アイコンを選択します。ファイルに「Entitlements.plist」という名前を付けます
  3. ソースツリーでEntitlements.plistを選択します。
  4. [表示]> [プロパティリストタイプ]> [iPhoneエンタイトルメントリスト]を選択します
  5. プロパティリストに新しいキーを追加します(一番上の行を選択し、Returnキーを押します)
  6. アイテムには、おそらく「デバッグ可能」という名前が付けられます。そうでない場合は、利用可能なオプションからそれを選択してください。これは「get-task-allow」と同等です。

まだ持っていない場合は、「アドホック」ビルドプロファイルを作成します。

  1. ソースツリーでターゲットを選択します。
  2. メニューから[ファイル]> [情報を見る]を選択します
  3. インスペクターで。 「ビルド」タブを選択します。
  4. 「構成」の下で、「構成の編集…」を選択します。
  5. 「リリース」構成を選択し、画面の下部にある「複製」をクリックします。
  6. 新しい構成の名前を「Ad-HocDistribution」に変更します

Entitlements.plistを作成したので、それをビルド設定に追加する必要があります。

  1. ソースツリーでターゲットを選択します。
  2. メニューから[ファイル]> [情報を見る]を選択します
  3. インスペクターで。 「ビルド」タブを選択します。
  4. 構成セレクターが「アドホック配布」に設定されていることを確認します
  5. 「コード署名」グループで、「コード署名資格」の値を「Entitlements.plist」に変更します。XCodeによって相対パスが設定されている可能性があります。もしそうなら、それを変更します。

注-他のビルド構成に「コード署名資格」を設定してビルドおよび実行すると、自分のデバイスにアプリをインストールするときにエラーが発生します。

最後に、Entitlements.plistがターゲットに追加されていることを確認します。

  1. ソースツリーでEntitlements.plistを選択します。
  2. メニューから[ファイル]> [情報を見る]を選択します。
  3. 「ターゲット」タブを選択します。
  4. ターゲットの横にあるチェックボックスがオンになっていることを確認してください。

これで、このエラーなしでアドホックビルドを配布できるようになります。

これのほとんどはAppleの アプリケーションエンタイトルメントガイドの管理 から収集され、残りは試行錯誤によって収集されました。

7
mrwalker

私はこれに夢中になっていた。最後に、私はそれを手に入れたと思います。プロジェクト設定では、正しいアドホック構成で資格とコード署名を適切に設定していました。ただし、すべて問題ないように見えましたが、[プロジェクト]-> [アクティブターゲットの編集]をオンにすると、コード署名エンティティが「iPhoneDeveloper」でスタックしました。

それを正しい「iPhoneディストリビューション」に切り替えて再コンパイルした後、Xcodeは私に初めてコード署名を許可するように頼みました。そしてそれはすべてコンパイルされ、今私の電話に転送されます!

それがお役に立てば幸いです。私はこの問題がApple側のバグまたは欠陥であると真剣に信じています。文書化されていないIDEのおかげで、簡単なことで数時間を失いました...

2
mentat

記録のために、これらのすばらしい答えはすべて私を助けなかったので、私は自分の資格の不具合を共有したいと思いました。

そうです、UDIDを追加し、プロビジョニングを取得し、電話で確認し、ビルド設定などで確認しました。

私の不具合(ありがとう http://www.musicalgeometry.com/?p=1237 )は、アドホックスキームがアドホックconfiguration実行設定のみ

アーカイブ設定の場合、古いリリース構成をまだ指していました。

(これらの設定は、スキーム編集ウィンドウの左側のタブです。)

Run app settings

Archive settings

私が誰かを救うなら、私の欲求不満-私は少しやりました。

2
Oded Ben Dov

Xcode 4のアドホックビルドでは、コード署名の資格は不要になりました AppleテクニカルノートTN225 の詳細ノートを参照してください。

2
snibbe

これは私にも起こりました、そして他の答えは私のためにそれを解決しませんでした。

構築、インストール、クリーニング、クリックを無駄にした半日を費やした後、コード署名資格の下のボックスからEntitlements.plistを最終的に消去し、保存して、もう一度入力しました-出来上がり!それは再び働いた!実際のエンタイトルメントファイルには触れたことがなく、設定だけに触れました。

1
Hank The Tank

これはXCode4にありました。エンタイトルメントファイルをクリーンアップ、削除、再作成しようとしましたが、それでも喜びはありませんでした。次に、「デバッグ可能」の値を「はい」から「いいえ」に変更しましたが、機能しました。とにかく今はうまくいくようですが、これがお役に立てば幸いです!

1
Steve

この問題は、Entitlementsplist自体とは何の関係もない可能性があります。テストに使用するiPodTouchが2つあります。アプリをアプリと同期しようとすると、1つは完全に機能しましたが、もう1つは、「資格が無効です」というエラーが発生しました。結局のところ、一方のデバイス(動作したデバイス)にはモバイルプロビジョニングファイルがありましたが、もう一方のデバイスにはありませんでした。これは私の側の明らかな見落としでした。しかし、私を驚かせたのは、最初のデバイスにもプロビジョニングファイルを明示的に追加したことがないということでした。それがどのようにそのデバイスに接続されたかはわかりません(私はまだ新しいです-笑)-以前は、デバイスを接続した状態でオーガナイザーにドラッグしただけでしたが、今回はそうしませんでした。

そのため、プロビジョニングプロファイルとxcodeはすべて、正しいIDなどで完全に設定されましたが、アプリはまだ同期できませんでした。明らかに、デバイスが適切にプロビジョニングされていない場合、エラーが発生します。この場合、エラーがより役立つとしたら、それは素晴らしいことです。

1
DavidM

「デバイス」用にビルドしている「ビルドとアーカイブ」を行うときは、構成が「デバッグ」ではないことを確認してください。アーカイブは正しく作成されているように見えますが、「ビルドとアーカイブ」を実行するときにデバッグプロファイルに設定されている場合、.ipaデバイスのインストール時に失敗します。

1
cipherz

また、有効期限が切れていないプロビジョニングプロファイルがあることを確認する必要があります。これにより、しばらくの間、このプロファイルに失敗しました(アドホックプロビジョニングプロファイルは1年後に期限切れになるようです)。エラーメッセージは同じですが、有効なEntitlements.plistファイルがないこととは関係ありません。

1
mblackwell8

Xcode 4を使用して、これと同じ問題が発生しました。これは、オーガナイザー(のアーカイブセクション)の[共有...]ダイアログでIDを誤って選択したことが原因であることが判明しました。 (私にとって)正しい選択は、「再署名しないでください」です。

1
Rob van Maris

ドキュメントから:

アドホック配布用のアプリの作成は、2つの追加手順を除いて、AppStore配布用のアプリの作成と似ています。まず、アドホック配布プロビジョニングプロファイルを作成し、iPhone Developer Program ProvisioningPortalを使用して配布するiOSデバイスのUDIDを追加する必要があります。次に、コード署名エンタイトルメントファイルを作成する必要があります。エンタイトルメントファイルを作成する方法については、iOS開発ガイドの「アプリケーションエンタイトルメントの管理」セクションをお読みください。


アプリケーション資格の管理

iOSは、資格と呼ばれるプロパティを介して、アプリケーションをデバッグできるかどうかなど、特別なリソースと機能へのアクセスを提供します。アプリケーションでエンタイトルメント情報を指定するには、エンタイトルメント定義(キーと値のペア)を含むエンタイトルメントプロパティリストファイルをプロジェクトに追加します。アプリケーションをビルドすると、Xcodeはファイルを生成されたアプリケーションバンドルにコピーします。

エンタイトルメントプロパティリストファイルをプロジェクトに追加するには:

[グループとファイル]リストで、[リソース]グループを選択します。 [ファイル]> [新しいファイル]を選択します。 iOS>コード署名>資格テンプレートを選択します。ファイルにEntitlements.plistという名前を付けます。 (任意の名前を使用できます。このセクションで後述するように、コード署名エンタイトルメントビルド設定の値と一致することを確認してください。)プロパティリストファイルのタイプをiPhoneエンタイトルメントに設定します。テキストエディタでファイルを選択した状態で、[表示]> [プロパティリストタイプ]> [iPhoneエンタイトルメント] plistを選択します。

資格エントリをファイルに追加します。エンタイトルメントプロパティごとに、以下を定義する必要があります。

選択した行の右側にある[子の追加]または[兄弟の追加]ボタンをクリックします。 [子の追加]ボタンには階層を表す3本の線があり、[兄弟の追加]ボタンにはプラス(+)記号が付いています。表示されるポップアップメニューからentitlementプロパティを選択します。追加する必要のあるエンタイトルメントがメニューに表示されない場合は、[表示]> [プロパティリストタイプ]> [ファイルタイプのデフォルト]を選択します。次に、資格キーの名前とタイプを入力します。

プロパティの値を入力します。ターゲットのコード署名エンタイトルメントビルド設定を、新しく追加されたエンタイトルメントプロパティリストファイルの名前に設定します。


エンタイトルメントファイルを作成し、それをコード署名エンタイトルメントビルド設定に追加したら、エンタイトルメントファイルを開き、get-task-allowキーを追加または編集して、falseに設定します。

.appバンドルを圧縮してアドホックビルドをテスターなどに配布することに加えて、特定の電子メールクライアントとサーバーがプロビジョニングプロファイルを破損する可能性があるため、配布する前にプロビジョニングプロファイルも圧縮することをお勧めします。

アドホック配布の詳細については、iOS開発ガイドの「テスト用アプリケーションの公開」セクションをお読みください。

0
daidai

[〜#〜]ターゲット[〜#〜];)で署名IDを選択してください

0
rémy

この問題を引き起こす別の状況を見つけました。正しいプロビジョニングプロファイルが含まれていることを確認する必要があります。 iPhoneとiPodの両方のバージョンと、同じプロジェクトからビルドされたiPadバージョンの両方を備えたアプリケーションがあります。 iPad版のアプリケーションでiPadアドホックプロファイルを送信したようですが、機能しません。さらに悪いことに、 Xcode を使用して正しいプロファイルをローカルにインストールしたので、すべてが私のマシンで正しく機能します。

0
Duncan C

私もこの問題を抱えていました。結局のところ、アドホックをサポートするように構成を編集したこと、および配布構成を使用してビルドしていたことを確認してください。だが。ディストリビューション構成のプロパティを編集していませんでしたが、代わりにリリースを編集しました(ディストリビューションを編集していると思いました)。

これはそうではないかもしれません。ただし、確かな場合でも、正しい構成を使用していること、およびこの構成が適切に調整されていることを再確認してください。

0
quano

デバイスリストに新しいデバイスを追加し、新しいデバイスを選択してXcodeにドラッグし、ビルドを準備して新しいプロファイルを作成するたびに、問題が発生しました。

そのビルドをデバイスのインストールに使用すると、エラーが発生します

資格は無効です

思いつく限りの解決を試みましたが、何もポジティブな結果は出ませんでした。とにかく、新しいApp-IDを作成するか、プロファイルを作成するプロセス全体を繰り返す必要があります。次に、ビルドをデバイスにインストールできます。

0
Aks