TestFlight

RSS for tag

TestFlight within App Store Connect allows you to invite and manage testers who can install and beta test your iOS, iPadOS, tvOS, and watchOS apps using the TestFlight app on the App Store.

Posts under TestFlight tag

200 Posts

Post

Replies

Boosts

Views

Activity

Xcode crash reports from TestFlight
My application is in flightTest mode. I received my first two crash reports in XCODE /Organizer. The context is well described, and I was able to isolate the locations where very serious errors occurred. My application is connected. I'm missing one piece of data in this crash report: the time of the crash. This will help me see what (in my case) static data was being read on the data server at that time. This will help me investigate. Is it possible to obtain this information?
0
0
72
Mar ’25
Failed to Add Testers to TestFlight Build with Status "409"
Our test application has the status "Approved" on the test build list view. However, when adding testers to the test build, the process failed with the error message "An error has occurred. Try again later." **Here is the API request: ** https://appstoreconnect.apple.com/iris/v1/builds/d9bc89fa-e94d-4a33-a39c-20550c0673ec/relationships/individualTesters Here is the response: { "errors" : [ { "id" : "5b833be8-18d1-4ce9-b47d-7a315ef49a50", "status" : "409", "code" : "STATE_ERROR", "title" : "The request cannot be fulfilled because of the state of another resource.", "detail" : "Tester(s) cannot be assigned" } ] } Does anyone experience the same issue? Any insight on the root cause? I am wondering if this could be fixed by itself. Any input and help is appreciated.
1
0
116
Mar ’25
No subscriptions showed to buy in release phase
I have auto-renewable subscriptions, and in Xcode everything works fine. It shows a list of subscriptions where I can make a test purchase. But when I send it for review, the review team, as well as TestFlight, simply do not have subscriptions. If the problem was in the code, it would not work in the sandbox as I think. But I think that I configured everything correctly in the subscription settings. The only thing: it shows there for the subscription in appstoreconnect that it is preparing for review, but nothing can be done about it, because it will be solved with the first release of the application. But I do not know where else to look and what to do. The problem is probably not in the code, but I also redirected the subscription config in appstoreconnect a bunch of times. I asked help on review team, no way. Tried to google and chat GPT, no ideas where to find a solution.
2
0
323
Mar ’25
buildAudienceType is not working as expected
Hi, Am using fastlane to upload into TestFlight. Am able to successfully upload the build without any issues. For Testing Internally , I want to upload the build into App Store Connect but I should restrict it on submitting to App Store. ( This is possible when i distribute the app via TestFlight Internal Only from XCode -> Organizer -> Distribute App (Select option with TestFlight Internal Only). I want to achieve the same using either Transporter/ fastlane. I tried setting buildAudienceType to INTERNAL_ONLY as per https://developer.apple.com/documentation/appstoreconnectapi/buildaudiencetype but it is not working. Can you suggest how i can achieve this via fastlane?
0
0
183
Mar ’25
TestFlight Not Working – "TestFlight Unavailable" on iPhone 15
I'm having trouble launching TestFlight on my iPhone 15. As soon as I open the app, I see the welcome screen, but then I immediately get the following error message: TestFlight Unavailable TestFlight is temporarily unavailable. Try again. I can't proceed further – after tapping "OK," the message disappears, but TestFlight remains unusable. I've tried: Restarting my iPhone Uninstalling and reinstalling TestFlight Checking my internet connection (both Wi-Fi and LTE) Signing out and back into my Apple ID The issue persists. Is anyone else experiencing this? Is this a known issue on Apple's end? Attaching a screenshot for reference. Device: iPhone 15 iOs: 18 Any help would be appreciated!
1
0
303
Mar ’25
App Store Connect Build Upload Failing – Gateway Timeout (504)
App Store Connect Build Upload Failing – Gateway Timeout (504) 🔄 I’m trying to upload a build to App Store Connect through Xcode, but the process keeps failing with a Gateway Timeout (504) error. It looks like Apple’s API or App Store Connect is receiving an invalid response from an upstream service. The server returned unexpected content. <!DOCTYPE html> <html lang="en"> <head> <style> body { font-family: "Helvetica Neue", "HelveticaNeue", Helvetica, Arial, sans-serif; font-size: 15px; font-weight: 200; line-height: 20px; color: #4c4c4c; text-align: center; } .section { margin-top: 50px; } </style> </head> <body> <div class="section"> <h1>&#63743;</h1> <h3>Gateway Timeout</h3> <p>Correlation Key: **********</p> </div> </body> </html>```
8
8
596
Mar ’25
Migrated purchases, now TestFlight will not let me rejoin betas
A few days ago I migrated my purchases from my secondary AppleID to my primary. One of the requirements was to stop testing apps in Testflight. I stopped testing in the app as directed. After the migration I am not able to rejoin my testing app. It says it is connected to my secondary ID and I need to sign in with it. The whole point of migration was to not have two IDs for iCloud and Media and Purchases. I have no intention of signing in with my other ID, it's impractical. How can I get TestFlight to relinquish the secondary ID? Developer sent a new invitation but to no avail. Deleted app and data, reinstalled, to no avail.
0
0
195
Mar ’25
Xcode Cloud Signing Issue
There seems to be a problem to a specific Apple Developer Account regarding Xcode Cloud Distribution (Signing). The Xcode Cloud Error Invalid Signature. Code failed to satisfy specified code requirement(s). The file at path “XcodeCloudTest.app/XcodeCloudTest” is not properly signed. Make sure you have signed your application with a distribution certificate, not an ad hoc certificate or a development certificate. Verify that the code signing settings in Xcode are correct at the target level (which override any values at the project level). Additionally, make sure the bundle you are uploading was built using a Release target in Xcode, not a Simulator target. If you are certain your code signing settings are correct, choose “Clean All” in Xcode, delete the “build” directory in the Finder, and rebuild your release target. For more information, please consult https://developer.apple.com/support/code-signing. Investigation Apple Developer Forums This issue seems to be known: https://developer.apple.com/forums/thread/746210 Debugging by ourselves We setup an example Xcode project from a default iOS Xcode app template to rule out any project issues. This example project failed with the same error as stated above. In the next step we tried the same example project with a different Apple Developer Account and it successfully distributed the example App through Xcode Cloud. Conclusion It seems like there is no setup issue on developer-side, because our example project works out-of-the-box on a different Apple Developer Account. Our only hope is that Apple will have a look on our Developer Account. Maybe there is some internal setting.
1
2
461
Mar ’25
Migrating a Paid App to In-App Subscriptions
Hello, I’m trying to change the business model of my app to in-app subscriptions. My goal is to ensure that previous users who paid for the app have access to all premium content seamlessly, without even noticing any changes. I’ve tried using RevenueCat for this, but I’m not entirely sure it’s working as expected. I would like to use RevenueCat to manage subscriptions, so I’m attempting a hybrid model. On the first launch of the updated app, the plan is to validate the app receipts, extract the originalAppVersion, and store it in a variable. If the original version is lower than the latest paid version, the isPremium variable is set to true, and this status propagates throughout the app. For users with versions equal to or higher than the latest paid version, RevenueCat will handle the subscription status—checking if a subscription is active and determining whether to display the paywall for premium features. In a sandbox environment, it seems to work fine, but I’ve often encountered situations where the receipt doesn’t exist. I haven’t found a way to test this behavior properly in production. For example, I uploaded the app to TestFlight, but it doesn’t validate the actual transaction for a previously purchased version of the app. Correct me if I’m wrong, but it seems TestFlight doesn’t confirm whether I installed or purchased a paid version of the app. I need to be 100% sure that users who previously paid for the app won’t face any issues with this migration. Is there any method to verify this behavior in a production-like scenario that I might not be aware of? I’m sharing the code here to see if you can confirm that it will work as intended or suggest any necessary adjustments. func fetchAppReceipt(completion: @escaping (Bool) -> Void) { // Check if the receipt URL exists guard let receiptURL = Bundle.main.appStoreReceiptURL else { print("Receipt URL not found.") requestReceiptRefresh(completion: completion) return } // Check if the receipt file exists at the given path if !FileManager.default.fileExists(atPath: receiptURL.path) { print("The receipt does not exist at the specified location. Attempting to fetch a new receipt...") requestReceiptRefresh(completion: completion) return } do { // Read the receipt data from the file let receiptData = try Data(contentsOf: receiptURL) let receiptString = receiptData.base64EncodedString() print("Receipt found and encoded in base64: \(receiptString.prefix(50))...") completion(true) } catch { // Handle errors while reading the receipt print("Error reading the receipt: \(error.localizedDescription). Attempting to fetch a new receipt...") requestReceiptRefresh(completion: completion) } } func validateAppReceipt(completion: @escaping (Bool) -> Void) { print("Starting receipt validation...") guard let receiptURL = Bundle.main.appStoreReceiptURL else { print("Receipt not found on the device.") requestReceiptRefresh(completion: completion) completion(false) return } print("Receipt found at URL: \(receiptURL.absoluteString)") do { let receiptData = try Data(contentsOf: receiptURL, options: .alwaysMapped) print(receiptData) let receiptString = receiptData.base64EncodedString(options: []) print("Receipt encoded in base64: \(receiptString.prefix(50))...") let request = [ "receipt-data": receiptString, "password": "c8bc9070bf174a8a8df108ef6b8d2ae3" // Shared Secret ] print("Request prepared for Apple's validation server.") guard let url = URL(string: "https://buy.itunes.apple.com/verifyReceipt") else { print("Error: Invalid URL for Apple's validation server.") completion(false) return } print("Validation URL: \(url.absoluteString)") var urlRequest = URLRequest(url: url) urlRequest.httpMethod = "POST" urlRequest.httpBody = try? JSONSerialization.data(withJSONObject: request) URLSession.shared.dataTask(with: urlRequest) { data, response, error in if let error = error { print("Error sending the request: \(error.localizedDescription)") completion(false) return } guard let data = data else { print("No response received from Apple's server.") completion(false) return } print("Response received from Apple's server.") do { if let json = try JSONSerialization.jsonObject(with: data) as? [String: Any] { print("Response JSON: \(json)") // Verify original_application_version if let receipt = json["receipt"] as? [String: Any], let appVersion = receipt["original_application_version"] as? String { print("Original application version found: \(appVersion)") // Save the version in @AppStorage savedOriginalVersion = appVersion print("Original version saved in AppStorage: \(appVersion)") if let appVersionNumber = Double(appVersion), appVersionNumber < 1.62 { print("Original version is less than 1.62. User considered premium.") isFirstLaunch = true completion(true) } else { print("Original version is not less than 1.62. User is not premium.") completion(false) } } else { print("Could not find the original application version in the receipt.") completion(false) } } else { print("Error parsing the response JSON.") completion(false) } } catch { print("Error processing the JSON response: \(error.localizedDescription)") completion(false) } }.resume() } catch { print("Error reading the receipt: \(error.localizedDescription)") requestReceiptRefresh(completion: completion) completion(false) } } Some of these functions might seem redundant, but they are intended to double-check and ensure that the user is not a previous user. Is there any way to be certain that this will work when the app is downloaded from the App Store? Thanks in advance!
1
0
429
Mar ’25
Xcode 16 Crash While Validating (com.apple.root.default-qos)
Hello, We're attempting to validate our application archive through Xcode but the application is crashing during the validate step and we're not sure why. Platform: macOS 15.1 Arch: arm64 We've confirmed that our developer agreements are up to date (a suggestion made by other posts on these forums). Other suggestions have been to downgrade Xcode but we're hoping there's another explanation. The application is quite complex - many libraries and framework - but executes as expected during development and testing. Crash Report Any insight into this error would be appreciated. We're sure it's something wrong with our plist or archive structure but the crash is limiting our ability to debug.
5
0
419
Mar ’25
Test Flight - Builds are suddenly expired for some developers
Hi Everyone, Over the last week, some of the dev team has suddenly lost access to our test flight builds. Stating "builds expired", we've tried a few things including: removing the users from both test flight and apple connect reinstall the apps after the entire process, they're still stuck with the same "build expired" prompt. Originally only two devs were having this issue but more have started to follow. Has anyone seen something similar before? Thanks,
0
0
348
Mar ’25
No response for an appeal for one week
I submitted an appeal (Appeal Ticket: APL122726), Apple App Review Team responded (24.02) that my demo account does not work (not available to check the application) and asked for restoring it. Demo account was restored by me 10 hours later. I notified App Review Team about it. But I didn't get any response. I can't get any response for one week. The continued suspension of our app is having a significant impact on our business and our users. Specifically the app's unavailability continues to result in a substantial loss of revenue. Please, review my appeal. Thank you.
1
0
325
Mar ’25