Search results for

A Summary of the WWDC25 Group Lab

10,092 results found

Post

Replies

Boosts

Views

Activity

Unable to Write to UserDefaults from Widget Extension Despite Correct App Group Configuration
Hi Apple team, I'm experiencing a persistent issue with writing to UserDefaults from a widget extension on iOS. Here's the situation: I've set up an App Group: group.test.blah The main app has the correct entitlement and can read/write from UserDefaults(suiteName:) using this group successfully. I can read the value written by the app from the widget (e.g., testFromApp: hiFromApp). The widget extension has the same App Group enabled under Signing & Capabilities. The provisioning profile reflects the App Group and the build installs successfully on a real device. The suite name is correct and matches across both targets. I’ve confirmed via FileManager.default.containerURL(...) that the app group container resolves properly. When I try to write from the widget extension like this let sharedDefaults = UserDefaults(suiteName: group.test.blah) sharedDefaults?.set(hiFromWidget, forKey: testFromWidget) ...I get this error in the console: Couldn't write values for keys
7
0
171
Aug ’25
Reply to /v1/salesReports API started returning 400 Bad Request
Can confirm that this fix worked for us - reports stopped work on the 4th of Aug for us. Our system is in PHP using cUrl Changed our url from https://api.appstoreconnect.apple.com/v1/salesReports?filter[frequency]=DAILY&filter[reportSubType]=SUMMARY&filter[reportType]=SALES&filter[reportDate]=2025-08-09&filter[vendorNumber]=123XYZ to https://api.appstoreconnect.apple.com/v1/salesReports?filter%5Bfrequency%5D=DAILY&filter%5BreportSubType%5D=SUMMARY&filter%5BreportType%5D=SALES&filter%5BreportDate%5D=2025-08-09&filter%5BvendorNumber%5D=123XYZ Gonna be honest - this is pretty terrible - nothing in their docs, or no proper error messages back - just a blank 400 and hope that someone online has solved it already Just waiting for Apple to realise that this is a bug on their system and then they change it back again without notice
Aug ’25
Reply to App IPA upgrade loses access to keychaingroup
There are two important criteria for evaluating keychain access groups: The list of groups you can access. The default keychain access group, that is, the one used when you add an item and don’t specify a group. Sharing access to keychain items among a collection of apps explains how these are set based on three different entitlements in your app’s code signature. When debugging problems like this, I recommend that you unpack the old and new .ipa files (they’re a zip archive under the covers) and dump the entitlements of both apps: % codesign -d --entitlements - /path/to/your.app Compare the two to see what’s changed. Once you understand what’s, you can then start investigating how the new app got signed in that way, and then work out how to fix it. Share and Enjoy — Quinn “The Eskimo!” @ Developer Technical Support @ Apple let myEmail = eskimo + 1 + @ + apple.com
Topic: Privacy & Security SubTopic: General Tags:
Aug ’25
App IPA upgrade loses access to keychaingroup
Hi, Our App relies on a keychain to store certificates and key-value pairs. However, when we upgraded from an older XCode 15.2 (1 year old) app version to a newer version XCode 16.2 (with identical keychain-groups entitlement), we found that the newer ipa cannot see the older keychain group anymore... We tried Testflight builds, but limited to only generating newer versions, we tried using the older App's code, cast as a newer App version, and then upgraded to the newer code (with an even newer app version!). Surprisingly we were able to see the older keychain group. So it seems that there's something different between the packaging/profile of the older (1 year) and newer (current) App versions that seems to cause the new version to not see the old keychainGroup... Any ideas?
1
0
174
Aug ’25
Reply to Invalid code signing entitlements
[quote='796256021, Qeg, /thread/796256, /profile/Qeg'] I suspect that there is a problem with the App ID Prefix (that is 37CG5MY799 for the app) when our team ID is E4R7RJ7LA3 [/quote] Right. Unique App ID prefixes are not supported on the Mac [1] and, AFAIK, they never have been. [quote='796256021, Qeg, /thread/796256, /profile/Qeg'] I'm currently trying to upload a new version of an existing application. [/quote] It’s hard to say anything for sure without know which App ID we’re talking about, but I usually see this problem in one of two cases: When someone tries to take an iOS app with a unique App ID prefix and create a Mac Catalyst version. When someone tries to replace a Mac-specific app with an universal app. The canonical fix for this is to switch the iOS app to using your Team ID as its App ID prefix. This resolves this problem and is a good idea in general. Specifically, it allows you to share more resources, like keychain access groups, between the various apps in your team. IMPORTANT Chan
Topic: Code Signing SubTopic: Notarization Tags:
Aug ’25
Invalid code signing entitlements
Hello, I'm currently trying to upload a new version of an existing application. But each time I try to validate the archive of the application, I got the following error in Xcode (v16.2) : Invalid code signing entitlements. Your application bundle’s signature contains code signing entitlements that aren’t supported on macOS. Specifically, the “37CG5MY799.com.example.app” value for the com.apple.application-identifier key in “com.example.app.pkg/Payload/app.app/Contents/MacOS/app” isn’t supported. This value should be a string that starts with your Team ID, followed by a dot (“.”), followed by the bundle ID. I suspect that there is a problem with the App ID Prefix (that is 37CG5MY799 for the app) when our team ID is E4R7RJ7LA3 but I cannot find a solution. I asked the Apple Developer Support for help and I have read the documentation they sent but it couldn't solve this problem so they redirected me to the forums. https://developer.apple.com/library/archive/qa/qa1879/_index.html https://developer.apple.com/lib
1
0
170
Aug ’25
Reply to ba-package tool not available
Unfortunately, the packaging tool and the mock server require macOS 26 Tahoe. You could try installing macOS 26 Tahoe and Xcode 26 inside a virtual machine (VM) on your host Mac running macOS 15 Sequoia, though this isn’t something that we’ve officially validated for the Background Assets developer tools. There are several different VM apps available on the Mac App Store. You can download the macOS 26 Tahoe beta restoration image from the Apple Developer website. Make sure to install the Device Support for macOS 26 Beta on your host Mac before setting up your VM. As we announced at WWDC25, the packaging tool and the mock server will soon be available for Linux, which you could use in a virtual machine on your host Mac running macOS Sequoia or on a dedicated Linux computer as an alternative.
Aug ’25
Reply to /v1/salesReports API started returning 400 Bad Request
so it did work for me with curl, then I had to see what made it work, it seems the html formatting was the issue, not sure why it stopped working now from Apple's side, but I was able to make it work by changing my C# code from this: NameValueCollection queryParams = HttpUtility.ParseQueryString(); queryParams[filter[frequency]] = DAILY; queryParams[filter[reportDate]] = day.ToString(yyyy-MM-dd); queryParams[filter[reportType]] = SALES; queryParams[filter[reportSubType]] = SUMMARY; queryParams[filter[vendorNumber]] = VendorId; queryParams[filter[version]] = 1_0; to this: string url = $https://api.appstoreconnect.apple.com/v1/salesReports + $?filter%5Bfrequency%5D=DAILY + $&filter%5BreportDate%5D={day:yyyy-MM-dd} + $&filter%5BreportType%5D=SALES + $&filter%5BreportSubType%5D=SUMMARY + $&filter%5BvendorNumber%5D={VendorId} + $&filter%5Bversion%5D=1_0;
Aug ’25
Safari App Extension fails to connect to CloudKit daemon (cloudd) with XPC communication errors -- CKErrorDomain Code=6 / NSCocoaErrorDomain Code=4099 – Unable to connect to CloudKit daemon
I'm working on a macOS app with a Safari web extension. I'm trying to share a SwiftData model between devices using CloudKit synchronization. I am able to get synchronization in the main app on the same device, CloudKit sync works correctly — changes appear in the CloudKit Dashboard under com.apple.coredata.cloudkit.zone. However, in the Safari App Extension, data is saved locally and persists across launches, but never syncs to CloudKit. I have followed the recommended practices for configuring the App Group and entitlements, but the issue persists. Questions: Is there an official limitation preventing Safari App Extensions from connecting to the CloudKit daemon (cloudd)? If not, what entitlements or configuration changes are required for a Safari App Extension to successfully sync with CloudKit? Is the xpc_error=159 from bootstrap_look_up() a known sandbox restriction for this extension type? Any guidance from Apple engineers or others who have successfully used CloudKit from a Safari App Extension
2
0
78
Aug ’25
Reply to Safari App Extension fails to connect to CloudKit daemon (cloudd) with XPC communication errors -- CKErrorDomain Code=6 / NSCocoaErrorDomain Code=4099 – Unable to connect to CloudKit daemon
Hi Ziqiao, That would be fine, I am actually not interested in sharing a container between the main app and extension. The only reason I even started interacting with the data in the main app was because I couldn't understand why the extension wasn't synchronizing. With the main app I verified that everything about cloudkit was set up correctly. And then when I put them in the same group, they started sharing a container, and I am sure the extension is reading/writing correctly to the container. However, if I disable all interaction with the container in the main app, the records from the extension are never synchronized with cloudkit. Is there some reason for the safari extension to be blocked from synchronizing?
Aug ’25
spatial-backdrop feature available yet?
In WWDC25 session What’s new for the spatial web, the presenter showed creating an immersive environment for a web page by adding to the page's HEAD section My first attempt failed, and I am trying to track down why. Before I search all the potential failure paths, I wanted to ask the community, Is this feature available in the latest visionOS 26 beta? I haven't seen anyone talk about their use of the feature yet.
2
0
186
Aug ’25
how accessible is enough for Accessibility Nutrition Labels?
My team has a robust digital accessibility program and processes for WCAG conformance in our apps. Because of this, there are definitely accessibility defects that get caught and addressed in order of impact and business priority like any other bug. Obviously we want to aim for 100% accessibility for our users, but it's a continual work in progress as new enhancements or changes are released. I'm stuck on the appropriate measurement to indicate support. If we have 50 common tasks and the most central 10 tasks are solid but some supporting (but also common) tasks have a contrast fail or accessibleLabel missing, does that make the whole app not supporting the feature? If completing the task is the rubric there are a whole range of interpretations for that. In a complex app, I anticipate that a group like ours will have strong support for many of the Accessibility Nutrition Labels accessibility features across tasks and devices, but realistically never be 100% free of defects for a given Apple Accessibi
2
0
90
Aug ’25
Reply to Unable to Write to UserDefaults from Widget Extension Despite Correct App Group Configuration
It kinda looks like the widget extension is limited to read-only access to the group. However, I’d like to check one thing just to be sure. In the error you posted you elided the full path shown by the error. Please post that full path. Share and Enjoy — Quinn “The Eskimo!” @ Developer Technical Support @ Apple let myEmail = eskimo + 1 + @ + apple.com
Aug ’25
MacBook Air M4 - Battery Drain During Sleep
Hello, Can anyone tell me what this means? Or if it's normal? I'm seeing about 10% battery drain per day on sleep, and pmset -g log shows wakes nearly every minute. 2025-06-10 17:10:35 -0700 DarkWake DarkWake from Deep Idle [CDNP] : due to smc.70070000 wifibt SMC.OutboxNotEmpty/ Using BATT (Charge:94%) 5 secs 2025-06-10 17:10:43 -0700 DarkWake DarkWake from Deep Idle [CDNP] : due to smc.70070000 wifibt SMC.OutboxNotEmpty/ Using BATT (Charge:94%) 6 secs 2025-06-10 17:13:49 -0700 DarkWake DarkWake from Deep Idle [CDNP] : due to smc.70070000 wifibt SMC.OutboxNotEmpty/ Using BATT (Charge:94%) 8 secs 2025-06-10 17:14:01 -0700 DarkWake DarkWake from Deep Idle [CDNP] : due to smc.70070000 wifibt SMC.OutboxNotEmpty/ Using BATT (Charge:94%) 6 secs 2025-06-10 17:14:10 -0700 DarkWake DarkWake from Deep Idle [CDNP] : due to smc.70070000 wifibt SMC.OutboxNotEmpty/ Using BATT (Charge:94%) 6 secs 2025-06-10 17:15:01 -0700 DarkWake DarkWake from Deep Idle [CDNP] : due to smc.70070000 wifibt SMC.OutboxNotEmpty/ Using BATT (Ch
2
0
96
Jun ’25