iOS 设备

该主题涵盖 iOS 设备的最佳实践,并为 iOS 设备问题提供解决方案。

使用 iOS 裝置,沒有 SIM 卡

如果未安装 SIM 卡,则在运行 XCUITEST 时,由于否 - SIM 弹出窗口,设备的即插即用功能可能会崩溃。为了避免这种事故,您可以使用一个愚蠢的 SIM 卡 (推荐) 或遵循以下指南:

  1. 在设备的系统设置中,设置设备的自动锁定为 30 秒。
  2. 在 iOS 代理上,点击 Digital Lab 图标两次。
  3. 选择 VNC 选项卡。

  4. 设置避免设备锁定选项为 1 分钟,以避免设备锁定 (即使在设备的系统自动锁定设置中也可能发生)。
    备注: 要将此设置应用于所有已连接的 iOS 设备,请在管理设置 >iOS 选项中配置此设置。这样就无需在每个连接的设备上手动配置设置。

  5. 强烈建议同时启用应用程序启动警报解除。如果禁用该设置并出现系统警报,则可能会阻止“避免设备锁定”功能的功能,从而导致设备锁定。
    备注: 要将此设置应用于所有已连接的 iOS 设备,请在管理设置 >iOS 选项中配置此设置。这样就无需在每个连接的设备上手动配置设置。

后退到顶部

关于应用程序证书,我应该了解什么?

在安装已经安装在设备上的应用程序时,请确保使用相同开发人员证书作为安装的应用程序。如果证书不匹配,安装将失败。例如,如果设备上的应用程序使用证书 A 签名,则无法安装使用证书 B 签名的同一应用程序。

如果设备上的应用程序使用企业证书进行签名,并且要安装使用开发人员证书进行签名的相同应用程序,则同样适用。

解决方法: 如果证书不匹配,请先删除设备上已安装的应用程序,然后使用其他证书在设备上重新安装应用程序。

注: 不支持使用企业证书签名的无包装混合应用程序。

后退到顶部

“证书由未知机构签署”问题,当试图编码标记一个应用程序时

在 Macintosh 上对应用程序进行代码签名时,必须安装 Apple 可信颁发机构证书,以便通过 Keychain Access 应用程序将 Apple 识别为可信颁发机构。如果未安装 Apple 可信授权机构证书,则由 Apple 发布的任何证书都将显示为无效。有关软件签名证书的更多详细信息,请参阅 Apple Developer 文档。

如果证书在 Keychain Access 应用程序中显示为无效 (红色) ,后跟错误“此证书由未知授权机构签署”,则需要从 AppleWorldwide Developer Relationship Certificate Authority 下载并安装新证书。

invalid certificate

安装证书,如下所示:

1.从 Apple Developer 支持网站下载证书。

2.双击证书。

3.请验证它是否有效 (绿色) ,并且不显示以下错误: “ This certificate was signed by an unknown authority ”。

后退到顶部

防止您的 iOS 裝置在重新播放時關閉

如果将设备设置为在特定时间间隔后锁定屏幕或进入睡眠状态,则这可能会影响您的重播。

要防止所有已连接的 iOS 设备锁定,请在管理设置 >iOS 选项中配置防止自动锁定设置。这样就无需在每个连接的设备上手动配置设置。

或者,要手动防止设备的屏幕锁定,请确保将睡眠的显示设置设置为 " 从不 "。

如果设备继续休眠并锁定屏幕,则可以应用变通办法向设备发送伪操作以防止其休眠,并解除设备锁定。此变通办法使用的伪操作是上卷下卷控件。它不影响您的测试中的步骤,但您可以在设备屏幕上以一定的时间间隔短暂地查看控件。

要设置此操作,请执行以下操作:

  1. 在设备上,打开代理应用程序。
  2. 开启上,Digital Lab icon, 轻按屏幕两次。高级开发人员栏将显示在屏幕底部。

  3. 单击右下角的按钮 VNC,用于显示 VNC 服务器详细信息设置。
  4. 单击位于避免设备锁定功能的右侧值列中。
  5. 选择将伪操作发送到设备的时间间隔,从 1 到 5 分钟。

后退到顶部

登录 iOS 设备的文件

您可以通过以下方式获取数量中设备的崩溃日志:

方法 文件位置
查找文件在 Linuxserver/connector 计算机
  1. 将目录更改为 Linux 目录:
    设备已连接到服务器计算机:
    < Linux 服务器文件夹的路径 >/server/libimobiledevice/linux
    设备连接到独立连接器:
    < Linux 连接器文件夹的路径 >/connector/libimobiledevice/linux
  2. 运行以下命令:
    ./idevicesyslog – u <UDID>
