Appearance
Submitting to TestFlight
rnd submit uploads an .ipa to App Store Connect with asc, waits for Apple to process it, and adds it to TestFlight groups.
Before the first submission
- An App Store Connect API key in
asc:asc auth login.rnd submitusesasc's default key unless the submit profile names one (below). - An app record. Apple has no API for creating apps: create it once at App Store Connect → Apps → + with your bundle id. Note its numeric Apple ID.
- A signed store build:
distribution: "store"with credentials set up. - Optional: a TestFlight group to send it to.
asc testflight groups create --app <apple-id> --name "QA" --internal
The submit profile
json
{
"submit": {
"production": {
"ios": {
"ascAppId": "6817907751",
"groups": ["QA"]
}
}
}
}| Field | Meaning |
|---|---|
ascAppId | The app's Apple ID. Without it, the app is found by ios.bundleIdentifier |
groups | TestFlight groups to add the build to. --groups on the command line replaces this list |
ascApiKeyPath, ascApiKeyId, ascApiKeyIssuerId | Use a specific API key instead of asc's default; $VAR references are expanded |
language | Locale for the "What to Test" note (default en-US) |
Submitting
sh
rnd build -p ios -e production
rnd build:download -p ios
cd build && unzip *.zip && cd ..
rnd submit -p ios --profile production --path build/MyApp.ipa \
--what-to-test "Checkout flow rewrite"What happens:
asc builds uploadsends the.ipa.- When
groupsare set, it waits for processing: Apple has to know the build before it can be added to a group. This usually takes a few minutes. - The build is added to each group, and the TestFlight link is printed.
rnd submit without --path finds your latest store build and tells you the two commands to download it: asc uploads local files only.
sh
rnd submit:status -p ios # live App Store version and recent TestFlight buildsGetting it onto a phone
Internal testers must be users of your App Store Connect team and members of the group. Add yourself under TestFlight → (group) → Testers, then install from the TestFlight app.
Build numbers
App Store Connect rejects an upload whose build number it has already seen for that version. autoIncrement is not applied yet, so bump ios.buildNumber in app.json before each store build.
Android
Not wired up yet: Google Play needs a service account rather than asc. The .aab from a store build uploads to Play Console unchanged.