AutomateMobileXCUITest
Uploading the app and suite
Upload your app as an .ipa and your UI test Runner as a .zip, and get the two farm:// URLs a build needs.
A build needs two uploads. Each one gives you a farm:// URL to use when you start a build.
| The app | The test suite | |
|---|---|---|
| Built by | xcodebuild build-for-testing | xcodebuild build-for-testing |
| File | Acme.ipa — Payload/Acme.app, zipped | AcmeUITests.zip — AcmeUITests-Runner.app, zipped |
| Upload to | POST /xcuitest/v1/app | POST /xcuitest/v1/test-suite |
| You get | app_url (farm://app-…) | test_suite_url (farm://suite-…) |
How to build and package both is on Getting started.
Upload in one call
curl -u "x:$TESTKASE_ACCESS_KEY" -F "[email protected]" https://hub.testkase.com/xcuitest/v1/app
curl -u "x:$TESTKASE_ACCESS_KEY" -F "[email protected]" https://hub.testkase.com/xcuitest/v1/test-suiteThe upload must finish within five minutes, and each file can be at most 500 MB, so a very large app can hit one or the other. You send the file itself — there is no upload by URL.
Good to know
- The app is an
.ipa, the suite a.zip. The.ipaholds exactly one app inPayload/. The.zipholds exactly one…-Runner.app, as Xcode builds it. Zipping in Finder works too. - Build for a real device, with Development or Ad Hoc signing. Simulator builds, App Store builds, Xcode test plans and
.xctestproductsare not accepted. - No symbolic links inside the zip. Zip with
zip -qr, which follows links, notzip -y. - Use your own bundle ids. Apple's ids, and those of the browsers our devices keep (such as Chrome), are refused.
- Uploads last 90 days. Most CI pipelines simply upload both files on every run.
- 10 apps and 10 test suites. The app library is the same iOS library you see in My apps. When a library is full, your oldest upload made through
/xcuitest/v1is replaced automatically. Apps you uploaded from the dashboard are never replaced; if all 10 came from there, delete one first.
Listing, deleting and every error code are in the API reference: upload app, upload test suite, list apps, list test suites, delete an app, delete a test suite.
