

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 AWS Device Farm 中的私有裝置上略過應用程式重新簽署
<a name="skip-app-re-signing-on-private-devices"></a>

應用程式簽署程序涉及使用私有金鑰數位簽署應用程式套件 （例如 [APK](https://developer.android.com/studio/publish/app-signing)、[IPA](https://support.apple.com/guide/security/app-code-signing-process-sec7c917bf14/web))，然後才能安裝在裝置上或發佈到應用程式存放區，例如 Google Play Store 或 Apple App Store。為了透過減少所需的簽章和設定檔數量並提高遠端裝置上的資料安全性來簡化測試，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 在測試應用程式時所做的變更的詳細資訊，請參閱 [AWS Device Farm FAQs](https://aws.amazon.com/device-farm/faq/)或[應用程式](https://docs.aws.amazon.com/devicefarm/latest/developerguide/apps.html)頁面。

若要略過測試執行的應用程式重新簽署，請選取**其他組態**下的**略過應用程式重新簽署**。此選項僅適用於私有裝置。

![\[\]](http://docs.aws.amazon.com/zh_tw/devicefarm/latest/developerguide/images/aws-device-farm-skip-app-re-signing.png)




**注意**  
如果您是使用 XCTest 架構，則無法使用 **Skip app re-signing (略過應用程式重新簽署)** 選項。如需詳細資訊，請參閱[將 Device Farm 與適用於 iOS 的 XCTest 整合](test-types-ios-xctest.md)。

設定您的應用程式簽署設定所需的其他步驟可能不同，取決於您使用的是私有 Android 或 iOS 裝置而定。

## 在 Android 裝置上略過應用程式重新簽署
<a name="signing-apps-on-android-devices"></a>

如果您是在私有 Android 裝置上測試您的應用程式，請在建立您的測試執行或遠端存取工作階段時，選取 **Skip app re-signing (略過應用程式重新簽署)**。無需其他組態。

## 在 iOS 裝置上略過應用程式重新簽署
<a name="signing-apps-on-ios-devices"></a>

Apple 要求您在將應用程式載入裝置之前，先對應用程式簽署以進行測試。若為 iOS 裝置，您有兩個簽署應用程式的選項。
+ 如果您使用的是內部 (Enterprise) 開發人員描述檔，您可以跳到下一個小節，[建立遠端存取工作階段以信任您的 iOS 應用程式](#create-remote-session-trust-your-app)。

  
+ 如果您是使用特定 iOS 應用程式開發描述檔，則必須先使用您的 Apple 開發人員帳戶註冊裝置，然後更新您的佈建描述檔以包含私有裝置。然後您必須使用您更新的佈建描述檔重新簽署應用程式。然後，您可以在 Device Farm 中執行重新簽署的應用程式。

**使用特定/iOS 應用程式開發佈建設定檔註冊裝置**

1. 登入您的 Apple 開發人員帳戶。

1. 導覽至主控台的 **Certificates, IDs, and Profiles (憑證、ID 和設定檔)** 區段。

1. 移至 **Devices (裝置)**。

1. 在您的 Apple 開發人員帳戶中註冊裝置。若要取得裝置的名稱和 UDID，請使用 Device Farm API `ListDeviceInstances`的操作。

1. 移至您的佈建描述檔，然後選擇 **Edit (編輯)**。

1. 從清單選擇裝置。

1. 在 XCode 中，擷取您更新的佈建描述檔，然後重新簽署應用程式。

無需其他組態。您現在可以建立一個遠端存取工作階段或測試執行，並選取 **Skip app re-signing (略過應用程式重新簽署)**。

## 建立遠端存取工作階段以信任您的 iOS 應用程式
<a name="create-remote-session-trust-your-app"></a>

如果您是使用內部 (Enterprise) 開發人員佈建描述檔，則必須執行一次性程序，來信任每個私有裝置上的內部應用程式開發人員憑證。

若要這樣做，您必須安裝與您要測試的應用程式使用相同憑證簽署的預留位置應用程式。裝置信任組態描述檔或企業應用程式開發人員之後，該開發人員的所有應用程式都會在私有裝置上受信任，直到您將其刪除為止。因此，當您安裝要測試的新版本應用程式時，您不必每次都再次信任應用程式開發人員。如果您執行測試自動化，而且不想要在每次測試應用程式時建立遠端存取工作階段，則這樣做特別有用。

許多客戶使用的常見程序是重新簽署適用於 [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)中的指示，使用您建立的私有裝置執行個體描述檔，來建立遠端存取工作階段。當您建立工作階段時，請務必選取 **Skip app re-signing (略過應用程式重新簽署)**。  
![\[\]](http://docs.aws.amazon.com/zh_tw/devicefarm/latest/developerguide/images/aws-device-farm-create-reomte-access-session-skip-app-resigning.png)

   
**重要**  
若要篩選裝置的清單以僅包括私有裝置，請選取 **Private device instances only (僅限私有裝置執行個體)**，以確保您是使用私有裝置與用正確的執行個體設定檔搭配。

   也請務必將預留位置應用程式或您要測試的應用程式新增至此執行個體所連接之執行個體描述檔**的排除套件清除**設定。

1. 當您的遠端工作階段開始時，請選擇**選擇檔案**以安裝使用您的內部佈建設定檔的應用程式。

1. 啟動您剛上傳的應用程式。

1. 確認出現 iOS 對話方塊，指出企業應用程式開發人員不受信任。

1. 然後，如果 iOS 裝置位於 iOS 版本 18 或更高版本，請向 AWS Device Farm團隊開立支援票證，讓團隊為您信任應用程式，因為這些裝置需要手動信任應用程式。否則，如果 iOS 版本為 17 或更低，您可以前往**設定**應用程式，並在**一般**設定下，從 **VPN 和設定檔**選單中信任應用程式。

現在這個私有裝置信任來自這個組態設定檔或企業應用程式開發人員的所有應用程式，直到您將其刪除為止。