Post

Replies

Boosts

Views

Activity

TestFlight Build Stuck in "Waiting for Review" for External Testers (Post-App Store Release)
Hi everyone, I’ve been facing an issue with TestFlight external builds that I haven't encountered before, and I’d appreciate any insights. Background: I have an iOS app that was recently approved and released to the App Store. Prior to this, I’ve regularly submitted TestFlight builds (with updated version and build numbers) to both internal and external tester groups. Internal builds would appear instantly, as expected. External builds were also available almost immediately after selecting “Ready to Submit.” This was consistent for many iterations. Current Issue: After pushing the latest version to the App Store (which went through the standard review process and was approved), I prepared a new version for TestFlight testing. Here’s what happened: Uploaded a new build with a new version number and build number. It appeared instantly for internal testing as usual. When I tried adding it to the external tester group, the build got stuck in the “Waiting for Review” state. I uploaded this on Saturday night, and as of Monday noon, the status has not changed. I also cancelled that build and uploaded a fresh one with an incremented build number — still stuck in the same status. Additional Notes: The app’s ITSAppUsesNonExemptEncryption key is set to false in Info.plist. There is no missing export compliance warning on App Store Connect. The changes in the new build are minor — a few small updates, nothing significant. I tried decreasing the build number temporarily (which caused an error), then increased it again. No changes were made to permissions, app capabilities, or metadata that would typically trigger a longer review. Questions: Is this expected after an App Store release? Has anyone else experienced delays like this recently for TestFlight external builds? Is there anything I can do to expedite the review? Thanks in advance for any help!
0
0
82
Apr ’25
Internal testers cannot see new version of app in TestFlight
I archived and distributed a new version of my app (with new build number) and it shows up in the Appstore connect (no issues here). But the new version doesn't show up in the Testflight app, nor did the internal testers receive any email regarding the new update. I have waited for 3 hours now, and still no progress on this. This issue is happening out of the blue. The whole process was working fine yesterday. I did a couple of things to debug this issue, along with: Changed build version couple of times Reset provisioning profile Created new testing group, added users, added build manually No matter what I do, I'm unable to get the new version of the app to show in the Testflight app for my internal testers. I have also contacted apple support via email, waiting for their response. Any help appreciated! Thanks
1
2
232
Mar ’25
Device Activity Reports are returning a blank screen in release mode
There is an inconsistent issue when views are rendered from the Device Activity Report Extension. This issue is noticeable only on release versions and it works fine in debug mode. Around 80% of the times, the Report Views return blank screen and this is only the case when a weekly/monthly filter is used. Although, it works as expected for daily report views. My questions are: How are all the Report Activity Views working fine in debug mode but not in release mode? How the daily activity filter works fine in the release mode but the weekly/monthly filters don't work? Is this because of a memory limit issue in the extension? As of now, I have the family-controls(distribution) entitlement only for the app and for the extensions I only have family-controls(development) entitlement. Do I need to request for family-controls(Distribution) entitlement even for the extensions? I have seen threads on the forum mentioning the blank screen issue associated with the DeviceActivityReport but haven't found a solution to it. Any suggestions/feedback would be of great help, thanks.
3
2
991
Apr ’24
eventDidReachThreshold is working as expected only when the app is in debug mode
As per our code, we have the apps to be shielded whenever the threshold is reached. According to this use-case, our code in DeviceActivityExtension looks something like: override func eventDidReachThreshold(_ event: DeviceActivityEvent.Name, activity: DeviceActivityName) { super.eventDidReachThreshold(event, activity: activity) defaults?.setValue(event.rawValue, forKey: "appLimitEventName") defaults?.setValue(true, forKey: "appLimitReached") defaults?.synchronize() // using darwinNotificationCenter to trigger callback in the application let darwinNotificationCenter = DarwinNotificationsManager.sharedInstance() darwinNotificationCenter.postNotification(withName: "nextAppLimitInitiated") // using Notifications to debug since print doesn't work scheduleNotification(with: "interval threshold reached") } And in our application, we have the shielding logic in place, init() { let darwinNotificationCenter = DarwinNotificationsManager.sharedInstance() darwinNotificationCenter.register(forNotificationName: "nextAppLimitInitiated"){ print("callback received") let appLimitReached = self.defaults?.bool(forKey: "appLimitReached") let appLimitEventName = self.defaults?.string(forKey: "appLimitEventName") if appLimitReached ?? false, appLimitEventName != "" { // this sends the notification when callback is received self.scheduleNotification(with: "init start") self.defaults?.setValue(false, forKey: "appLimitReached") guard var dataArray = self.defaults?.array(forKey: "appLimitdataArray"), !dataArray.isEmpty else { return } let appLimitData = dataArray.first as! NSDictionary let appLimitKey = appLimitData["appLimitId"] as! String let data = self.getSchedule(key: appLimitEventName ?? "") if let appTokens = data?.applicationTokens { for token in appTokens { if !self.applicationTokens.contains(appTokens) { self.applicationTokens.insert(token) } } } self.store.shield.applications = self.applicationTokens self.store.shield.applicationCategories = ShieldSettings.ActivityCategoryPolicy.specific(self.categoryTokens, except: Set()) dataArray.removeFirst() //dataArray.append(appLimitData) self.defaults?.set(dataArray, forKey: "appLimitdataArray") self.initiateMonitoring(initiateAgain: true) self.scheduleNotification(with: "init end") } } } This works as expected for multiple App Limits but only when the device is connected to the Xcode. If we disconnect the device from Xcode/ stop application from Xcode/ try in release mode, the callback is not received from extension to the app/init block. When the device is connected to Xcode, if the apps hit the threshold, they are shielded automatically. But if the device is disconnected/ app is in release mode, the apps are not shielded automatically even after the threshold is reached. It is shielded later only after opening our app once. Please let me know if I'm doing anything wrong in receiving callback or in my shielding logic. If I need to place the shielding logic in the extension, please tell me how I can handle multiple appTokens.
2
0
1.1k
Mar ’24
Un-shield an application of a particular schedule when multiple schedules are in place.
If we want to un-shield category/application for particular schedule, then what is the mechanism for this, as for now we are using ManagedSettingsStore().shield.applications = nil and ManagedSettingsStore().shield.applicationCategories = nil, which is actually un-shielding all category/applications without considering the selection of category/application for that schedule. What is the best approach to handle multiple schedules for shielding of apps?
0
0
556
Mar ’24