web-dev-qa-db-ja.com

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

作成したiOSアプリをiPhoneでテストしたい。ビルドは成功しましたが、xamarin studioがusb経由でファイルをiPhoneに転送しようとすると、次のエラーが発生しました。

VerifyingApplication: 70%
  PercentComplete: 40
  Status: VerifyingApplication
 ApplicationVerificationFailed: Failed to verify code signature of /private/var/installd/Library/Caches/com.Apple.mobile.installd.staging/temp.yNZx88/extracted/<APPName>.app : 0xe8008016 (The executable was signed with invalid entitlements.)
error MT1006: Could not install the application '/Users/<NAME>/Projects/<APPName>/<APPName>/bin/iPhone/Debug/device-builds/iphone8.2-10.2.1/<APPNamr>.app' on the device '<DEVICEName>': Your code signing/provisioning profiles are not correctly configured. Probably you have an entitlement not supported by your current provisioning profile, or your device is not part of the current provisioning profile. Please check the iOS Device Log for details (error: 0xe8008016).
--- inner exception
Xamarin.Installation.FailedInstallException: Your code signing/provisioning profiles are not correctly configured. Probably you have an entitlement not supported by your current provisioning profile, or your device is not part of the current provisioning profile. Please check the iOS Device Log for details (error: 0xe8008016)

[...]

Application could not be uploaded to the device.

私はxamarinを初めて使用し、何をすべきかわかりません。 Apple開発者アカウントが利用可能であり、証明書とプロビジョニングプロファイルが作成されます。電話がデバイスリストに追加され、識別子が作成されます。

誰か助けてもらえますか?

7
eiskaltereistee

更新:

まず、XcodeとVisual Studio forMacの両方が最新バージョンに更新されていることを確認します。 Xcodeを更新する場合は、それを開きます。サインインします。「追加の必要なコンポーネントをインストールしますか?」というメッセージが表示されたら、「インストール」を選択します。次に、更新されたVSを再度開きます。

MacおよびXcode用の新しいVisualStudioでは、(VSから)電話を起動したときに表示される[デバイスへの展開]タブに必要なすべての情報が含まれている場合があります。アプリのiPhoneバージョン。そのタブの一番下までスクロールし、次のようなメッセージを探します。

ApplicationVerificationFailed:...のコード署名の検証に失敗しました(実行可能ファイルは無効な資格で署名されました。)

...コード署名/プロビジョニングプロファイルが正しく構成されていません。おそらく、現在のプロビジョニングプロファイルでサポートされていない資格があるか、デバイスが現在のプロビジョニングプロファイルの一部ではありません。詳細については、iOSデバイスログを確認してください(エラー:0xe8008016)。

状況によっては、以下の手順では、上記よりも役立つ詳細が提供されない場合があります。たとえば、(iOSデバイスログでも)表示されませんwhich資格が失敗しています。アプリがinfo.plistでチェックインした資格を、使用していた証明書と比較して、上記を修正する必要がありました。疑わしい場合は、ncheckinginfo.plistのすべての資格を試してください。再度デプロイします。 (明らかに、資格を必要とする機能は機能しませんが、少なくとも、そのエラーメッセージなしで展開できることを確認できます。)


元の回答:

(質問へのコメントに関して)必要なのはXcodeのログではありません-それらはcrashログです。ここで必要なのはXamarin/View/Pads/"Device Log"です。 アプリのインストール中、メッセージはスクロールします

デバイスログパッドを開きますインストールを開始します-それはあなたの電話からのメッセージの動的な表示です。パッドの左上にあるドロップダウンリストから電話を選択します。 (いつでも、パッドの右上にある消しゴムアイコンをクリックして、古いメッセージをクリアします。)

多くのメッセージがスクロールしている場合は、i-inside-blue-circleアイコン(ツールチップの[メッセージの表示])をクリック(選択を解除)して、情報メッセージを非表示にします。赤丸のxアイコン(ツールチップ「エラーの表示」)が選択されていることを確認します。

インストールが失敗したら、テキストエディタに「すべて選択/コピー/貼り付け」します。インストールの失敗を検索します。直前に、より多くの情報を提供するいくつかの行があるはずです。具体的には、次の2つの可能性のどちらが問題であるかを明らかにします。1)entitlementsまたは2)deviceに関する何か。

entitlementsに賭けます。問題の原因となっている資格を特定する必要があります。 プッシュ通知を使用していますか? iCloud?それらはおそらく犯人です。または、privacy関連の資格の1つ-最新のiOSバージョンの現在の指示に従っていることを確認してください。新しいプライバシー設定がiOS10、12、13(IIRC)に追加されました。

Entitlements.plistのソースコードを見てください。そのコピーをプロジェクトから離れた場所に保存します。空白(空)Entitlements.plistから始めます。 [プロジェクトフォルダにその名前の空のテキストファイルがない場合は、追加します。]その後、電話に展開できますか?

もちろん、これが空白の場合、必要な資格をseすることはできませんが、アプリの最初の画面、または少なくともいくつかのAppleユーザーに必要な資格を許可するかどうかを尋ねるダイアログ。

次に、デプロイできなくなるまでEntitlements.plistに追加します。次に、その特定の問題に対するグーグル-うまくいけば、そこに解決策があります。


もう1つの可能性は、プロビジョニングプロファイルに要求している資格がないことです。 AppleデベロッパWebサイトに戻り、証明書とプロビジョニングプロファイルが一覧表示されます。州を選択します。使用しているプロファイル。 [有効なサービス]で、使用しているサービスが一覧表示されていることを確認します。
(一部のApple機能は特定の資格を必要としません。疑わしい場合は、新しいプロビジョニングプロファイルを作成し、使用している機能について、資格のすべてのオプションを注意深く確認してください。)

13
ToolmakerSteve

「Entitlements.plist」を追加して設定する前にプロビジョニングが機能していた場合(たとえば、Icloudの場合):

構成から「Entitlements.plist」を削除する必要があります。

プロジェクトオプション> IOSバンドル署名>カスタムエンタイトルメント(空白のままにします)。

11
Delor_Tshimanga

私のためのこの修正:

  1. IOS Projectを右クリックし、Optionsをクリックします
  2. [カスタムエンタイトルメント:Info.plist]の下に表示されている場合は、Entitlements.plistに変更します。
  3. プロジェクトを再度コンパイルしてテストします
2
Adnan