iOS 设备
该主题涵盖 iOS 设备的最佳实践,并为 iOS 设备问题提供解决方案。
无法连接运行 iOS 13 或更高版本的设备-“没有 SIM”警告
如果未安装 SIM 卡,则在运行 XCUITEST 时,由于否 - SIM 弹出窗口,设备的即插即用功能可能会崩溃。为避免发生此故障,您可以使用 SIM 卡示例 (推荐) 或遵循以下指导原则:
- 在设备的系统设置中,设置设备的自动锁定为 30 秒。
- 在 iOS 代理上,点击 OpenText Functional Testing Lab 图标两次。
-
选择 VNC 选项卡。
-
设置避免设备锁定选项为 1 分钟,以避免设备锁定 (即使在设备的系统自动锁定设置中也可能发生)。
备注: 要将此设置应用于所有已连接的 iOS 设备,请在管理设置 >iOS 选项中配置此设置。这样就无需在每个连接的设备上手动配置设置。 - 强烈建议同时启用应用程序启动警报解除。如果禁用该设置并出现系统警报,则可能会阻止“避免设备锁定”功能的功能,从而导致设备锁定。
备注: 要将此设置应用于所有已连接的 iOS 设备,请在管理设置 >iOS 选项中配置此设置。这样就无需在每个连接的设备上手动配置设置。
关于应用程序证书,我应该了解什么?
在安装已经安装在设备上的应用程序时,请确保使用相同开发人员证书作为安装的应用程序。如果证书不匹配,安装将失败。例如,如果设备上的应用程序使用证书 A 签名,则无法安装使用证书 B 签名的同一应用程序。
如果设备上的应用程序使用企业证书进行签名,并且要安装使用开发人员证书进行签名的相同应用程序,则同样适用。
解决方法: 如果证书不匹配,请先删除设备上已安装的应用程序,然后使用其他证书在设备上重新安装应用程序。
注: 不支持使用企业证书签名的无包装混合应用程序。
“证书由未知机构签署”问题,当试图编码标记一个应用程序时
在 Macintosh 上对应用程序进行代码签名时,必须安装 Apple 可信颁发机构证书,以便通过 Keychain Access 应用程序将 Apple 识别为可信颁发机构。如果未安装 Apple 可信授权机构证书,则由 Apple 发布的任何证书都将显示为无效。有关软件签名证书的更多详细信息,请参阅 Apple Developer 文档。
如果证书在 Keychain Access 应用程序中显示为无效 (红色),后跟错误“此证书由未知授权机构签署”,则需要从 AppleWorldwide Developer Relationship Certificate Authority 下载并安装新证书。
安装证书,如下所示:
1.从 Apple Developer 支持网站下载证书。
2.双击证书。
3.请验证它是否有效 (绿色),并且不显示以下错误: “ This certificate was signed by an unknown authority ”。
防止您的 iOS 装置在重新播放时关闭
如果将设备设置为在特定时间间隔后锁定屏幕或进入睡眠状态,则这可能会影响您的重播。
要防止所有已连接的 iOS 设备锁定,请在管理设置 >iOS 选项中配置防止自动锁定设置。这样就无需在每个连接的设备上手动配置设置。
或者,要手动防止设备的屏幕锁定,请确保将睡眠的显示设置设置为 " 从不 "。
如果设备继续休眠并锁定屏幕,则可以应用变通办法向设备发送伪操作以防止其休眠,并解除设备锁定。此变通办法使用的伪操作是上卷和下卷控件。它不影响您的测试中的步骤,但您可以在设备屏幕上以一定的时间间隔短暂地查看控件。
要设置此操作,请执行以下操作:
- 在设备上,打开代理应用程序。
-
在 OpenText Functional Testing Lab 图标上,轻按屏幕两次。高级开发人员栏将显示在屏幕底部。
- 单击右下角的按钮 VNC,用于显示 VNC 服务器详细信息设置。
- 单击位于避免设备锁定功能的右侧值列中。
- 选择将伪操作发送到设备的时间间隔,从 1 到 5 分钟。
登录 iOS 设备的文件
您可以通过以下方式获取数量中设备的崩溃日志:
方法 | 文件位置 |
---|---|
在 Linux 服务器/连接器计算机上查找文件 |
|
在 Windows 服务器/连接器计算机上查找文件 |
|
在 Mac 连接器计算机上查找文件 |
|
同步与 iTunes |
仅限 MacOS Mojave (10.14):
|
从设备共享 |
在设备的以下位置找到崩溃信息: 设置 > 隐私。向下滚动并点击分析。 |
打开 Xcode Organizer (需要 Mac OS X 和 Xcode) |
|
关於方向步骤的问题
将录制作为 iOS 上应用程序的打包版本时,记录器会在主页导航步骤之后生成两个定位步骤。
从设备控制窗格下载的设备日志为空
iOS 设备上的时区必须与连接器计算机上的时区匹配。如果不对齐时区,则会下载一个空文本文件。
无法在远程设备屏幕查看器上单击登录按钮或应用程序的其他元素
某些元素 (如软键盘) 在物理设备上可见,但在远程设备显示器上不可见。这是由于 Apple 安全增强功能。在某些情况下,可能会将这些“不可见”图元放置在其他图元的顶部,从而阻止用户与其交互。例如,软键盘可以放在登录按钮上,从而防止用户单击它。
虚拟键盘和安全密码不显示
在 iOS 13 及更高版本上运行的设备上键入安全密码时,虚拟键盘和安全密码不会显示在远程设备屏幕查看器中。
由于 Apple 的安全增强功能,当使用远程屏幕查看器在设备上键入密码时,虚拟键盘不显示,并且安全密码字段上的文本不可见。开启的物理设备,键盘和视觉指示器 (点) 的密码显示。即使不显示文本/键盘,也会按预期发送文本。
使用选项将文本发送到设备时观察到相同的行为。即使未显示文字,也会发送文字。
可用性不用于识别
注入代码的 iOS 的记录和重播应用程序使用 accessibilityLabel 属性和值进行对象识别,而不是 accessibilityId。如果测试逻辑使用 accessibilityId 属性和值来区分特定对象,并且计划测试注入代码的应用程序,请按如下方式设置设备:
- 在设备上,打开代理应用程序。
-
开启代理徽标,轻按屏幕两次。高级开发人员栏将显示在屏幕底部。
- 单击 VNC 按钮在屏幕的右下角,以显示设置。
- 打开“对注入代码的应用程序使用 accessibilityId”。
iOS 应用程序崩溃
如果应用程序在启动或开始记录之后持续崩溃,或者如果无法使用安装应用程序选项 (实际选项名称可能因使用的工具而异) 启动它,则执行以下操作之一:
-
运行测试的卸载或删除选项。
工具 选项名称 OpenText Functional Testing 选择卸载复选框 (位于 Record and 运行设置对话框的 Mobile 选项卡中)。 TruClient 执行后删除应用程序(位于 TruClient 常规设置对话框的OpenText Functional Testing Lab 设置选项卡中)。 Sprinter OpenText Functional Testing Lab 的应用程序选项卡中的卸载按钮。 -
安装设备上重新注入代码的 AUT,并且仅使用重新启动选项。
工具 选项名称 OpenText Functional Testing 重新启动(位于“录制和运行设置”对话框的移动选项卡中)。 TruClient 重新启动应用程序 (位于 TruClient 常规设置对话框的OpenText Functional Testing Lab 设置选项卡中)。 Sprinter OpenText Functional Testing Lab 的应用程序选项卡中的重新启动按钮。
代理未在设备上启动
如果代理未在设备上启动,请验证服务器或连接器计算机是否识别这些设备:
Linux
- 导航到:
设备已连接到服务器计算机/<path to
server installation
folder>/server/libimobiledevice/linux/
或
设备连接到单机版连接器/< path
到连接器安装文件夹 > /connector /libimobiledevice /linux /
- 运行
idevice_id –l
此命令的结果应为设备 ID (UDID) 列表。如果命令返回空结果或 ERROR 消息,请尝试以下操作:
- 作为 root 用户登录 OpenText Functional Testing Lab 服务器或连接器计算机。
- 找到“usbmuxd”的进程 ID
ps aux | grep 'usbmuxd'
- 终止进程:
kill –9 <processID>
- 再次启动 usbmuxd:
usbmuxd
- 再次运行
idevice_id –l
以查看是否识别设备。
Windows
- 打开命令提示符窗口并转到以下文件夹:
设备 connected to server machine :< Path to your Windows server folder > server\libimobiledevice\win
或
设备已连接到独立连接器:< Windows 连接器文件夹的路径 >\libimobiledevice\win
- 运行以下命令:
idevice_id –l
此命令的结果应为设备 ID (UDID) 列表。如果在设备连接到 USB 端口时没有列出任何设备,这可能意味着:
- USB 端口不工作 (硬件问题)
- iTunes 未安装,或者您未在连接器计算机上使用最新版本的 iTunes。下载最新版本的 iTunes。
企业认证的应用程序不启动
尝试通过测试 (例如OpenText Functional Testing) 启动经过企业认证的应用程序时,首次启动应用程序可能会失败,因为 Apple 要求用户手动批准设备上的应用程序。请求审批的错误消息在测试工具的界面中不可见。但是,如果手动启动应用程序,则它可见。
解决方案: 手动启动应用程序并批准其证书。然后,在测试中启动它。
URL 导航步骤不会在 XCUITest 设备上记录
在 XCUITest 设备上进行录制时,未录制 URL 导航。
解决方案: 如果导航到 URL 是测试的第一步,请至少等待 5 秒以确保 JavaScript 注入完成。在地址栏中单击一次以打开键盘 - 不执行双击或按“清除”按钮。类型在完整 URL 中,使用 PC 键盘 (不是设备的) 并按 Enter 键。
日期选取器操作失败
使用日期选取器选择日期时,请确保在 30 秒内进行选择。如果选择的持续时间超过 30 秒 ,,代理将超时。此问题仅适用于 iOS 设备上的未注入代码的应用程序。
无响应的设备
如果设备无法正常工作,请尝试重置所有设置。例如,如果远程访问不起作用,则轻按不响应,应用程序不安装,依此类推,还原为原始默认设置:
代理人停止工作
如果代理在设备上停止工作,请执行以下操作:
- 断开连接设备通过拔出 USB 电缆。
- 等待 5 秒,然后通过 USB 电缆重新连接设备。
如果仍有问题:
- 移除代理应用程序和设备中所有正在测试的应用程序 (AUTs)。
- 关闭设备上所有打开的应用程序。
- 等待 5 秒,然后将设备重新连接到 USB 端口。
最后的办法是:
- 重新启动设备。代理已重新安装。
- 接受设备上的任何系统弹出窗口。
- 通过拔下 USB 电缆来拔出设备。等待 5 秒,然后重新连接设备。
另请参阅: