Troubleshooting
The things that actually go wrong, and what they mean.
An iPhone will not install
Almost always the device's UDID is not in the build's provisioning profile. Open the build and check its device coverage. Enrol the device, add the UDID in the Apple Developer portal, re-sign and re-upload.
An installed iOS app crashes on open
The provisioning profile has expired. Nothing can be done from here — re-sign and re-upload. Watch the expiry warnings on each build to avoid it next time.
Nothing happens when a link is tapped
It was opened inside another app's browser. Ask them to open it in Safari or Chrome.
Upload returns 409
That version and build number already exist for this app and platform. Bump the build number — two different binaries sharing a version is the hardest thing to debug afterwards.
Devices are not getting an OTA update
- Check targetBinaryVersion actually covers the binary they are running
- Check the release is not pulled, and not on a partial rollout that excludes them
- Check the app is pointed at the right server URL and deployment key
- A device already on that package is correctly told there is nothing new
OTA publish says no JavaScript bundle found
The zip contains the output directory rather than its contents. Zip from inside it: cd build && zip -qr ../bundle.zip .
Install counts look wrong
Only genuine download starts are counted, deduplicated per device over ten minutes. If a number looks low compared to a link's clicks, that is the deduplication and prefetch filtering doing their job.
An invitation email did not arrive
Check spam first. An admin can reissue the invitation from the Team page, which invalidates the previous link — and the link is always shown on screen, so it can be sent by hand.