web-dev-qa-db-ja.com

実行可能ファイルは無効な資格で署名されました

IPhoneでのアドホック配信に問題があります。 SDK 3.0でアプリケーションを開発しました。開発者のライセンスを持っています。プロジェクトに証明書とプロビジョニングプロファイルを追加しました。だから、それで問題ありません。

しかし、iPhoneにアプリをインストールしようとすると、プロジェクトがコンパイルされ、エラーが表示されます:"The executable was signed with invalid entitlements" [オーガナイザー]ウィンドウで。何か不足していますか? iPhoneを2.2.1からアップグレードし、Appleから最新のSDKをダウンロードしました。

この問題で私を助けてください。

71
pJosh

「ポータルプログラム」にはかなり良い指示があります。ログインした場合

http://developer.Apple.com/iphone

次に、左側の[配布]をクリックし、

アドホック配布用の配布プロビジョニングプロファイルの作成とダウンロード

下部のリンク。

重要な点は次のとおりです。

アドホック配布の場合、次を完了します。

  • [ファイル]メニューで、[新規ファイル]-> [iPhone OS]-> [コード署名]-> [資格]を選択します。ファイルに「Entitlements.plist」という名前を付け、「完了」をクリックします。これにより、プロジェクト内にデフォルトの資格ファイルのコピーが作成されます。
  • 新しいEntitlments.plistファイルを選択し、「get-task-allow」プロパティのチェックを外します。 Entitlements.plistファイルを保存します。 (Xcode 4では、get-task-allowは「デバッグ可能」と呼ばれます)
  • ターゲットを選択し、ビルド設定インスペクターを開きます。 「Code Signing Entitlements」ビルド設定で、拡張子を含む新しいEntitlements.plistファイルのファイル名を入力します。 Entitlements.plistファイルをプロジェクトの最上位以外の場所に配置しない限り、パスを指定する必要はありません。
  • [ビルド]をクリックします。 (注:バイナリには、57x57ピクセルの平らな正方形のアイコンが含まれている必要があります。このアイコンは、iPhoneまたはiPod touchのホーム画面に表示されます。)
53
John

このエラーは、デバイスがプロビジョニングプロファイルに含まれていないアプリをプロファイリングしようとしている場合にも発生する可能性があります。

使用するdevプロビジョニングプロファイルにデバイスが含まれていることを確認してください。どういうわけか、エラーメッセージは誤解を招くです。私の資格は実際には大丈夫でした。

34
TTT

開発ビルドでは「get-task-allow」をチェックする必要がありますが、ディストリビューションビルドではチェックを外す必要があることがわかりました。これを実現する最も簡単な方法(知る限り)は、プロジェクトにtwo資格ファイルを用意することです:Entitlements.plistおよびEntitlementsDebug.plist-さまざまな構成のビルドプロジェクト設定で適切なものを参照しますあなたのプロジェクト。

14
gumbypp

Xcode 4のアドホックビルドにはコード署名の資格は不要になりました。詳細なメモを参照してください Apple Technical Note TN225

6
snibbe

これは、アプリケーションを実行しているデバイスがプロビジョニングプロファイルで選択されていないためです。

証明書、識別子、プロファイルiOS Provisioning Profiles編集をクリックして、デバイスを選択します

enter image description here

4
Rajneesh071

一度このような状況に陥った場合、デバッグ(!)ビルドを電話機にデプロイするには、「get-task-allow」のチェックが必要なようです。これをチェックしてください。

a)ビルド設定を確認します。デバッグ用の「コード署名資格」にエントリがないはずですb)Entitlements.plistを一時的に削除し、デバッグバージョンをビルドします。 Entitlements.plistが欠落していると不平を言う場合は、おそらく同じ状況になっているでしょう。今日は戦わなければなりませんでした。 c)Entitlements.plistで再度ビルドし、「get-task-allow」を有効にします。現在動作している場合、おそらく同じ問題があります。

新しいプロファイルをいじくり回した後、デバッグビルドを電話に展開できませんでした。 AdHocは大丈夫でした。私はチェックa)-空..うーん。私はb)をチェックしました-文句を言います。 c)-働いた...

結局、私はエディターでproject.pbjprojを調べました-GUIは主張していましたが、実際には「コード署名資格」のエントリはないことを「デバッグ」セクションにありました。私はそれを空にして完了しました。

4
neil

私はちょうどこれとエキサイティングな3時間の戦いをしました。プロジェクトを4.2にアップグレードしましたが、何らかの理由で機能しません。

最終的にEntitlements.plistファイルを削除してから、新しいファイルを作成しました。

ファイル>新規ファイル>コード署名>資格

ファイルにEntitlements.plistという名前を付けます

XCodeのResourcesグループにあることを確認してください。

Entitlements.plistファイルのget-task-allow BOOLタイプには入れませんでした。追加、チェック、保存、チェック解除、保存しました。これで気分が良くなりました。

その後、作成したAdhocプロファイルとReleaseプロファイルを削除しました。プロビジョニングポータルからそれらを再ダウンロードし、xCodeオーガナイザーに戻しました。

次に、ビルド設定に進み、正しいプロファイルがデバッグプロファイルとリリースプロファイルに割り当てられていることを確認しました。

次に、リリース/デバイスに変更しました。ビルドボタンを押すと、うまくいきました。

理由はわかりません。

2
Gerald

Xcode 5.1で、[設定]-> [アカウント]-> [詳細の表示]に移動した場合.