查找文件在 Windowsserver/connector 计算机
  1. 打开命令提示窗口并导航到以下文件夹:
    设备已连接到服务器计算机: <Windows 服务器文件夹的路径 >\server\libimobiledevice\win
    设备连接到独立连接器: <Windows 连接器文件夹的路径 >connector\libimobiledevice\win
  2. 运行以下命令:
    idevicesyslog-u <UDID>
Mac 连接器计算机上查找文件
  1. 将目录更改为 Linux 目录:
    cd/opt/UFTMobile/connector/libimobiledevice/mac
  2. 运行以下命令:
    ./idevicesyslog – u <UDID>
同步与 iTunes

仅限 MacOS Mojave (10.14):
使用 iTunes 执行同步以将文件复制到您的电脑。文件将复制到:

  • Windows:C:\Users\<USERNAME>\AppData\Roaming\Apple Computer\Logs\CrashReporter\MobileDevice\<DEVICE_NAME>
  • Mac: ~/资源库/日志 /CrashReporter/MobileDevice/< DEVICE_NAME >
从设备共享

在设备的以下位置找到崩溃信息: 设置 > 隐私。向下滚动并点击分析

打开 Xcode Organizer

(需要 Mac OS X 和 Xcode)

  1. 启动 Xcode 在桌面计算机上。
  2. 打开 Xcode Organizer 窗口。(窗口菜单 > 管理器 Cmd-Shift-2。)
  3. 在左侧栏中找到您的设备,然后选择设备日志

后退到顶部

關於方向步驟的問題

将录制作为 iOS 上应用程序的打包版本时,记录器会在主页导航步骤之后生成两个定位步骤。

后退到顶部

空设备登录从设备控制面板下载

iOS 设备上的时区必须与连接器计算机上的时区匹配。如果不对齐时区,则会下载一个空文本文件。

后退到顶部

无法在远程设备屏幕查看器上单击登录按钮或应用程序的其他元素

某些元素 (如软键盘) 在物理设备上可见,但在远程设备显示器上不可见。这是由于 Apple 安全增强功能。在某些情况下,可能会将这些“不可见”图元放置在其他图元的顶部,从而阻止用户与其交互。例如,软键盘可以放在登录按钮上,从而防止用户单击它。

后退到顶部

虚拟键盘和安全密码不显示

在 iOS 13 及更高版本上运行的设备上键入安全密码时,虚拟键盘和安全密码不会显示在远程设备屏幕查看器中。

由于 Apple 的安全增强功能,当使用远程屏幕查看器在设备上键入密码时,虚拟键盘不显示,并且安全密码字段上的文本不可见。开启的物理设备,键盘和视觉指示器 (点) 的密码显示。即使不显示文本/键盘,也会按预期发送文本。

使用选项将文本发送到设备时观察到相同的行为。即使未显示文字,也会发送文字。

后退到顶部

可用性不用于识别

打包的 iOS 的记录和重播应用程序使用 accessibilityLabel 属性和值进行对象识别,而不是 accessibilityId。如果测试逻辑使用 accessibilityId 属性和值来区分特定对象,并且计划测试注入代码的应用程序,请按如下方式设置设备:

  1. 在设备上,打开代理应用程序。
  2. 开启代理徽标,轻按屏幕两次。高级开发人员栏将显示在屏幕底部。

  3. 单击 VNC 按钮在屏幕的右下角,以显示设置。
  4. 转到使用可用性适用于代码注入 (注入代码) 应用程序

后退到顶部

无法连接运行 iOS 12 或更高版本的设备-“没有 SIM”警告

在设备中插入 SIM 卡或虚拟 SIM 卡。

或者,在设备上手动配置设备和 Agent 应用程序,如下所示:

  1. 开启设备,选择设置 > Display|Brightness > Auto-lock 并将计时设置为 30 秒。
  2. 打开设备上的 Agent 应用程序。
  3. 轻按 Digital Lab 图标 2 次。开发者选项选项卡栏显示在底部。
  4. 轻按 VNC 图标并将“避免设备锁定”设置为 1 分钟。

备注: 要将此设置应用于所有已连接的 iOS 设备,请在管理设置 >iOS 选项中配置此设置。这样就无需在每个连接的设备上手动配置设置。

后退到顶部

iOS 应用程序崩溃

