Search results for

“A Summary of the WWDC25 Group Lab”

10,634 results found

Post

Replies

Boosts

Views

Activity

How to help Instrument's Swift task task lifetime summary group the same tasks so that the count for tasks is not always 1.
This is a screenshot from the Swift Task track in Xcode. I made these tasks with public actor ResourceManager { func foo() { for observer in observers { Task(name: ResourceManager notify observers) { await notification(observer) } } } } I am confused why each of the task is showing as a separate task in the task lifetime summary. Is there a way to queue the trace in Instruments into the fact that these are indeed the same task?
1
0
162
Dec ’25
Swift Data Undo
Trying to support undo & redo in an app that utilizes Swift Data and as with anything other than provided simplistic Apple demo examples the experience is not great. The problem: Im trying to build functionality that allows users to add items to an item group, where item and item group have a many-to-many relationship e.g. item group can hold many items and items can appear in multiple groups. When trying to do so with relatively simple setup of either adding or removing item group from items relationship array, I am pretty consistently met with a hard crash after performing undo & redo. Sometimes it works the first few undo & redos but 95% of the time would crash on the first one. Could not cast value of type 'Swift.Optional' (0x20a676be0) to 'Swift.Array' (0x207a2bc08). Where CodableStructModel is a Codable Value type inside Item. Adding and removing this relationship should be undoable & redoable as typical for Mac interaction and is supported by
1
0
181
Dec ’25
My Notifications Message Extension doesn't seem to run after distributing my app via Enterprise IPA
I'm developing an app that receives push notifications, and writes the contents of the push notification to a shared location between the main app and a Notifications Message Extension, through App Groups. This all seems to work on my phone, with developer mode turned on, but when I archive my app as an Enterprise IPA and distribute it, the users can install the app on their phones and they receive the push notifications, but it doesn't appear that the message extension is running as my app displays the content of the shared data in the App Groups on the main screen and nothing is showing. I have tried on 3 phones, and it only works on the phone with developer mode turned on. I can't tell at this point whether it's because of a signing issue, or build phase order issue, or something else?
6
0
474
Dec ’25
Reply to My Notifications Message Extension doesn't seem to run after distributing my app via Enterprise IPA
Here is the code of my message extension, if that helps. I am indeed trying to write to the shared storage of the App Groups import os.log // Apple's modern, fast, privacy-safe logging system class NotificationService: UNNotificationServiceExtension { private let log = OSLog( subsystem: Bundle.main.bundleIdentifier!, category: pushnotificationsmessageextension ) var contentHandler: ((UNNotificationContent) -> Void)! // A mutable copy of the notification content — this is what we'll modify or save var bestAttemptContent: UNMutableNotificationContent? // Main entry point — called every time a push arrives with `mutable-content: 1` override func didReceive( _ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void ) { // Save the handler so we can call it later (required!) self.contentHandler = contentHandler // Make a mutable copy so we can modify title, body, attachments, etc. bestAttemptContent = request.content.mutableCopy() as? UNMutableNot
Dec ’25
Facing 2 issues: Issue uploading for external testers, and issue in downloading the app for internal testers. Although the app work perfeclty when i build it directly locally to my phone.
Although the application functions correctly when deployed locally to a physical iPhone using Flutter (direct debug/development build via Xcode), we are encountering the following issues only within App Store Connect / TestFlight: 1- Internal Testing Issue: After completing all required steps in App Store Connect and adding internal testers, testers are unable to install the app. TestFlight displays the error: “Could not install app. The requested app is not available or doesn’t exist.” 2- External Testing Issue: When attempting to add a processed build to an External Testing group (Public Link), App Store Connect returns the following message: “There was an error processing your request. Please try again later.” The build has successfully uploaded and processed, and is marked as Ready to Submit in TestFlight. These issues do not occur during direct device deployment and appear to be isolated to TestFlight / App Store Connect. We would appreciate guidance on how to solve this issue which is preventin
1
0
226
Dec ’25
Reply to Accessing Built-In iOS Alarm Sounds When Using AlarmKit
Thanks for the post. Sorry for the delay. Very interesting and great question. For alarm-like functionality, local notifications can be paired with custom sounds. The default alarm sounds available on iOS devices are proprietary. This restriction ensures that these sounds remain exclusive to and maintain their intended user experience. As of now, there is no public API that allows developers to access or directly play the built-in iOS alarm sounds in their apps using AlarmKit or any other framework within the iOS SDK. Developers looking to implement alarm functionality in their apps can provide their own audio files. This means you can bundle custom sound files with your app or allow users to select from their own music library I think as well. In summary, as far as I know now, you are currently limited to using custom audio files for alarm sounds in apps, as there is no supported way to access the default iOS alarm tones programmatically. Resources: https://developer.apple.com/documentation/alarmkit
Dec ’25
Reply to Background Upload Extension
1 - We implemented the code to upload still images. We would like to do the same for Live Photos, but we are not sure how to proceed since a Live Photo is composed of 2 resources that we would like to upload in the same job so that we keep the association between the 2 resources. I think your only option here is to process the assets as separate jobs and use the URL request to preserve the conceptual link between the assets— for example, embedding that information in the upload URL or in the URL metadata. 2 - Is there a way to synchronise the application and the extension so that the application would not process the same data or execute the same requests as the extension? For example: our application is working with tokens, and we would like to prevent those tokens from being consumed by the application and the extension at the same time. These issues are alluded to at the end of this section where it says: Important: Your extension needs a mechanism to track which assets you’ve already processed and detect
Topic: Media Technologies SubTopic: General Tags:
Dec ’25
Reply to Customizing section titles in the Shortcuts app (Favorites / Recents style)
Thanks a lot @DTS Engineer for your response — that solved my issue! I was able to implement it successfully, and everything works as expected now. I’m also sharing a small code example along with a screenshot in case it helps others who come across the same question. AppShortcut( intent: ResumePlaybackIntent(), phrases: [ Reprendre la lecture de (.$resumeVideo) avec (.applicationName), ], shortTitle: Reprendre la lecture, systemImageName: play.circle, parameterPresentation: .init( for: .$resumeVideo, summary: Summary(Reprendre la lecture de (.$resumeVideo)), optionsCollections: { OptionsCollection( ResumeVideoQuery(), title: Reprendre la lecture, systemImageName: play.circle ) } ) ) Really appreciate your help!
Dec ’25
Unexpected behavior with multiple apps installed which use shared groups
If I have two iOS apps, with bundle ids com.mycompany.A and com.mycompany.B, and they both have the shared group id of group.com.mycompany.B, then they can read/write data to same file (in shared defaults or, for example, a Realm database saved to the same shared group location). What I have noticed is that if both apps get installed and some data X written to shared defaults (but data which isn't accessed by both apps i.e. if only app A uses this data), then if app A is deleted and reinstalled then X is not deleted in this situation (unless both apps A and B are deleted). I guess that is to be expected as they both use the same group id and the OS won't clear that area out unless both apps are deleted. However I think I am seeing a situation where if app A has group.com.mycompany.A as its group and app B has group.com.mycompany.B as its group, then this is still the same situation - data written by app B for doesn't get deleted if only app B is deleted/reinstalled
2
0
98
Dec ’25
Reply to StoreKit 2 Returns 0 Products - Subscriptions “Ready to Submit” in App Store Connect
I am experiencing the exact same issue. I have two subscription groups each with two products and StoreKit fails to load a single product correctly. I have done this countless times before and know what I am doing. There appears to be something wrong going on with App Store Connect currently thats preventing things from working. This needs to be investigated ASAP!
Dec ’25
Desperate with constant Guideline 1.1 Rejection and possible unfair treatment
Hi everyone, I am really not sure where else to go for a piece of mind because our recent review experience has been far from clear (and probably fair). We are a photo editing app developers who deal with AI models, effects and transformations on a constant basis. I believe last year we (like many other apps in the category) introduced effects that get two people in different photos and unite them in one cute/fun/cozy/emotional picture. Be it a couple, a mother and daughter - you name it. Of course all the templates are pre-set, there is no option for users to generate any scene by text-to-image or image-to-image model. Otherwise it would be unsafe. When submitting our app to review in May, 2025 we first faced the situation that this kind of effects are not welcome because of: Guideline 1.1 - Safety - Objectionable Content The app references or includes features that some users may find objectionable or could be used to create objectionable content. Specifically: The app includes templates for generating cont
1
0
115
Dec ’25
NetworkConnection throws EINVAL when receiving ping/pong control frames
Summary NetworkConnection in iOS 26 Network framework throws POSIXErrorCode(rawValue: 22): Invalid argument when receiving WebSocket ping (opcode 9) or pong (opcode 10) control frames. This prevents proper WebSocket keep-alive functionality. Environment iOS 26.0 (Simulator) macOS 26.1 Xcode 26.0 Note: This issue was initially discovered on iOS 26 Simulator. The same behavior was confirmed on macOS 26, suggesting a shared bug in the Network framework. The attached sample code is for macOS for easier reproduction. Description When using the new NetworkConnection API introduced in iOS 26 or macOS 26, the receive() method throws EINVAL error whenever a ping or pong control frame is received from the server. This is a critical issue because: WebSocket servers commonly send ping frames to keep connections alive Clients send ping frames to verify connection health The receive callback never receives the ping/pong frame - the error occurs before the frame reaches user code Steps to Reproduce Create a WebSock
5
0
284
Dec ’25
Can multiple Apps in the same App Group share Asset Packs?
Hello, I have an Asset Pack that's a database. I need to use it in 2 apps. I'm curious at the expected functionality of cross app Asset Pack distribution as I've seen conflicting behavior. (1) Each app is required to have its own unique Background Assets Target. (2) Uploading the asset pack requires the App ID to be included. (3) I'm able to access the Asset Pack of App #1 inside of App #2 by using AssetPackManager.shared.ensureLocalAvailability(of:) with local testing (Not TestFlight) This is a technical question as originally I planned to duplicate the upload of the Asset Pack to both individual apps.
1
0
162
Dec ’25
Monthly subscriptions immediately fail with "purchase cancelled" while yearly subscriptions work fine
I'm experiencing an issue where monthly and family monthly subscriptions fail immediately with purchase cancelled in TestFlight, while yearly and family yearly subscriptions work correctly. Setup: All 4 products in same subscription group All show Ready to Submit status Using react-native-iap with StoreKit 2 Testing in TestFlight sandbox The Problem: Yearly subscriptions work fine Monthly subscriptions fail immediately with E_USER_CANCELLED (no dialog appears, user didn't cancel) What I've verified: No active subscriptions (getAvailablePurchases() returns empty) No pending transactions Same subscription group for all products Product IDs match App Store Connect Code is identical for all products Error: E_USER_CANCELLED fires immediately when calling requestPurchase() for monthly products, but yearly products proceed normally. Questions: Why would monthly fail while yearly works (same group, same config)? Could this be sandbox state corruption for monthly products? Should I delete/re
1
0
122
Dec ’25
How to help Instrument's Swift task task lifetime summary group the same tasks so that the count for tasks is not always 1.
This is a screenshot from the Swift Task track in Xcode. I made these tasks with public actor ResourceManager { func foo() { for observer in observers { Task(name: ResourceManager notify observers) { await notification(observer) } } } } I am confused why each of the task is showing as a separate task in the task lifetime summary. Is there a way to queue the trace in Instruments into the fact that these are indeed the same task?
Replies
1
Boosts
0
Views
162
Activity
Dec ’25
Swift Data Undo
Trying to support undo & redo in an app that utilizes Swift Data and as with anything other than provided simplistic Apple demo examples the experience is not great. The problem: Im trying to build functionality that allows users to add items to an item group, where item and item group have a many-to-many relationship e.g. item group can hold many items and items can appear in multiple groups. When trying to do so with relatively simple setup of either adding or removing item group from items relationship array, I am pretty consistently met with a hard crash after performing undo & redo. Sometimes it works the first few undo & redos but 95% of the time would crash on the first one. Could not cast value of type 'Swift.Optional' (0x20a676be0) to 'Swift.Array' (0x207a2bc08). Where CodableStructModel is a Codable Value type inside Item. Adding and removing this relationship should be undoable & redoable as typical for Mac interaction and is supported by
Replies
1
Boosts
0
Views
181
Activity
Dec ’25
My Notifications Message Extension doesn't seem to run after distributing my app via Enterprise IPA
I'm developing an app that receives push notifications, and writes the contents of the push notification to a shared location between the main app and a Notifications Message Extension, through App Groups. This all seems to work on my phone, with developer mode turned on, but when I archive my app as an Enterprise IPA and distribute it, the users can install the app on their phones and they receive the push notifications, but it doesn't appear that the message extension is running as my app displays the content of the shared data in the App Groups on the main screen and nothing is showing. I have tried on 3 phones, and it only works on the phone with developer mode turned on. I can't tell at this point whether it's because of a signing issue, or build phase order issue, or something else?
Replies
6
Boosts
0
Views
474
Activity
Dec ’25
Reply to My Notifications Message Extension doesn't seem to run after distributing my app via Enterprise IPA
Here is the code of my message extension, if that helps. I am indeed trying to write to the shared storage of the App Groups import os.log // Apple's modern, fast, privacy-safe logging system class NotificationService: UNNotificationServiceExtension { private let log = OSLog( subsystem: Bundle.main.bundleIdentifier!, category: pushnotificationsmessageextension ) var contentHandler: ((UNNotificationContent) -> Void)! // A mutable copy of the notification content — this is what we'll modify or save var bestAttemptContent: UNMutableNotificationContent? // Main entry point — called every time a push arrives with `mutable-content: 1` override func didReceive( _ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void ) { // Save the handler so we can call it later (required!) self.contentHandler = contentHandler // Make a mutable copy so we can modify title, body, attachments, etc. bestAttemptContent = request.content.mutableCopy() as? UNMutableNot
Replies
Boosts
Views
Activity
Dec ’25
Facing 2 issues: Issue uploading for external testers, and issue in downloading the app for internal testers. Although the app work perfeclty when i build it directly locally to my phone.
Although the application functions correctly when deployed locally to a physical iPhone using Flutter (direct debug/development build via Xcode), we are encountering the following issues only within App Store Connect / TestFlight: 1- Internal Testing Issue: After completing all required steps in App Store Connect and adding internal testers, testers are unable to install the app. TestFlight displays the error: “Could not install app. The requested app is not available or doesn’t exist.” 2- External Testing Issue: When attempting to add a processed build to an External Testing group (Public Link), App Store Connect returns the following message: “There was an error processing your request. Please try again later.” The build has successfully uploaded and processed, and is marked as Ready to Submit in TestFlight. These issues do not occur during direct device deployment and appear to be isolated to TestFlight / App Store Connect. We would appreciate guidance on how to solve this issue which is preventin
Replies
1
Boosts
0
Views
226
Activity
Dec ’25
Reply to Accessing Built-In iOS Alarm Sounds When Using AlarmKit
Thanks for the post. Sorry for the delay. Very interesting and great question. For alarm-like functionality, local notifications can be paired with custom sounds. The default alarm sounds available on iOS devices are proprietary. This restriction ensures that these sounds remain exclusive to and maintain their intended user experience. As of now, there is no public API that allows developers to access or directly play the built-in iOS alarm sounds in their apps using AlarmKit or any other framework within the iOS SDK. Developers looking to implement alarm functionality in their apps can provide their own audio files. This means you can bundle custom sound files with your app or allow users to select from their own music library I think as well. In summary, as far as I know now, you are currently limited to using custom audio files for alarm sounds in apps, as there is no supported way to access the default iOS alarm tones programmatically. Resources: https://developer.apple.com/documentation/alarmkit
Replies
Boosts
Views
Activity
Dec ’25
Reply to Background Upload Extension
1 - We implemented the code to upload still images. We would like to do the same for Live Photos, but we are not sure how to proceed since a Live Photo is composed of 2 resources that we would like to upload in the same job so that we keep the association between the 2 resources. I think your only option here is to process the assets as separate jobs and use the URL request to preserve the conceptual link between the assets— for example, embedding that information in the upload URL or in the URL metadata. 2 - Is there a way to synchronise the application and the extension so that the application would not process the same data or execute the same requests as the extension? For example: our application is working with tokens, and we would like to prevent those tokens from being consumed by the application and the extension at the same time. These issues are alluded to at the end of this section where it says: Important: Your extension needs a mechanism to track which assets you’ve already processed and detect
Topic: Media Technologies SubTopic: General Tags:
Replies
Boosts
Views
Activity
Dec ’25
Reply to Customizing section titles in the Shortcuts app (Favorites / Recents style)
Thanks a lot @DTS Engineer for your response — that solved my issue! I was able to implement it successfully, and everything works as expected now. I’m also sharing a small code example along with a screenshot in case it helps others who come across the same question. AppShortcut( intent: ResumePlaybackIntent(), phrases: [ Reprendre la lecture de (.$resumeVideo) avec (.applicationName), ], shortTitle: Reprendre la lecture, systemImageName: play.circle, parameterPresentation: .init( for: .$resumeVideo, summary: Summary(Reprendre la lecture de (.$resumeVideo)), optionsCollections: { OptionsCollection( ResumeVideoQuery(), title: Reprendre la lecture, systemImageName: play.circle ) } ) ) Really appreciate your help!
Replies
Boosts
Views
Activity
Dec ’25
Unexpected behavior with multiple apps installed which use shared groups
If I have two iOS apps, with bundle ids com.mycompany.A and com.mycompany.B, and they both have the shared group id of group.com.mycompany.B, then they can read/write data to same file (in shared defaults or, for example, a Realm database saved to the same shared group location). What I have noticed is that if both apps get installed and some data X written to shared defaults (but data which isn't accessed by both apps i.e. if only app A uses this data), then if app A is deleted and reinstalled then X is not deleted in this situation (unless both apps A and B are deleted). I guess that is to be expected as they both use the same group id and the OS won't clear that area out unless both apps are deleted. However I think I am seeing a situation where if app A has group.com.mycompany.A as its group and app B has group.com.mycompany.B as its group, then this is still the same situation - data written by app B for doesn't get deleted if only app B is deleted/reinstalled
Replies
2
Boosts
0
Views
98
Activity
Dec ’25
Reply to StoreKit 2 Returns 0 Products - Subscriptions “Ready to Submit” in App Store Connect
I am experiencing the exact same issue. I have two subscription groups each with two products and StoreKit fails to load a single product correctly. I have done this countless times before and know what I am doing. There appears to be something wrong going on with App Store Connect currently thats preventing things from working. This needs to be investigated ASAP!
Replies
Boosts
Views
Activity
Dec ’25
Desperate with constant Guideline 1.1 Rejection and possible unfair treatment
Hi everyone, I am really not sure where else to go for a piece of mind because our recent review experience has been far from clear (and probably fair). We are a photo editing app developers who deal with AI models, effects and transformations on a constant basis. I believe last year we (like many other apps in the category) introduced effects that get two people in different photos and unite them in one cute/fun/cozy/emotional picture. Be it a couple, a mother and daughter - you name it. Of course all the templates are pre-set, there is no option for users to generate any scene by text-to-image or image-to-image model. Otherwise it would be unsafe. When submitting our app to review in May, 2025 we first faced the situation that this kind of effects are not welcome because of: Guideline 1.1 - Safety - Objectionable Content The app references or includes features that some users may find objectionable or could be used to create objectionable content. Specifically: The app includes templates for generating cont
Replies
1
Boosts
0
Views
115
Activity
Dec ’25
Reply to Apple Mac M4 Max crashed
It can be reproduced in AS's lab, Mac M4 crashed after running ATTO Burn-in in 20~40 minutes. And there is an error report pop up on Mac M4 host.
Topic: App & System Services SubTopic: Core OS Tags:
Replies
Boosts
Views
Activity
Dec ’25
NetworkConnection throws EINVAL when receiving ping/pong control frames
Summary NetworkConnection in iOS 26 Network framework throws POSIXErrorCode(rawValue: 22): Invalid argument when receiving WebSocket ping (opcode 9) or pong (opcode 10) control frames. This prevents proper WebSocket keep-alive functionality. Environment iOS 26.0 (Simulator) macOS 26.1 Xcode 26.0 Note: This issue was initially discovered on iOS 26 Simulator. The same behavior was confirmed on macOS 26, suggesting a shared bug in the Network framework. The attached sample code is for macOS for easier reproduction. Description When using the new NetworkConnection API introduced in iOS 26 or macOS 26, the receive() method throws EINVAL error whenever a ping or pong control frame is received from the server. This is a critical issue because: WebSocket servers commonly send ping frames to keep connections alive Clients send ping frames to verify connection health The receive callback never receives the ping/pong frame - the error occurs before the frame reaches user code Steps to Reproduce Create a WebSock
Replies
5
Boosts
0
Views
284
Activity
Dec ’25
Can multiple Apps in the same App Group share Asset Packs?
Hello, I have an Asset Pack that's a database. I need to use it in 2 apps. I'm curious at the expected functionality of cross app Asset Pack distribution as I've seen conflicting behavior. (1) Each app is required to have its own unique Background Assets Target. (2) Uploading the asset pack requires the App ID to be included. (3) I'm able to access the Asset Pack of App #1 inside of App #2 by using AssetPackManager.shared.ensureLocalAvailability(of:) with local testing (Not TestFlight) This is a technical question as originally I planned to duplicate the upload of the Asset Pack to both individual apps.
Replies
1
Boosts
0
Views
162
Activity
Dec ’25
Monthly subscriptions immediately fail with "purchase cancelled" while yearly subscriptions work fine
I'm experiencing an issue where monthly and family monthly subscriptions fail immediately with purchase cancelled in TestFlight, while yearly and family yearly subscriptions work correctly. Setup: All 4 products in same subscription group All show Ready to Submit status Using react-native-iap with StoreKit 2 Testing in TestFlight sandbox The Problem: Yearly subscriptions work fine Monthly subscriptions fail immediately with E_USER_CANCELLED (no dialog appears, user didn't cancel) What I've verified: No active subscriptions (getAvailablePurchases() returns empty) No pending transactions Same subscription group for all products Product IDs match App Store Connect Code is identical for all products Error: E_USER_CANCELLED fires immediately when calling requestPurchase() for monthly products, but yearly products proceed normally. Questions: Why would monthly fail while yearly works (same group, same config)? Could this be sandbox state corruption for monthly products? Should I delete/re
Replies
1
Boosts
0
Views
122
Activity
Dec ’25