署名IDステータスが有効であることを確認します。 [Revoked]と表示されている場合は、[プラス]ボタンを押して、適切な署名ID(iOS開発またはiOS配布)を追加します。 Xcodeはそれを新しい有効なものに置き換えます。

1
TalkLittle

それを解決した私にとって: https://coderwall.com/p/-ckobg

  1. Project.xcodeproj> project.pbxprojを開きます
  2. 次のようなすべての行を削除します。
    1. PROVISIONING_PROFILE = ...
    2. "PROVISIONING_PROFILE[sdk=iphoneos*]" = ...
    3. CODE_SIGN_IDENTITY = ...
    4. "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ...
  3. ターゲットのプロビジョニングプロファイルとコード署名を再度設定します
1
Robert

ジョンの答えは99%正しいです。 (少なくとも私の構成では)[〜#〜] project [〜#〜]のビルド設定インスペクターを開く必要があることがわかりました。ターゲットのビルド設定には「コード署名資格」が含まれていません。プロジェクト内にターゲットが1つしかない場合、おそらくこれで違いは生じません。ただし、複数のターゲットがある場合は、プロジェクトのビルド設定に移動する必要があります。いずれにせよ、ジョンが言ったことをした後、私のアドホック配布ビルドは完全に機能しました。

1
iisystems

これと同じエラーコードを取得しました。これを引き起こすさまざまなものがあるため、それを修正するさまざまな方法があるようです。

私の場合、同じ名前の2つの異なるデバイス(iPhone 4とiPhone 4S)がありました。それらのいずれかの名前を変更すると、このエラーが完全に修正されました...

0
Andy Ibanez

私が管理しているチームの開発者にこれが起こったのです。

開発者の証明書の有効期限が切れており、更新後、私は彼のアプリが使用したプロビジョニングプロファイルに彼の証明書を追加することを怠っていました。 enter image description here

0
sean808080

既存のアプリにiCloudサポートを追加しようとしていましたが、エンタイトルメントを追加してiCloudを設定した後、アプリがデバッグされなくなることがわかりました。

私の一般的なiOS開発証明書には、作業中のアプリとは異なるAPPIDがあることがわかりました。それを修正するために、汎用証明書を使用する代わりに、そのAPPIDに特定の開発証明書を作成しました。

XCodeでプロビジョニングプロファイルを更新し、アプリをクリーンアップし、デバイスを切断し、XCOdeと接続されたデバイスを再起動して実行しました。

0
theDuncs

pJosh、これは理解に役立つかもしれません。私の場合、アプリのデバイステストプロファイルと同様に、チームプロビジョニングプロファイルが期限切れになりました(プロビジョニングポータルはXCodeによって管理されていることを示しました)。 (まだ理由はわかりませんが、ポータルのチームプロファイルの横に[更新]ボタンがありましたが、クリックしても何もしませんでした。)

そのため、有効期限が切れそうなプロファイルを削除してから、XCodeでオーガナイザーに移動し(Command-Shift-2)、ライブラリ/プロビジョニングプロファイルの下で、有効期限が切れたプロファイルを削除しました。次に、下部の[更新]をクリックし、my Apple IDを入力すると、期限切れのものが更新されます。

最後に、ターゲットで、ビルド設定、コード署名に行き、プロビジョニングプロファイルを選択するようにしました。これで、私のデバイスにビルドされます。

0
Jay Imerman

Appleからの新しい更新ライセンス契約に同意していませんでした。

簡単に言うと、開発者のアカウントにログインして->プロフィール->確認->同意書を読むか、弁護士に読んでもらう->同意する(自分の意志で)->もう一度プロフィールをクリックしてプロフィールのステータスを確認してください。

私のシナリオでは、有効なコード署名エンティティが表示されませんでした。上記の手順に従ったとき、それは表示され、デバイスでアプリを実行したり、iPAファイルを作成したりすることができました。

0
iCodeAtApple

すべてが正しくセットアップされているように見える場合、ビルド設定が正しいプロビジョニングプロファイルを指している場合、コード署名が適切にセットアップされている場合などに、この問題が発生していました。

問題が発生したのは、新しい構成に対して新しいスキームを作成し、CocoaPodsを再生成していないだけだったためです。画像からわかるように、新しいアドホック構成はPods.production構成ではなくPods.ad-hoc構成を指している(それぞれテストする)

Demonstrating a mis-match of ad-hoc configuration and scheme configuration

修正するには:

  • 問題の設定をNoneに設定します-これを行わない限り、cocoapodsは設定を生成しません
  • XCodeを閉じる
  • pod installを実行します
  • XCodeを再度開き、新しいスキームの構成を新しく生成された構成に設定します。

それでおしまい!

0
Gavin Miller

私もこれと戦うのに数時間費やしました。修正は本当に簡単です。プロジェクトのディレクトリのルートにあるEntitlements.plistファイルを編集します。 <key>get-task-allow</key>という行を見つけます。その下に<false/>があるはずです。それを<true/>に変更します。

0
Brian Knoblauch

これは非常に遅いので申し訳ありませんが、私はちょうどこの質問を見ていて、私のために働く何かを見つけました。私はプロジェクト->ビルド設定に行き、コード署名セクションを見つけました。デバッグのほかに、Iphone Distribution: MY NAMEと言った私の配布プロファイルが選択されました。代わりに、デバイスのプロビジョニングプロファイルであるIphone Developer: MY NAMEの下のドロップダウンリストでIpodProfile (for bundle identifiers com.myName.myAppを選択しました。お役に立てれば!

0
Samuel Noyes