Menu
AWS Device Farm
Developer Guide (API Version 2015-06-23)

Skip App Re-signing on Private Devices in AWS Device Farm

When you use private devices, you can skip the step where Device Farm re-signs your app. This is different from public devices, where we always re-sign your app on both the iOS and Android platforms.

You can skip app re-signing when you create a remote access session or when you create a new test run (part of the Configure step). Choose the Skip app re-signing checkbox when you set up your test run.


          Choose Skip app re-signing when using private device instances on a test run

You might want to skip app re-signing if your app has functionality that breaks when Device Farm re-signs your app. For example, push notifications might not work after re-signing. For more information about the modifications Device Farm makes when we test your app, see Do you modify my app? in the AWS Device Farm Frequently Asked Questions (FAQ).

Note

If you're using the XCTest framework, the Skip app re-signing choice is not available. For more information, see XCTest.

The process for managing app-signing settings is different, depending on whether you're using private Android devices and private iOS devices.

Skip App Re-signing on Android Devices

If you're testing your app on a private Android device, choose Skip app re-signing when you create your test run or your remote access session. No further configuration is needed to skip app re-signing.

Skip App Re-signing on iOS Devices

Apple requires that you sign apps for testing before they can be loaded onto a device. For iOS devices, you have two options for signing your app. The option you choose depends on whether you're using an In House (Enterprise) developer provisioning profile or using an Ad Hoc/iOS App Development provisioning profile.

If you're using an In House developer provisioning profile, you can skip ahead to create a remote access session to trust your app.

If you're using an Ad Hoc or iOS App Development provisioning profile when using a private device instance, you need to first register the device with your Apple developer account, and then update your provisioning profile to include the private device you just added. Once that is complete, you need to re-sign your app with the provisioning profile you just updated. You'll now be able to run your re-signed app on Device Farm.

Ad Hoc/iOS App Development Provisioning Profile

  1. Sign in to your Apple developer account.

  2. Navigate to the Certificates, IDs, and Profiles section of the console.

  3. Go to your Devices.

  4. Register the device in your Apple developer account.

    You can get the device UDID and the name from the Device instances tab of your Project settings or by using the ListDeviceInstances API.

  5. Go to your provisioning profile and choose Edit.

  6. Select the device from the list.

  7. In XCode, fetch your updated provisioning profile, and then re-sign the app.

    Note

    No additional configuration is necessary. You can now create a remote access session or a test run and choose Skip app re-signing.

Create a Remote Access Session to Trust your App

If you're using an In House (Enterprise) developer provisioning profile, you need to do a one-time procedure to trust the In House app developer certificate on each of your private devices.

To do so, you can either install the app you want to test on the private device, or you can install a "dummy" app that is signed with the same certificate as the app you want to test. The advantage of installing a "dummy" app is that once you trust the Configuration Profile or Enterprise App developer, all apps from that developer are trusted on the private device until you delete all apps from that developer. Therefore, when you upload a new version of the app you want to test, you won't have to trust the app developer again. This is particularly useful if you run test automations and you don't want to create a remote access session each time you test your app.

Before you start your remote access session, you need to create or modify an instance profile in Device Farm by following this procedure: Creating an Instance Profile to Set Up Private Devices. When prompted, add the bundle ID of the test app or the "dummy" app to Exclude Packages from Cleanup. Attach this instance profile to the private device instance to ensure that Device Farm doesn't remove this app from the device before starting a new test run. This ensures that your developer certificate remains trusted.

You can upload the "dummy" app to the device using a remote access session, which allows you to launch the app and trust the developer.

  1. Follow the instructions in Create a Session to create a remote access session using the private device instance profile you just created. When you create your session, be sure to select Skip app re-signing.

    
                      Skip app re-signing when creating a remote access session

    In addition, be sure to add the "dummy" app or the app you want to test to Exclude Packages from Cleanup in the instance profile attached to this instance, as explained above.

    Important

    To filter quickly for private devices, choose Private device instances only to ensure that you are using the private device with the correct instance profile.

  2. When your remote session starts, choose Upload to install an application that uses your In House provisioning profile.

  3. Launch the app that you just uploaded.

  4. When prompted, follow the instructions to trust the developer certificate.

    All apps from this Configuration Profile or Enterprise App developer will now be trusted on this private device until you delete all apps from that developer.