We encountered the same issue and here is our breakdown of steps.
Important note - phone connects to BT device
Our steps: Solution is under 4. and 6.
- Archive the app and upload it over Xcode successfully
- Used automatic signing
- Everything went smoothly, and Xcode showed a successful upload
- Build never shows up on TestFlight
- There are no emails about failed processing or any indication of what went wrong
- Accidentally found that we’re missing Bluetooth privacy string in Info.plist
- Added
NSBluetoothAlwaysUsageDescription
, archived, and uploaded again
- Used automatic signing
- Everything went smoothly, and Xcode showed a successful upload
- Received an email from AppStoreConnect that Info.plist is missing
NSBluetoothPeripheralUsageDescription
- This is the first email I received stating something is wrong. Only after adding
NSBluetoothAlwaysUsageDescription
- Added
NSBluetoothPeripheralUsageDescription
, archived, and uploaded again
- Used automatic signing
- Everything went smoothly, and Xcode showed a successful upload
- Build visible on TestFlight within several minutes
- :party
The issue was that the app was crashing because it was missing the string. The app did not crash on our testing device because that string was once there and the system already asked the user for permission. The field was probably accidentaly deleted during development.
To find similar issues, try to delete the app from your device and install it again to see if it runs.