Search results for

“A Summary of the WWDC25 Group Lab”

10,648 results found

Post

Replies

Boosts

Views

Activity

ExternalPurchaseCustomLink.token(for:) returns nil when isEligible is true
Environment iOS 18.1+ StoreKit External Purchase Link Entitlement (EU) App distributed via App Store in France Problem Summary I'm implementing external purchase links for EU users using ExternalPurchaseCustomLink. While the implementation works correctly in my TestFlight testing, some production users experience token(for:) returning nil. Implementation Following Apple's documentation, my flow is: Check eligibility using ExternalPurchaseCustomLink.isEligible If eligible, call ExternalPurchaseCustomLink.token(for: ACQUISITION) Store the token for use in the external purchase flow // Simplified implementation guard #available(iOS 18.1, *) else { return } let isEligible = await ExternalPurchaseCustomLink.isEligible guard isEligible else { return } // This returns nil for some users despite isEligible being true let token = try await ExternalPurchaseCustomLink.token(for: ACQUISITION) Configuration Entitlement: com.apple.developer.storekit.external-purchase-link is present Info.plist: SKExternalPurchaseC
1
0
117
Jan ’26
Update made browsing a headache
It’s the small things that make a difference, and the three dots at the top of the screen in Safari and Chrome are such examples. I’ve already accidentally deleted several tab groups by accident and try to relearn browsing is harder than it should be.
Topic: Safari & Web SubTopic: General
1
0
230
Jan ’26
Reply to Update made browsing a headache
Two things: These are the Developer Forums, where developers of third-party apps for Apple's platforms ask each other for hints and tips on coding. You're talking to random third-party developers from around the world, not Apple's developers; If you have a suggestion, you should raise it at: https://www.apple.com/feedback/ but please note that your post doesn't really explain the issue, so please clearly state what's wrong with the three dots button. There is no option in that menu to directly delete a tab group; it's more than one tap away - so whatever you're doing it's not as a direct result of that menu.
Topic: Safari & Web SubTopic: General
Jan ’26
Reply to Xcode Cloud builds stuck at App Store Connect
@DTS Engineer I also don't think it's anything to do with my code (though I could always be wrong). This pipeline ran for 1hr 33min until I canceled it and none of the 3 targets finished, they all got stuck at 93%: https://appstoreconnect.apple.com/teams/411a63c1-9d73-4245-8bec-d755e3579ec7/apps/6737959724/ci/builds/ac32a2f1-0a28-446b-bae1-c3228612af8b/summary This pipeline ran for 53 minutes until I canceled it but iOS target succeeded, macOS and visionOS were stuck at 93%. https://appstoreconnect.apple.com/teams/411a63c1-9d73-4245-8bec-d755e3579ec7/apps/6737959724/ci/builds/3cb93c56-2eb4-4984-97df-879c0e83c8dd/summary BOTH of these pipeline runs were for the same exact commit, the code didnt change between them yet in one of them iOS succeeded and in the other one it didnt.
Jan ’26
Reply to Xcode Cloud builds stuck at App Store Connect
@DTS Engineer yes I submitted a request but it was through the contact us form not through feedback assistant: https://developer.apple.com/contact/case/102801901445/solution/select Case 102801901445 As far as sharing the project, here's a direct link to the pipeline: https://appstoreconnect.apple.com/teams/411a63c1-9d73-4245-8bec-d755e3579ec7/apps/6737959724/ci/builds/28aadaf4-68e2-4e10-9a18-fd69a574307d/summary
Jan ’26
Reply to Push To Talk framework doesn't active audio session in background
Now the problem. When the application was initially in the foreground and has an established server connection, we initially keep the server connection active when the app enters the background state, until a certain timeout or the system decides our app needs to be killed/removed from memory. This allows us to finish an incoming audio stream, quickly react on incoming responses, etc. When we then receive an incoming audio stream after a certain delay (for example, 5 seconds), we call the channelManager.setRemoteParticipant method (using try await syntax). So, the short summary is that this should just work. More specifically, all PTT apps are allowed to initiate playback at any time by calling setRemoteParticipant(), even if they're in the background. In particular, what you're describing here: we initially keep the server connection active when the app enters the background state, until a certain timeout or the system decides our app needs to be killed/removed from memory. ...is actually pretty com
Topic: App & System Services SubTopic: General Tags:
Jan ’26
Performance in Large Datasets (SwiftUI+SwiftData app)
Hi everyone, In the simple app below, I have a QueryView that has LazyVStack containing 100k TextField's that edit the item's content. The items are fetched with a @Query. On launch, the app will generate 100k items. Once created, when I press any of the TextField's , a severe hang happens, and every time I type a single character, it will cause another hang over and over again. I looked at it in Instruments and it shows that the main thread is busy during the duration of the hang (2.31 seconds) updating QueryView. From the cause and effect graph, the update is caused by @Observable QueryController .(Bool). Why does it take too long to recalculate the view, given that it's in a LazyVStack? (In other words, why is the hang duration directly proportional to the number of items?) How to fix the performance of this app? I thought adding LazyVStack was all I need to handle the large dataset, but maybe I need to add a custom pagination with .fetchLimit on top of that? (I understand that ModelActor would be an alter
1
0
221
Jan ’26
Reply to Get identities from a smart card in an authorization plugin
Thanks for the extra info. First up, an SFAuthorizationPluginView can’t support smart card authentication in the same way as the built-in login UI can (FB11978008). That’s because the built-in UI populates various authorization context values but SFAuthorizationPluginView does not. The name and format of these values is not documented, so the authorization plug-in can’t work around this issue itself. However, that’s not what you’re trying to do. Rather, you’re trying to simply use smart-card-back credentials, and that’s more feasible. There’s one thing to check here, and then a roadblock to get around. The thing to check is that your smart card is available in pre-login context. To do that, disable your authorisation plug-in, reverting to the built-in login UI. Then check that you can use the built-in PIV smart card support to pair your user with your smart card, and thus log in with your YubiKey. I don’t have docs for how to do that handy — that’s more of an Apple Support thing than a DTS thing — but I do it
Topic: Privacy & Security SubTopic: General Tags:
Jan ’26
SubscriptionStoreView(groupID:) bug in TestFlight
Hello, I seem to have a strange bug when testing 2 of my Apps that calls SubscriptionStoreView(groupID: storekitmanager.groupID), where storekitmanager is using @Observable, with groupID from the Subscription Group in App Store Connect. They have the following: Yearly, Biannually, and Monthly. Their productIDs and groupIDs have been configured in each app with the correct IDs. In my main Apple ID, when the SubscriptionStoreView is presented, selecting Monthly, tap Subscribe, and nothing happens. Selecting either Yearly or Biannually, tap Subscribe and the Confirmation Dialog that triggers faceID/touchID will appear correctly. This happens in both Apps for TestFlight. I have a Manage Subscriptions button that uses: manageSubscriptionsSheet(isPresented:subscriptionGroupID:) I can change the subscription to Monthly in that manage subscriptions. However, if I switch to a Sandbox Apple Account, the bug described above does not happen. The Sandbox account when selecting Monthly and tap Subscribe will trigg
1
0
194
Jan ’26
Crash in libicucore via NSDateFormatter dateFromString: on iOS 26.2
Introduction: I’m encountering a consistent crash in production on iOS 26.2 (build 23C55). The crash occurs deep within libicucore when calling [NSDateFormatter dateFromString:]. Crash Summary: Exception Type: SIGSEGV (SEGV_ACCERR) Fault Address: 0xffffffff Thread: Crashed on Main Thread (Thread 0) Library: libicucore.A.dylib Code Snippet: The crash is triggered by the following method. It converts a string to an NSDate using a specific format and locale: // 获取日期date - (NSDate *)getDateWithTime:(NSString *)time formatter:(NSString *)formatterStr { NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:formatterStr]; formatter.timeZone = [NSTimeZone timeZoneWithName:@Asia/Shanghai]; formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@en_US_POSIX]; return [formatter dateFromString:time]; } Backtrace: Here is the relevant part of the crash report: Incident Identifier: E24485B6-C53E-4115-A6CF-A7E4A952AD50 CrashReporter Key: 21FAC1CF-F56B-409A-98AA-351D3D2EB06C Ha
6
0
258
Jan ’26
Reply to QuickLookAR shares the actual USDZ model instead of the original website URL — critical copyright and data leak issue on iOS 26
[quote='871873022, White_Nebel, /thread/812348?answerId=871873022#871873022, /profile/White_Nebel'] FB20753534 [/quote] Thanks for that. I took a quick look [pun intended :-] and there’s nothing to report on that front. With regards Greg’s point, I guess that your key concern is that: On iOS 26 it’s trivial for users to grab your AR content. On iOS 18 it was still possible — there are a bazillion apps on the App Store that let you download files from the Internet — but it wasn’t trivial. Is that an accurate summary? Share and Enjoy — Quinn “The Eskimo!” @ Developer Technical Support @ Apple let myEmail = eskimo + 1 + @ + apple.com
Topic: Privacy & Security SubTopic: General Tags:
Jan ’26
Reply to Subscription Group Remains as Prepare for Submission
I've consulted the local Apple Contact Us group. They replied last week that 'Prepare for Submission' is indicative of missing information. I already know that since this app submission is about 250th with IAPs. Then he or she said that my subscription plan may not have a screenshot. That's the case, either. They often try to solve an issue with a guess, which leads nowhere.
Jan ’26
Reply to "In-App Purchases and Subscriptions" missing, WHY????
I'm in the same shoes since the end of the last December. Because my app contains the Japanese localization package, I thought I was not able to have subscription plans due to the holiday season and the Japan MSCA. But an Apple local rep. says that's not the case. I already released the app by reducing features. In the near future, I want to add subscription plans since it currently has no mineralization mechanism whatsoever. At this moment, it seems that I've reached the end of the rope. Seeing the last submission with subscription plans, I don't see anything wrong with the app in question. Also, I have deleted an existing sub group with a new one once or twice with no resolution.
Jan ’26
Reply to App Store version stuck in Developer Rejected state, blocking IAP submission
Isn't it just the matter of creating a new subscription group with a new set of product identifiers? You should have switched to the manual release as opposed to auto release and then submit a software update when you decided not to release the initial version. You have made the initial group of product identifiers useless, I guess.
Jan ’26
Enrollment is not processing
I have been waiting for several months now for my enrollment to finish processing. I have reached out several times and was told that a new group is handling enrollment and there is no way to reach them. How can this issue be escalated??
Replies
2
Boosts
0
Views
71
Activity
Jan ’26
ExternalPurchaseCustomLink.token(for:) returns nil when isEligible is true
Environment iOS 18.1+ StoreKit External Purchase Link Entitlement (EU) App distributed via App Store in France Problem Summary I'm implementing external purchase links for EU users using ExternalPurchaseCustomLink. While the implementation works correctly in my TestFlight testing, some production users experience token(for:) returning nil. Implementation Following Apple's documentation, my flow is: Check eligibility using ExternalPurchaseCustomLink.isEligible If eligible, call ExternalPurchaseCustomLink.token(for: ACQUISITION) Store the token for use in the external purchase flow // Simplified implementation guard #available(iOS 18.1, *) else { return } let isEligible = await ExternalPurchaseCustomLink.isEligible guard isEligible else { return } // This returns nil for some users despite isEligible being true let token = try await ExternalPurchaseCustomLink.token(for: ACQUISITION) Configuration Entitlement: com.apple.developer.storekit.external-purchase-link is present Info.plist: SKExternalPurchaseC
Replies
1
Boosts
0
Views
117
Activity
Jan ’26
Update made browsing a headache
It’s the small things that make a difference, and the three dots at the top of the screen in Safari and Chrome are such examples. I’ve already accidentally deleted several tab groups by accident and try to relearn browsing is harder than it should be.
Topic: Safari & Web SubTopic: General
Replies
1
Boosts
0
Views
230
Activity
Jan ’26
Reply to Update made browsing a headache
Two things: These are the Developer Forums, where developers of third-party apps for Apple's platforms ask each other for hints and tips on coding. You're talking to random third-party developers from around the world, not Apple's developers; If you have a suggestion, you should raise it at: https://www.apple.com/feedback/ but please note that your post doesn't really explain the issue, so please clearly state what's wrong with the three dots button. There is no option in that menu to directly delete a tab group; it's more than one tap away - so whatever you're doing it's not as a direct result of that menu.
Topic: Safari & Web SubTopic: General
Replies
Boosts
Views
Activity
Jan ’26
Reply to Xcode Cloud builds stuck at App Store Connect
@DTS Engineer I also don't think it's anything to do with my code (though I could always be wrong). This pipeline ran for 1hr 33min until I canceled it and none of the 3 targets finished, they all got stuck at 93%: https://appstoreconnect.apple.com/teams/411a63c1-9d73-4245-8bec-d755e3579ec7/apps/6737959724/ci/builds/ac32a2f1-0a28-446b-bae1-c3228612af8b/summary This pipeline ran for 53 minutes until I canceled it but iOS target succeeded, macOS and visionOS were stuck at 93%. https://appstoreconnect.apple.com/teams/411a63c1-9d73-4245-8bec-d755e3579ec7/apps/6737959724/ci/builds/3cb93c56-2eb4-4984-97df-879c0e83c8dd/summary BOTH of these pipeline runs were for the same exact commit, the code didnt change between them yet in one of them iOS succeeded and in the other one it didnt.
Replies
Boosts
Views
Activity
Jan ’26
Reply to Xcode Cloud builds stuck at App Store Connect
@DTS Engineer yes I submitted a request but it was through the contact us form not through feedback assistant: https://developer.apple.com/contact/case/102801901445/solution/select Case 102801901445 As far as sharing the project, here's a direct link to the pipeline: https://appstoreconnect.apple.com/teams/411a63c1-9d73-4245-8bec-d755e3579ec7/apps/6737959724/ci/builds/28aadaf4-68e2-4e10-9a18-fd69a574307d/summary
Replies
Boosts
Views
Activity
Jan ’26
Reply to Push To Talk framework doesn't active audio session in background
Now the problem. When the application was initially in the foreground and has an established server connection, we initially keep the server connection active when the app enters the background state, until a certain timeout or the system decides our app needs to be killed/removed from memory. This allows us to finish an incoming audio stream, quickly react on incoming responses, etc. When we then receive an incoming audio stream after a certain delay (for example, 5 seconds), we call the channelManager.setRemoteParticipant method (using try await syntax). So, the short summary is that this should just work. More specifically, all PTT apps are allowed to initiate playback at any time by calling setRemoteParticipant(), even if they're in the background. In particular, what you're describing here: we initially keep the server connection active when the app enters the background state, until a certain timeout or the system decides our app needs to be killed/removed from memory. ...is actually pretty com
Topic: App & System Services SubTopic: General Tags:
Replies
Boosts
Views
Activity
Jan ’26
Performance in Large Datasets (SwiftUI+SwiftData app)
Hi everyone, In the simple app below, I have a QueryView that has LazyVStack containing 100k TextField's that edit the item's content. The items are fetched with a @Query. On launch, the app will generate 100k items. Once created, when I press any of the TextField's , a severe hang happens, and every time I type a single character, it will cause another hang over and over again. I looked at it in Instruments and it shows that the main thread is busy during the duration of the hang (2.31 seconds) updating QueryView. From the cause and effect graph, the update is caused by @Observable QueryController .(Bool). Why does it take too long to recalculate the view, given that it's in a LazyVStack? (In other words, why is the hang duration directly proportional to the number of items?) How to fix the performance of this app? I thought adding LazyVStack was all I need to handle the large dataset, but maybe I need to add a custom pagination with .fetchLimit on top of that? (I understand that ModelActor would be an alter
Replies
1
Boosts
0
Views
221
Activity
Jan ’26
Reply to Get identities from a smart card in an authorization plugin
Thanks for the extra info. First up, an SFAuthorizationPluginView can’t support smart card authentication in the same way as the built-in login UI can (FB11978008). That’s because the built-in UI populates various authorization context values but SFAuthorizationPluginView does not. The name and format of these values is not documented, so the authorization plug-in can’t work around this issue itself. However, that’s not what you’re trying to do. Rather, you’re trying to simply use smart-card-back credentials, and that’s more feasible. There’s one thing to check here, and then a roadblock to get around. The thing to check is that your smart card is available in pre-login context. To do that, disable your authorisation plug-in, reverting to the built-in login UI. Then check that you can use the built-in PIV smart card support to pair your user with your smart card, and thus log in with your YubiKey. I don’t have docs for how to do that handy — that’s more of an Apple Support thing than a DTS thing — but I do it
Topic: Privacy & Security SubTopic: General Tags:
Replies
Boosts
Views
Activity
Jan ’26
SubscriptionStoreView(groupID:) bug in TestFlight
Hello, I seem to have a strange bug when testing 2 of my Apps that calls SubscriptionStoreView(groupID: storekitmanager.groupID), where storekitmanager is using @Observable, with groupID from the Subscription Group in App Store Connect. They have the following: Yearly, Biannually, and Monthly. Their productIDs and groupIDs have been configured in each app with the correct IDs. In my main Apple ID, when the SubscriptionStoreView is presented, selecting Monthly, tap Subscribe, and nothing happens. Selecting either Yearly or Biannually, tap Subscribe and the Confirmation Dialog that triggers faceID/touchID will appear correctly. This happens in both Apps for TestFlight. I have a Manage Subscriptions button that uses: manageSubscriptionsSheet(isPresented:subscriptionGroupID:) I can change the subscription to Monthly in that manage subscriptions. However, if I switch to a Sandbox Apple Account, the bug described above does not happen. The Sandbox account when selecting Monthly and tap Subscribe will trigg
Replies
1
Boosts
0
Views
194
Activity
Jan ’26
Crash in libicucore via NSDateFormatter dateFromString: on iOS 26.2
Introduction: I’m encountering a consistent crash in production on iOS 26.2 (build 23C55). The crash occurs deep within libicucore when calling [NSDateFormatter dateFromString:]. Crash Summary: Exception Type: SIGSEGV (SEGV_ACCERR) Fault Address: 0xffffffff Thread: Crashed on Main Thread (Thread 0) Library: libicucore.A.dylib Code Snippet: The crash is triggered by the following method. It converts a string to an NSDate using a specific format and locale: // 获取日期date - (NSDate *)getDateWithTime:(NSString *)time formatter:(NSString *)formatterStr { NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:formatterStr]; formatter.timeZone = [NSTimeZone timeZoneWithName:@Asia/Shanghai]; formatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@en_US_POSIX]; return [formatter dateFromString:time]; } Backtrace: Here is the relevant part of the crash report: Incident Identifier: E24485B6-C53E-4115-A6CF-A7E4A952AD50 CrashReporter Key: 21FAC1CF-F56B-409A-98AA-351D3D2EB06C Ha
Replies
6
Boosts
0
Views
258
Activity
Jan ’26
Reply to QuickLookAR shares the actual USDZ model instead of the original website URL — critical copyright and data leak issue on iOS 26
[quote='871873022, White_Nebel, /thread/812348?answerId=871873022#871873022, /profile/White_Nebel'] FB20753534 [/quote] Thanks for that. I took a quick look [pun intended :-] and there’s nothing to report on that front. With regards Greg’s point, I guess that your key concern is that: On iOS 26 it’s trivial for users to grab your AR content. On iOS 18 it was still possible — there are a bazillion apps on the App Store that let you download files from the Internet — but it wasn’t trivial. Is that an accurate summary? Share and Enjoy — Quinn “The Eskimo!” @ Developer Technical Support @ Apple let myEmail = eskimo + 1 + @ + apple.com
Topic: Privacy & Security SubTopic: General Tags:
Replies
Boosts
Views
Activity
Jan ’26
Reply to Subscription Group Remains as Prepare for Submission
I've consulted the local Apple Contact Us group. They replied last week that 'Prepare for Submission' is indicative of missing information. I already know that since this app submission is about 250th with IAPs. Then he or she said that my subscription plan may not have a screenshot. That's the case, either. They often try to solve an issue with a guess, which leads nowhere.
Replies
Boosts
Views
Activity
Jan ’26
Reply to "In-App Purchases and Subscriptions" missing, WHY????
I'm in the same shoes since the end of the last December. Because my app contains the Japanese localization package, I thought I was not able to have subscription plans due to the holiday season and the Japan MSCA. But an Apple local rep. says that's not the case. I already released the app by reducing features. In the near future, I want to add subscription plans since it currently has no mineralization mechanism whatsoever. At this moment, it seems that I've reached the end of the rope. Seeing the last submission with subscription plans, I don't see anything wrong with the app in question. Also, I have deleted an existing sub group with a new one once or twice with no resolution.
Replies
Boosts
Views
Activity
Jan ’26
Reply to App Store version stuck in Developer Rejected state, blocking IAP submission
Isn't it just the matter of creating a new subscription group with a new set of product identifiers? You should have switched to the manual release as opposed to auto release and then submit a software update when you decided not to release the initial version. You have made the initial group of product identifiers useless, I guess.
Replies
Boosts
Views
Activity
Jan ’26