Preconditions and known restrictions

Preconditions

In order to perform iOS tests with QF-Test, the following preconditions need to be fulfilled for the machine QF-Test is running on:

  • iOS applications can only be tested on a macOS system. You have to install and execute QF-Test on this system (interactively, in batch mode or via daemon calls).
  • To execute tests on the iOS simulator or iOS device, you have to install the complete development environment Xcode in version 13 or higher from the App Store. To avoid installation problems, it is recommended to disable the auto update mechanism for applications in the App Store or system settings, and update Xcode manually while no test is running.
  • In Xcode, you have to enable the iOS development platform and install the corresponding iOS simulators/runtimes. To install, open "Settings" or "Preferences" and select the tab "Platforms" or "Components". You have to repeat this step after each Xcode update.
  • Select the correct development path /Applications/Xcode.app/Contents/Developer via Terminal: sudo xcode-select -s /Applications/Xcode.app/Contents/Developer.
  • To control the iOS device or iOS simulator, the iOS Development Bridge is required. For installation, please refer to https://fbidb.io/docs/installation.

In the menu "Extras" of the QF-Test main window you can find the command "Check/Setup iOS test environment ...". This command helps to verify your current system and gives advices on how to install the required tools. When a tool is started the first time it can happen that its initialization takes more than 30 seconds. In this case, due to timeout, a wrong version number of the tool is reported. To work around, simply restart the check/setup procedure.

Known restrictions

  • Events directly entered on a connected device or in the Simulator app cannot be recorded. Similar to Android tests, interactions have to be performed in the dedicated recording window, see Record actions and checks for iOS.
  • Starting from iOS version 13, when using SecureField components (for entering passwords or other sensitive information), the software keyboard will no longer be displayed in the recording window, and the text component will appear empty although it contains input. The software keyboard is not essential for recording, because input to the text component can always be recorded via keyboard events to the recording window. However, the component information for the software keyboard remains available and can be used for playback of 'Mouse events' to its keys. For this purpose, you can use component recording (see Recording components) on the whole window to record the keyboard component or work directly with SmartID. A suitable SmartID suggestion can be obtained using the UI Inspector.