Instrumentation with source code on iOS
In this chapter, we’ll show you how you to instrument your app using source code on iOS. Simply follow the instructions below. Alternatively, there are also many video tutorials on Youtube that detail this process.
We recommend you only instrument with source code if you’re an experienced iOS developer.
Whenever you update Ranorex Studio (i.e. use newer automation libraries/Ranorex Service App), reinstrument your apps. Otherwise, automation may not work as intended.
Download the automation lib from the “Mobile Download Archive” on your Mac.
The file size of Ranorex Automation Library is about 30 megabytes. This doesn’t automatically make your app 30 megabytes bigger, since it is a universal library and only the parts essential for your app will dynamically be added when compiling it.
As XCode does not automatically update all necessary files, you have to rename them manually. You will have to alter the target itself, the targets .plist file (in workspace as well as in Build Settings -> Packaging), the targets’ project name (Build Settings -> Packaging) and the schemes name (Product -> Manage Schemes).
Choose the lib file and specify the target, i.e. where the lib will be added
Add the CFNetwork framework to the list.
Added automation lib and network framework
With iOS 8.3 you additionally have to add the IOKit.framework.
Set the switches ‘-ObjC’ and ‘-all_load’
After performing these steps, your project can be built using the newly created target and scheme for your iOS devices as well as simulators.
If you see the debug output ‘RxAutomationEngine init‘ in the console pane, your app has been instrumented successfully.
Successfully instrumented app
- Because the Ranorex automation lib uses non-public APIs, make sure that you do not submit a Ranorex instrumented app to the app store as your app might be rejected and you might be banned from submitting apps to the app store for a period of time.
- To add your device via Wi-Fi, it’s necessary that the application under test is started on your iOS device or simulator.
- The development provisioning profile should be used for testing your app and not the distribution provisioning profile.
- To improve the object recognition of your app under test set the accessibility label attribute of your controls.