如果应用程序在启动或开始 Record 之后持续崩溃,或者如果无法使用安装应用程序选项 (实际选项名称可能因使用的工具而异) 启动它,则执行以下操作之一:

  1. 运行测试的卸载或删除选项。

    工具 选项名称
    UFT 1 选择卸载复选框 (位于 Record and 运行设置对话框的 Mobile 选项卡中) 。
    TruClient 删除应用程序 After Execution(位于 TruClient 常规设置对话框的 Digital Lab 设置选项卡中) 。
    Sprinter Digital Lab “应用程序” 选项卡中的“卸载”按钮。
  2. 安装设备上重新注入代码的 AUT,并且仅使用重新启动选项。

    工具 选项名称
    UFT One 重新启动(位于“录制和运行设置”对话框的移动选项卡中)。
    TruClient 重新启动应用程序 (位于 TruClient 常规设置对话框的 Digital Lab 设置选项卡中) 。
    Sprinter Digital Lab应用程序选项卡中的重新启动按钮。

后退到顶部

代理人不会在设备上启动

如果代理未在设备上启动,则验证服务器或连接器计算机是否识别设备:

Linux

  1. 导航到:
    设备已连接到服务器计算机
    /< 服务器安装 文件夹 > /server /libimobiledevice /linux /

    设备连接到单机版连接器
    /< path 到连接器安装文件夹 > /connector /libimobiledevice /linux /
  2. 运行 idevice_id –l

此命令的结果应为设备 ID (UDID) 列表。如果命令返回空结果或 ERROR 消息,请尝试以下操作:

  1. 日志作为 Digital Lab 服务器或连接器计算机上的 root。
  2. 找到“usbmuxd”的进程 ID
    ps aux | grep '[u]sbmuxd'
  3. 终止进程:
    kill –9 <processID>
  4. 再次启动 usbmuxd:
    usbmuxd
  5. 再次运行 idevice_id –l 以查看是否识别设备。

Windows

  1. 打开命令提示窗口并浏览到以下文件夹:
    设备 connected to server machine : < Path to your Windows server folder > server\libimobiledevice\win
    设备已连接到独立连接器:
    < Windows 连接器文件夹的路径 >\libimobiledevice\win
  2. 运行以下命令: idevice_id –l

此命令的结果应为设备 ID (UDID) 列表。如果在设备连接到 USB 端口时没有列出任何设备,这可能意味着:

  • USB 端口不工作 (硬件问题)
  • iTunes 未安装,或者您未在连接器计算机上使用最新版本的 iTunes。下载最新版本的 iTunes。

后退到顶部

企业认证的应用程序不启动

尝试通过测试 (例如 UFT 1) 启动经过企业认证的应用程序时,首次启动应用程序可能会失败,因为 Apple 要求用户手动批准设备上的应用程序。请求批准的错误消息在测试工具的界面中不可见 (例如 UFT 1) 。但是,如果手动启动应用程序,则它可见。

解决方案: 手动启动应用程序并批准其证书。然后,在测试中启动它。

后退到顶部

URL 导航步骤不会在 XCUITest 设备上记录

在 XCUITest 设备上进行录制时,未录制 URL 导航。
解决方案: 如果导航到 URL 是测试的第一步,请至少等待 5 秒以确保 JavaScript 注入完成。在地址栏中单击一次以打开键盘 - 不执行双击或按“清除”按钮。类型在完整 URL 中,使用 PC 键盘 (不是设备的) 并按 Enter 键。

后退到顶部

日期皮克行动失败

使用日期选取器选择日期时,请确保在 30 秒内进行选择。如果选择的持续时间超过 30 秒 ,,代理将超时。此问题仅适用于 iOS 设备上的未注入代码的应用程序。

后退到顶部

无响应的设备

如果设备无法正常工作,请尝试重置所有设置。例如,如果远程访问不起作用,则轻按不响应,应用程序不安装,依此类推,还原为原始默认设置:

  • 选择常规 > 重置 > 重置全部设置
  • 按照初始设备配置中所述的步骤操作。
  • 后退到顶部

    代理人停止工作

    如果代理在设备上停止工作,请执行以下操作:

    • 断开连接设备通过拔出 USB 电缆。
    • 等待 5 秒,然后通过 USB 电缆重新连接设备。

    如果仍有问题:

    • 移除代理应用程序和设备中所有正在测试的应用程序 (AUTs) 。
    • 关闭设备上所有打开的应用程序。
    • 等待 5 秒,然后将设备重新连接到 USB 端口。

    最后的办法是:

    • 重新启动设备。代理已重新安装。
    • 接受设备上的任何系统弹出窗口。
    • 通过拔下 USB 电缆来拔出设备。等待 5 秒,然后重新连接设备。

    后退到顶部

    另请参阅: