在 Device Farm 中AWS跳过在私人设备上重新签名的应用程序 - AWS Device Farm

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在 Device Farm 中AWS跳过在私人设备上重新签名的应用程序

应用程序签名是一个过程,涉及使用私钥对应用程序包(例如,IPA)进行数字签名 APK,然后才能将其安装在设备上或发布到 Google Play 商店或 Apple App Store 等应用商店。为了通过减少所需的签名和配置文件数量来简化测试并提高远程设备上的数据安全性,AWSDevice Farm 将在您的应用程序上传到服务后对其进行重新签名。

将应用程序上传到 Dev AWS ice Farm 后,该服务将使用自己的签名证书和配置文件为应用程序生成新的签名。此过程将原始应用程序签名替换为 Dev AWS ice Farm 的签名。然后,重新签名的应用程序将安装在 Device Farm 提供的测试AWS设备上。新的签名允许在这些设备上安装和运行应用程序,而无需原始开发者的证书。

在 iOS 上,我们将嵌入式配置文件替换为通配符配置文件并重新签名应用程序。如果您提供辅助数据,我们将在安装前向应用程序包中添加辅助数据,这样这些数据就会出现在您的应用程序的沙箱中。退出 iOS 应用程序会导致某些权利被删除。这包括应用程序组、关联域、游戏中心、、 HealthKit、无线配件配置 HomeKit、应用程序内购买、应用程序内音频、Apple Pay、推送通知以及VPN配置和控制。

在安卓系统上,我们停用了该应用程序。这可能会破坏取决于应用程序签名的功能,例如安卓版谷歌地图API。它还可能触发诸如以下产品提供的反盗版和防篡改检测。 DexGuard对于内置测试,我们可能会修改清单以包含捕获和保存屏幕截图所需的权限。

使用私有设备时,可以跳过 Device AWS Farm 重新签名应用程序的步骤。这一点与公有设备不同,对于公有设备,Device Farm 始终会对 Android 和 iOS 平台上的应用程序重新签名。

您可以在创建远程访问会话或测试运行时跳过应用程序重新签名。如果您的应用程序功能在 Device Farm 对您的应用程序重新签名时发生崩溃,这会很有用。例如,重新签名后推送通知可能无法正常工作。有关 Device Farm 在测试您的应用程序时所做的更改的更多信息,请参阅 Dev AWSice Farm FAQs应用程序页面。

要跳过测试运行的应用程序重新签名,请在创建测试运行时在配置页面上选择跳过应用程序重新签名

在使用私有设备实例进行测试运行时选择“Skip app re-signing (跳过应用程序重新签名)”

注意

如果您使用的是XCTest框架,则跳过应用程序重新签名选项不可用。有关更多信息,请参阅 将 Device Farm 与XCTest适用于 iOS 的集成

根据您使用的是私有 Android 设备还是 iOS 设备,配置应用程序签名设置的其他步骤有所不同。

在 Android 设备上跳过应用程序重新签名

如果您在私有 Android 设备上测试应用程序,请在创建测试运行或远程访问会话时选择 Skip app re-signing (跳过应用程序重新签名)。无需其他配置。

在 iOS 设备上跳过应用程序重新签名

Apple 要求您在将用于测试的应用程序加载到设备上之前对应用程序签名。对于 iOS 设备,您有两种选择来对应用程序签名。

  • 如果您使用的是内部(企业)开发人员配置文件,则可以跳到下一部分创建远程访问会话,以信任您的 iOS 应用程序

  • 如果您使用的是临时 iOS 应用程序开发配置文件,则必须先将设备注册到您的 Apple 开发人员账户,然后更新您的预配置配置文件,使其包含私有设备。然后,您必须使用更新的预配置配置文件对应用程序重新签名。然后可以在 Device Farm 中运行重新签名的应用程序。

将设备注册到临时 iOS 应用程序开发预配置配置文件
  1. 登录您的 Apple 开发人员账户。

  2. 导航到控制台的 “证书IDs、和配置文件” 部分。

  3. 转到 Devices (设备)

  4. 在您的 Apple 开发人员账户中注册该设备。要获取设备的名称和UDID名称,请使用 Device Farm 的ListDeviceInstances操作API。

  5. 转到您的预配置配置文件,然后选择 Edit (编辑)

  6. 从列表中选择设备。

  7. 在 XCode 中获取经过更新的预配置配置文件,然后对应用程序重新签名。

无需其他配置。现在,您可以创建远程访问会话或测试运行,然后选择 Skip app re-signing (跳过应用程序重新签名)

创建远程访问会话,以信任您的 iOS 应用程序

如果您使用的是内部(企业)开发人员预配置配置文件,则必须在每台私有设备上执行一次性过程,以信任内部应用程序开发人员证书。

为此,您可以在私有设备上安装要测试的应用程序,也可以安装虚拟应用程序,使用与要测试的应用程序相同的证书对该应用程序进行签名。安装使用相同证书进行签名的虚拟应用程序具有一个优势。一旦您信任配置配置文件或企业应用程序开发人员,则该开发人员的所有应用程序在私有设备上都是可信的,直到您删除这些应用程序。因此,如果您上传了要测试的应用程序的新版本,则不必再次信任该应用程序开发人员。如果您运行测试自动化,不希望在每次测试您的应用程序时都创建远程访问会话,这种方法特别有用。

在启动远程访问会话之前,请按照 在 Device Farm 中AWS创建实例配置文件 中的步骤在 Device Farm 中创建或修改实例配置文件。在实例配置文件中,将测试应用程序或虚拟应用程序的捆绑 ID 添加到清理时需排除的程序包设置。然后,将实例配置文件附加到私有设备实例,以确保 Device Farm 在启动新的测试运行之前不会从设备中删除该应用程序。这样可确保您的开发人员证书仍是可信的。

您可以使用远程访问会话将虚拟应用程序上传到设备,从而启动应用程序并信任此开发人员。

  1. 按照创建会话中的说明操作,创建使用您创建的私有设备实例配置文件的远程访问会话。在创建会话时,请务必选择 Skip app re-signing (跳过应用程序重新签名)

    创建远程访问会话时跳过应用程序重新签名

    重要

    要将设备列表筛选为仅包含私有设备,请选择 Private device instances only (仅限私有设备实例),以确保您使用的是具有正确实例配置文件的私有设备。

    另请确保将虚拟应用程序或要测试的应用程序添加到已附加到此实例的实例配置文件的清理时需排除的程序包设置。

  2. 您的远程会话启动时,请选择选择文件来安装使用内部预置配置文件的应用程序。

  3. 启动您刚刚上传的应用程序。

  4. 请按照说明信任开发人员证书。

现在,该配置文件或企业应用程序开发人员的所有应用程序在此私有设备上都是可信的,直到您删除这些应用程序。