TestKase
TestKase
|Docs
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 appThe test suite
Built byxcodebuild build-for-testingxcodebuild build-for-testing
FileAcme.ipa — Payload/Acme.app, zippedAcmeUITests.zip — AcmeUITests-Runner.app, zipped
Upload toPOST /xcuitest/v1/appPOST /xcuitest/v1/test-suite
You getapp_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-suite

The 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 .ipa holds exactly one app in Payload/. The .zip holds 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 .xctestproducts are not accepted.
  • No symbolic links inside the zip. Zip with zip -qr, which follows links, not zip -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/v1 is 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.