In the past I've had separate build configurations for production and beta builds distributed through TestFlight. This made it easy to make modifications to beta builds, such as exposing additional settings the app to let testers test things more thoroughly and see more technical information about the status of the app.
Is there a way to check if an app has been distributed through Apple's TestFlight to make changes to how the app runs? Compiler directives no longer make sense as the same build can be distributed to beta testers and submitted to the store, but perhaps there's a way to check at runtime.
In App store, click on the user icon top right of screen. Select "Purchased", then ensure that "All" is selected. Scroll down that list - Apps will either have an "Open" button (if they are installed), or a cloud download icon if they are int installed but eligible to be installed on that device.
Before your external testers can test your app, you must submit your app to Apple for review like you would with a regular App Store submission. These reviews tend to be quicker than normal app reviews, but there's no guarantee. Once approved, you can send your app to external testers.
Testing iMessage apps (iOS or iPadOS 10, or later) Install TestFlight on the iOS or iPadOS device that you'll use for testing. Open your email invitation or tap the public link on your iOS or iPadOS device. Tap View in TestFlight or Start Testing; or tap Install or Update for the app you want to test.
Apple's TestFlight is a tool created to help developers distribute their beta apps to users before they are released on the App Store to everyone. However, scammers have been using the platform to distribute malicious apps without Apple's knowledge.
This works:
if ([[NSBundle mainBundle] pathForResource:@"embedded" ofType:@"mobileprovision"]) {
// TestFlight
} else {
// App Store (and Apple reviewers too)
}
Update
The above method doesn't seem to work anymore, Apple changed the way they sign TestFlight builds. This does work however:
BOOL isRunningTestFlightBeta = [[[[NSBundle mainBundle] appStoreReceiptURL] lastPathComponent] isEqualToString:@"sandboxReceipt"];
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With