Search results for

A Summary of the WWDC25 Group Lab

10,087 results found

Post

Replies

Boosts

Views

Activity

Reply to AppGroups data loss after App transfer and App update.
A colleague pointed out that I did't quite get the details right here. But, nonetheless the key thing to know is that any app groups created in a previous developer account will not follow an app to a new developer account after an app transfer. Any data stored using an app group created in a previous developer account will not be accessible after an app transfer even if you use the same app group names. Here are the corrected details: App group IDs never start with an App ID prefix. Rather: iOS-style app group IDs start with group. macOS-style app group IDs start with the Team ID. To read more, please see the forums thread App Groups: macOS vs iOS: Working Towards Harmony
Topic: Code Signing SubTopic: Entitlements Tags:
3w
iOS 26: Navigation bar unexpectedly switches to Light appearance during navigation in Dark Mode
Summary On iOS 26, the navigation bar unexpectedly switches to a Light appearance during/after a view transition while the device/app is in Dark Mode. This seems correlated with applying listStyle(.plain) to a List. Removing .plain prevents the issue, but my app’s layout requires it. Sample code: import SwiftUI @main struct iOS26NavigationTitleSampleApp: App { var body: some Scene { WindowGroup { NavigationStack { ContentView() .navigationTitle(Root) .navigationBarTitleDisplayMode(.inline) } } } } struct ContentView: View { var body: some View { VStack { NavigationLink { ListView() } label: { VStack { Image(systemName: globe) .imageScale(.large) .foregroundStyle(.tint) Text(Hello, world!) } } } .padding() .toolbar { ToolbarItemGroup(placement: .navigation) { Button(Test) { } Button(Test2) { } } } } } struct ListView: View { var items: [Int] = Array(0..<100) var body: some View { List { ForEach(items.indices, id: .self) { idx in cell(items[idx]) } } .listStyle(.plain) .toolbar { ToolbarItemGroup(pl
5
0
313
3w
MissingEntitlement Error with Keychain Access in Mac Catalyst App
My Mac Catalyst app fails with a MissingEntitlement error when accessing keychain/secure storage, while the same code works perfectly on iOS. I have tested this extensively on macOS using Visual Studio Code on a MacBook, trying both automatic and manual provisioning approaches - both result in the same MissingEntitlement error during keychain operations. Error Message: An error occurred during OTP verification: Error adding record: MissingEntitlement Environment : Platform: Mac Catalyst (.NET 9.0) Issue: Keychain access fails on macOS, works on iOS Development: Using .NET MAUI What I've Tried : Entitlements Configuration Added keychain-access-groups to Entitlements.plist: xml keychain-access-groups $(AppIdentifierPrefix)com.example.myapp Project Signing Setup (.csproj configuration) : true manual TEAM_ID Apple Development: Name (XXXXXXXXXX) PROVISIONING_PROFILE_UUID Platforms/MacCatalyst/Entitlements.plist true Has anyone encountered similar issues with Mac Catalyst keychain access? Any
0
0
25
3w
Reply to kTCCServiceSystemPolicyAppData warning from Transparency Consent and Control (TCC)
Interesting. That setup shouldn’t trigger a TCC alert. Do you see the problem if your run the app on a fresh system? That is, one that’s never seen your app before? App group containers do record the identity if the code that created them, and that can sometimes confuse things, so it’s best to verify the result on a fresh Mac. I generally use a VM for this, restoring it to a fresh snapshot between tests. However, you can also do this by creating a new user account on your main Mac. And once you get into the swing of things, you can simple delete the container from ~/Library/Group Containers. Share and Enjoy — Quinn “The Eskimo!” @ Developer Technical Support @ Apple let myEmail = eskimo + 1 + @ + apple.com
Topic: Code Signing SubTopic: Entitlements Tags:
3w
SwiftSMTP broken: Error ioOnClosedChannel on latest macOS
Hi! I wrote an internal used backup command line tool which is in use since several years. Today I got an error while sending an email: “Failed: ioOnClosedChannel”. I assume that the latest macOS updates did break my app. On the server I use macOS 15.7 and on my development machine macOS 26. Here is the related code: private func sendMail() { var a : [Email.Attachment] = [] if self.imageData != nil { switch self.imageType { case .tiff: a.append(Email.Attachment(name: Statistics.tif, contentType: #image/tiff#, contents: ByteBuffer(bytes: self.imageData!))) case .pdf: a.append(Email.Attachment(name: Statistics.pdf, contentType: #application/pdf#, contents: ByteBuffer(bytes: self.imageData!))) case .unknown: fatalError(Unimplemented attachment type!) } } mailHtml = mailHtml.replacingOccurrences(of: , with: n) let email = Email(sender: .init(name: Backup, emailAddress: SENDER@MYDOMAIN), replyTo: nil, recipients: recipients, cc: [], bcc: [], subject: self.subject, body: .universal(plain: self.mailText, html: mailH
2
0
213
3w
Reply to NSDocument doesn't autosave last changes
I'd really appreciate any concrete tip on how I should save the document, because everything I've tried doesn't work. Simply calling updateChangeCount(_:), like we already saw, messes with the undo mechanism. How is the text view able to save everything I input when the window first appears and then quit the app, but isn't able to when switching to another app and back again? This is the last thing I tried, and when quitting the app the .terminateNow branch is always executed. Just calling endUndoGrouping() without beginUndoGrouping() logs an error in the Xcode console that no undo group is currently open. func applicationShouldTerminate(_ sender: NSApplication) -> NSApplication.TerminateReply { for document in documents { document.undoManager?.beginUndoGrouping() document.undoManager?.endUndoGrouping() } let edited = documents.filter({ $0.hasUnautosavedChanges }) if edited.isEmpty { return .terminateNow } var remaining = edited.count for document in edited { document.autosave(withImplicitCancella
Topic: UI Frameworks SubTopic: AppKit Tags:
3w
ContentDelivery 409 “corrupted binaries”
Builds rejected with generic ContentDelivery 409 “corrupted binaries” (no email, no Activity entry) App ID: 6752832930 Bundle ID: com.taleway.tw Toolchain: Xcode 16.0 (build 24319) on macOS 15.6.1 (24G90) What happens Archiving (Release, manual signing) succeeds. Upload/validation via Xcode Organizer or xcrun altool immediately fails with: Validation failed (409) The app contains one or more corrupted binaries. Rebuild the app and resubmit. (ID: ef414ced-bf4e-40a6-8f5f-d4ba744c9433) altool also reports a preceding 500 “internal server error” (L4JS7YJVZYJMHBI4ISC4L3UQBM) before the 409. No system-generated email ever arrives (nothing under App Store Connect → Activity). We therefore have no specific error message or file name to fix. What we’ve checked Archive entitlements and embedded provisioning profiles match: App entitlements: CarPlay audio, App Group group.com.taleway.tw, get-task-allow=false. Intents extension entitlements: com.taleway.tw.TWIntents, get-task-allow=false. Profiles decoded via op
0
0
74
3w
Reply to Canvas Preview: Cannot preview in this file
On my Mac mini M4 Pro, I’ve installed macOS Tahoe 26.0 and Xcode 26.0.1. The error message still appears, even when testing with the iPhone 17 Pro and iPad Pro 11-inch M4 simulators. The FB numer is: FB20362054 == PREVIEW UPDATE ERROR: GroupRecordingError Error encountered during update group #19 ================================== | FailedToLaunchAppError: Failed to launch net.thomasbayer.ChatPrototype | | ================================== | | | [Remote] JITError | | | | ================================== | | | | | [Remote] CouldNotLoadInputObjectFile: Could not load object file during preview: /Users/thomas/Library/Developer/Xcode/DerivedData/ChatPrototype-ebbbmisjgapzykawaadxudtxyjmg/Build/Intermediates.noindex/ChatPrototype.build/Debug-iphonesimulator/ChatPrototype.build/Objects-normal/arm64/ChatPrototypeApp.o | | | | | | path: /Users/thomas/Library/Developer/Xcode/DerivedData/ChatPrototype-ebbbmisjgapzykawaadxudtxyjmg/Build/Intermediates.noindex/ChatPrototype.build/Debug-iphonesimulator/ChatProt
Topic: UI Frameworks SubTopic: SwiftUI
3w
iOS 26: Interface orientation controls ignored on iPad - shouldAutorotate and supportedInterfaceOrientations not respected
Summary: On iOS 26.0, iPad apps ignore standard interface orientation controls (shouldAutorotate, supportedInterfaceOrientations, Info.plist settings) and rotate to landscape despite being configured for portrait-only. Steps to Reproduce: Create iPad app with portrait-only configuration Implement shouldAutorotate returning NO Implement supportedInterfaceOrientations returning UIInterfaceOrientationMaskPortrait Set Info.plist UISupportedInterfaceOrientations~ipad to UIInterfaceOrientationPortrait only Run on iPad with iOS 26.0 Rotate device physically Expected Result: App should remain locked in portrait orientation Actual Result: Entire app interface rotates to landscape, ignoring all orientation controls Additional Information: Same code works correctly on iOS 18.4 (stays portrait-only) Problem affects entire UI including status bar and all view controllers All standard orientation control methods are implemented correctly Issue occurs on both simulator and physical devices Code Sample: objc -(BOOL)
Topic: UI Frameworks SubTopic: UIKit
2
0
149
3w
Reply to CloudKit Subscriptions Not Triggering Push Notifications - No NotificationSend Events
CloudKit Push Notifications Not Delivering - Extensive Debugging Completed Issue Summary CloudKit subscriptions are properly configured and triggering, but push notifications are never delivered to devices. After extensive debugging, I've isolated the issue to CloudKit→APNS delivery failure. Environment Xcode: 15.x iOS Target: 17.0+ watchOS Target: 10.0+ CloudKit Database: Both Public and Private Testing Devices: iPhone 15 Pro, Apple Watch Series 9 Environments Tested: Development and Production What's Working ✅ 1. CloudKit Subscriptions All 6 subscription types successfully created and visible in CloudKit Dashboard Subscriptions persist across app launches (verified in dashboard) Subscription predicates correctly configured for each record type: // Example: FriendRequest subscription NSPredicate(format: toUser == %@, userRecordID) // Example: Challenge subscription NSPredicate(format: recipientID == %@ AND status == %@, userRecordID, pending) 2. Device Registration • App successfully requests and re
3w
Consumable ticket sharing within groups
Hello, I would like to ask for your opinion on whether the following in-app purchase (IAP) specifications would comply with the App Store Review Guidelines. ■ App Overview ・The app allows users to create a “Family Group” by inviting other family members to join. ・The app provides brain-training games. The game itself is displayed via WebView. ・All purchases use in-app purchase (IAP) only. No external payments or links are provided. ■ Purchase Types (2 models) ① Group Unlimited Plan ・If one member of a family group purchases this plan, all members of the same group can play the games without limits for a certain period. ・This is based on the app’s own group-sharing mechanism, not Apple’s “Family Sharing.” We will clearly state this in the UI to avoid confusion. ② Ticket System (Consumable) ・One user in the group purchases game-play tickets. ・Other members of the same group can also consume those tickets to play. ・Tickets are only shared and consume
1
0
26
3w
Consumable ticket sharing within groups
Hello, I would like to ask for your opinion on whether the following in-app purchase (IAP) specifications would comply with the App Store Review Guidelines. ■ App Overview ・The app allows users to create a “Family Group” by inviting other family members to join. ・The app provides brain-training games. The game itself is displayed via WebView. ・All purchases use in-app purchase (IAP) only. No external payments or links are provided. ■ Purchase Types (2 models) ① Group Unlimited Plan ・If one member of a family group purchases this plan, all members of the same group can play the games without limits for a certain period. ・This is based on the app’s own group-sharing mechanism, not Apple’s “Family Sharing.” We will clearly state this in the UI to avoid confusion. ② Ticket System (Consumable) ・One user in the group purchases game-play tickets. ・Other members of the same group can also consume those tickets to play. ・Tickets are only shared and consume
1
0
43
3w
Reply to Shared directories as ROOTFS in Linux VM causes file permission issues
Hello, I’m experiencing a very unusual problem when using VirtioFS with the Apple Virtualization Framework and Docker, through tools such as Lima and Tart. I’ve described the full details here: lima-vm/lima#4053 (comment), but here’s a quick summary. Steps to Reproduce Given a directory structure like this: mkdir -p local-test-dir/dir and running the following command: docker run -u $(id -u) --rm -v $PWD/dir:/mnt/dir alpine:latest sh -c ls -al /mnt the output is: total 8 drwxr-xr-x 1 root root 4096 Sep 23 22:48 . drwxr-xr-x 1 root root 4096 Sep 23 22:48 .. drwxr-xr-x 2 root root 64 Sep 19 21:34 dir # <-- INCORRECT The directory appears as root:root, which is wrong. Workaround If I add an artificial sleep of more than 0.9s before listing the directory, the issue disappears: docker run -u 501 --rm -v $PWD/dir:/mnt/dir alpine:latest sh -c sleep 0.9; ls -al /mnt Output: total 8 drwxr-xr-x 1 root root 4096 Sep 23 22:48 . drwxr-xr-x 1 root root 4096 Sep 23 22:48 .. drwxr-xr-x 2 501 root 64 Sep 19 21:34
Topic: App & System Services SubTopic: Core OS Tags:
3w
Analysis of issues on Safari with liquid glass
Hello, As previous reports have already shown, there seems to be a few issues on the latest version of Safari, mainly around: Modals taking up the full viewport Elements positioned at the bottom of the screen This also seems to affect the modals on apple.com/iphone. I've recently done an analysis of what can and can't be done in code to work with the new liquid glass UI and thought I'd share my findings here. The full write up, along with screenshots and the demos I used are available in this repository: https://github.com/stevenocchipinti/liquid-glass-spike A brief summary of the findings: The conditions for a fullscreen modal overlay element to cover the entire screen with a position: fixed; seems to be: The background must be semi-transparent Solid colours, linear-gradients, etc. don't work The container must be empty This also means the standard and ::backdrop don't seem to work. The conditions for a bottom sheet to cover the entire screen, including the area around the Safari toolbar seems to be
Topic: Safari & Web SubTopic: General Tags:
0
0
100
3w