Rainforest supports testing native iOS applications in both VM environments and on real devices. The configuration for testing differs slightly for each Platform! This document will walk you through the setup for iOS app testing on a physical device.
Running native iOS tests
Before you begin running your native Mobile tests:
- Upload your app .ipa file to S3, FTP server, or any accessible website
- Add the URL to your app as a Site to your account: Rainforest will upload your application from this URL to our server and will set the site/environment of the test to this URL.
Running tests from the API:
Follow the instructions provided here informing the browsers and app_source_url params:
- browsers: iphone_6s_v9_0
- app_source_url: the URL of your .ipa file
Running tests from the CLI:
Be sure you have installed the latest version of our CLI. This is required to run Mobile tests: https://github.com/rainforestapp/rainforest-cli
Run your test passing the browser and app-source-url params:
- rainforest run --tag <your_test_tag> --token <your_token> --browsers iphone_6s_v9_0 --app-source-url <url_to_the_ipa_file>
Alternatively, instead of the URL, you can pass to the app-source-url the path for your .ipa file.
Running tests from the UI:
- Set a new Site within your settings to the URL where Rainforest can download your app’s .ipa file
- When you initiate a test, Rainforest will trigger the download of your app from this URL
- Write your tests as normal, and run the test against the appropriate site/environment and browser
Preview for Mobile Tests
- It takes some time for RF to establish a connection with your app, so you can expect a brief delay when you initiate a test in preview mode.
There are some limitations to native iOS testing. Please bear the following in mind when scheduling your runs!
Devices cannot make phone calls or send SMS messages
- Mobile tests run for 45 minutes. The test is aborted after this time. Keep your step counts to about 10 steps to ensure speedy testing!
- [Developers] Our iOS devices replace the embedded provisioning profile with a wildcard profile and resign the app, resulting in the removal of certain entitlements.
- App Group, Associated Domains, Game Center, HealthKit, HomeKit, Wireless Accessory Configuration, In-App Purchase, Inter-App Audio, Apple Pay, Push Notifications, and VPN Configuration & Control are not accessible.
- You can find more details here: https://aws.amazon.com/device-farm/faq/
- [Developers] The deprecated UIAlertView is not supported. Apps should instead use the UIAlertController to display alert messages.
- AWS devices use Wifi for connection, no use of 3G or 4G networks.