

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS Device Farm でのプライベートデバイスにおけるアプリケーション再署名のスキップ
<a name="skip-app-re-signing-on-private-devices"></a>

アプリ署名は、デバイスにインストールしたり、Google Play Store や Apple App Store などのアプリストアに公開したりする前に、プライベートキーを使用してアプリパッケージ ([APK](https://developer.android.com/studio/publish/app-signing)、[IPA](https://support.apple.com/guide/security/app-code-signing-process-sec7c917bf14/web) など) にデジタル署名するプロセスです。必要な署名とプロファイルの数を減らしてテストを合理化し、リモートデバイスのデータセキュリティを向上させるために、AWS Device Farm は、アプリケーションがサービスにアップロードされた後にアプリケーションに再署名します。

AWS Device Farm にアプリをアップロードすると、サービスは独自の署名証明書とプロビジョニングプロファイルを使用してアプリの新しい署名を生成します。このプロセスで、元のアプリケーション署名は AWS Device Farm の署名に置き換えられます。再署名されたアプリケーションは、AWS Device Farm が提供するテストデバイスにインストールされます。新しい署名を使用することで、元の開発者の証明書を必要とせずに、これらのデバイスにアプリをインストールして実行できます。

iOS では、埋め込みプロビジョニングプロファイルをワイルドカードプロファイルに置き換え、アプリに再署名します。そうすることで、インストール前に補助データがアプリケーションパッケージに追加され、その補助データはアプリのサンドボックスに格納されます。iOS アプリに再署名すると、すべての使用権限が削除されます。

Android では、アプリに再署名します。これにより、Google Maps Android API など、アプリの署名に依存する機能が破損することがあります。また、DexGuard などの製品から利用できる著作権侵害防止と改ざん防止の検出がトリガーされる場合があります。組み込みテストでは、スクリーンショットのキャプチャと保存に必要なアクセス許可を含めるようにマニフェストを変更することがあります。

プライベートデバイスを使用する場合は、AWS Device Farm がアプリケーションに再署名するステップをスキップできます。これは、Device Farm が Android および iOS プラットフォームのアプリケーションに常に再署名するパブリックデバイスとは異なります。

リモートアクセスセッションまたはテスト実行を作成する場合は、アプリケーションの再署名をスキップできます。これは、Device Farm がアプリケーションに再署名すると中断する機能がアプリケーションにある場合に役立ちます。例えば、プッシュ通知は再署名後に動作しない場合があります。アプリケーションをテストするときに Device Farm が行う変更の詳細については、[[アプリ]](https://docs.aws.amazon.com/devicefarm/latest/developerguide/apps.html) ページで「[AWS Device Farm のよくある質問](https://aws.amazon.com/device-farm/faq/)」を参照してください。

テスト実行でアプリの再署名をスキップするには、**[追加設定]** で **[アプリケーションの再署名をスキップ]** を選択します。この機能は、プライベートデバイスでのみ利用できます。

![テスト実行でプライベートデバイスインスタンスを使用するときに、アプリケーション再署名をスキップを選択する](http://docs.aws.amazon.com/ja_jp/devicefarm/latest/developerguide/images/aws-device-farm-skip-app-re-signing.png)




**注記**  
XCTest フレームワークを使用している場合、**[アプリケーション再署名をスキップ]** オプションは選択できません。詳細については、「[Device Farm と XCTest for iOS の統合](test-types-ios-xctest.md)」を参照してください。

アプリケーション署名設定を構成するための追加手順は、プライベートデバイスが Android か iOS によって異なります。

## Android デバイスでのアプリケーション再署名のスキップ
<a name="signing-apps-on-android-devices"></a>

Android のプライベートデバイスでアプリケーションをテストする場合は、テスト実行またはリモートアクセスセッションを作成するときに、**[アプリケーション再署名をスキップ]** を選択します。必要な構成は他にありません。

## iOS デバイスでのアプリケーション再署名のスキップ
<a name="signing-apps-on-ios-devices"></a>

Apple では、デバイスにロードする前に、アプリケーションにテスト用の署名を行う必要があります。iOS デバイスでは、アプリケーションの署名には 2 つのオプションがあります。
+ 社内 (エンタープライズ) 開発者プロファイルを使用している場合は、次のセクション ([iOS アプリケーションを信頼するためのリモートアクセスセッションの作成](#create-remote-session-trust-your-app)) に進んでください。

  
+ アドホックの iOS アプリケーション開発プロファイルを使用している場合は、まず Apple 開発者アカウントを使用してデバイスを登録してから、プロビジョニングファイルを更新してプライベートデバイスを含めます。次に、更新したプロビジョニングプロファイルでアプリケーションに再署名する必要があります。その後、Device Farm で再署名したアプリケーションを実行できます。

**アドホック iOS アプリケーション開発プロビジョニングプロファイルでデバイスを登録するには**

1. Apple 開発者アカウントにサインインします。

1. コンソールの **[証明書、ID およびプロファイル]** セクションに移動します。

1. **[デバイス]** に移動します。

1. デバイスを Apple 開発者アカウントで登録します。デバイスの名前と UDID を取得するには、Device Farm API の `ListDeviceInstances` オペレーションを使用します。

1. プロビジョニングプロファイルに移動して、**[編集]** を選択します。

1. リストからデバイスを選択します。

1. Xcode で、更新されたプロビジョニングプロファイルを取得し、アプリケーションに再署名します。

必要な構成は他にありません。これで、リモートアクセスセッションまたはテスト実行を作成し、**[アプリケーション再署名をスキップ]** を選択できます。

## iOS アプリケーションを信頼するためのリモートアクセスセッションの作成
<a name="create-remote-session-trust-your-app"></a>

社内 (エンタープライズ) 開発者プロビジョニングプロファイルを使用している場合、1 回限りの手順を実行して、各プライベートデバイスで社内アプリケーション開発者の証明書を信頼する必要があります。

そのためには、テストするアプリと同じ証明書で署名されたプレースホルダーアプリをインストールする必要があります。デバイスが設定プロファイルまたはエンタープライズアプリケーションデベロッパーを信頼すると、そのデベロッパーのすべてのアプリケーションは、削除するまでプライベートデバイスで信頼されます。したがって、テストするアプリの新しいバージョンをインストールするときに、毎回アプリ開発者を信頼する必要はありません。これは、テスト自動化を実行し、アプリケーションのテストのたびにリモートアクセスセッションを作成したくない場合に特に便利です。

多くのお客様が使用する一般的な手順は、[iOS 用の Device Farm サンプルアプリ](https://github.com/aws-samples/aws-device-farm-sample-app-for-ios/blob/master/prebuilt/prebuiltSampleApp.ipa)に再署名し、プレースホルダーアプリとしてデバイスにインストールすることです。

リモートアクセスセッションを開始する前には、「[AWS Device Farm でのインスタンスプロファイルの作成](set-up-private-devices-account-settings.md)」の手順に従って、Device Farm でインスタンスプロファイルを作成または変更します。インスタンスプロファイルで、プレースホルダーアプリケーションのバンドル ID を**クリーンアップからパッケージを除外**設定に追加します。その後、このインスタンスプロファイルをプライベートデバイスインスタンスにアタッチして、新しいテスト実行の開始前に Device Farm がデバイスからこのアプリケーションを削除しないようにします。これにより、開発者の証明書は信頼されたままとなります。

リモートアクセスセッションを使用してプレースホルダーアプリをデバイスにアップロードできます。これにより、アプリを起動し、開発者を信頼できます。

1. 「[セッションの作成](how-to-create-session.md)」の手順に従って、作成したプライベートデバイスインスタンスプロファイルを使用するリモートアクセスセッションを作成します。セッションを作成するときは、必ず **[アプリケーション再署名をスキップ]** を選択します。  
![リモートアクセスセッションを作成するときにアプリケーション再署名をスキップする](http://docs.aws.amazon.com/ja_jp/devicefarm/latest/developerguide/images/aws-device-farm-create-reomte-access-session-skip-app-resigning.png)

   
**重要**  
プライベートデバイスのみを含むようにデバイスのリストをフィルタリングするには、必ず正しいインスタンスプロファイルでプライベートデバイスを使用するように **[プライベートデバイスインスタンスのみ]** を選択します。

   また、テストするプレースホルダーアプリまたはアプリを、このインスタンスにアタッチされているインスタンスプロファイルの**クリーンアップ設定からパッケージを除外**するに追加してください。

1. リモートセッションが開始したら、**[ファイルを選択]** を選択し、社内プロビジョニングプロファイルを使用するアプリケーションをインストールします。

1. アップロードしたアプリケーションを起動します。

1. エンタープライズアプリ開発者が信頼されていないことを示す iOS ダイアログボックスが表示されていることを確認します。

1. 次に、iOS デバイスが iOS バージョン 18 以降を使用している場合は、 AWS Device Farm チームでサポートチケットを開き、チームがアプリを信頼するようにします。これらのデバイスでは、アプリを手動で信頼する必要があるためです。それ以外の場合は、iOS バージョンが 17 以前の場合は、**設定**アプリに移動し、**全般**設定で VPN **およびプロファイル**メニューからアプリを信頼できます。

この構成プロファイルまたはエンタープライズアプリケーション開発者のすべてのアプリケーションは、削除するまでこのプライベートデバイス上で信頼されるようになりました。