Search results for

A Summary of the WWDC25 Group Lab

10,370 results found

Post

Replies

Boosts

Views

Activity

Reply to NWBrowser + NWListener + NWConnection
Hello, I'm back revisiting this and have some findings to report. When I tried to create a group as seen below let descriptor = NWMultiplexGroup(to: endpoint) guard let identity = networkingService.importIdentityFromPKCS12() else { print([browseResultsChangedHandler] could not import identity) continue } do { let parameters = try NWParameters(identity: identity) let group = NWConnectionGroup(with: descriptor, using: parameters) group.stateUpdateHandler = { _ in } group.newConnectionHandler = { _ in } group.start(queue: .global()) networkingService.addGroup(deviceID, group) } catch { } Note that endpoint comes from browser's browseResultsChangedHandler Identity comes from me importing a SecIdentity from the user's p12 Parameters has the identity in it so that QUIC works. My app crashes when it tries to create the group and I see the following error nw_group_descriptor_allows_endpoint Endpoint 1B1654DF-62B5-4B29-9495-C4965E8E99FF._captadoh._udp.local. is of invalid type for m
Aug ’25
Reply to Gatekepper acts against .app package developed by a freelancer for our company
[quote='852386022, VBFSDEV, /thread/795578?answerId=852386022#852386022, /profile/VBFSDEV'] they will have access to all certificates, as you cannot grant selective certificate access. [/quote] I think you’re confused by the terminology here (an industry-wide problem, alas). It’s fine to give anyone access to a certificate. It only contains a public key. To sign code you need a digital identity, aka a code-signing identity, which is a certificate and the private key that matches the public key in that certificate. So, there’s no issue with your freelancer being able to access your Developer ID certificate [1]. What you have to protect is the matching private key. I discuss this terminological confusion in more detail in TN3161 Inside Code Signing: Certificates [quote='852386022, VBFSDEV, /thread/795578?answerId=852386022#852386022, /profile/VBFSDEV'] there is no solution to perform our signing process without granting the freelancer access to our app store connect account, correct? [/quote] It’s not that ther
Topic: Code Signing SubTopic: General Tags:
Aug ’25
Reply to CocoaPods Fails On Apple Silicon
Here's a recap of the issue Summary of Current Setup So Far (for your documentation): Step Command Output / Result A gem install cocoapods -v 1.14.3 ✅ Installed successfully B which pod user/bob/.rbenv/shims/pod C pod --version 1.14.3 D gem install xcodeproj --pre ✅ Installed xcodeproj-1.27.0 CONCLUSION: This confirms: Xcode 16.3 writes .xcodeproj files with object version 90 The latest xcodeproj gem (1.27.0) only supports up to object version 77 Therefore, CocoaPods will crash every time with modern Xcode, no matter which version of cocoapods you use ✅ Clear Answer ❌ You cannot use CocoaPods right now unless: Xcodeproj is updated to support object version 90 → You’d have to wait for CocoaPods to release a compatible version Or you downgrade Xcode to something that supports .xcodeproj object version 77 → But this means downgrading to Xcode 15.x or lower, which won’t run on macOS 15.5 Sequoia → So you’re stuck.
Aug ’25
encountering a console warning when accessing NSUserDefaults within the willFinishLaunchingWithOptions method. However, it appears that all the key values are loading correctly despite the warning.
App initiates a App group based UserDefaults within the willFinishLaunchingWithOptions method and the same reference are used throughout the app life cycle + (NSUserDefaults *)appGroupUserDefaults { if (_appGroupUserDefaults == nil) { NSString *appGroupIdentifier = [NSString stringWithFormat:@group.%@,[[NSBundle mainBundle] bundleIdentifier]]; NSUserDefaults *groupDefaults = [[NSUserDefaults standardUserDefaults] initWithSuiteName:appGroupIdentifier]; if(groupDefaults != nil) { NSLog(@[DB_ENCRYPTION] appGroupUserDefaults initialised); _appGroupUserDefaults = groupDefaults; } else { NSLog(@: [CCF-OS] [DB_ENCRYPTION] %s Unable to create NSUSerDefaults with groupIdentifier, __func__); _appGroupUserDefaults = [NSUserDefaults standardUserDefaults]; } } return _appGroupUserDefaults; } Doesn't have any issues on accessing the values but seen the below console error: Couldn't read values in CFPrefsPlistSource<0x103eedb00> (Domain: group.com.kodiak.InstaPoC, User: kCFPreferencesAnyUser, ByHost:
2
0
87
Aug ’25
Iphone 16 is not connecting to WiFi7 AP with MLO Suiteb encryption
Issue summary: Iphone 16 is not connecting to WiFi7 AP with MLO Suiteb encryption. Furuno AP(EW750) is sending EAPOL M1 message, but Iphone16 is not responding with EAPOL M2 message, Hence Iphone16 is unable to connect to Qualcomm based AP with MLO suiteb encryption. Issue impact: All the Iphone16 users cannot connect to WiFi7 AP with MLO suiteb encryption globally. Predominantly, Iphone users tend to connect to more secured wifi networks using WPA3 suiteb encryption, hence many of the iphone users will experience the connectivity issue significantly. Topology: AP Hardware: Furuno WiFi7 AP(EW770) The Furuno WiFi7 AP uses Miami IPQ5332 with waikiki radio QCN9274 AP software: SPF12.2 CSU3 IPhone16 software: (18.3.1 or 18.5 ) Iphone16 wifi capabilities: 802.11 b/a/g/n/ac/ax/be Radius server details: Radius server: Laptop running with Ubuntu Radius package: 3.0.26dfsggit20220223.1.00ed0241fa-0ubuntu3.4 Version: 3.0.26 Steps: Power on the Wi-Fi 7 Access Point with the Miami chipset, and flash it with the
1
0
116
Aug ’25
Reply to Gatekepper acts against .app package developed by a freelancer for our company
You’re right to be careful about giving this freelancer full access to your Developer ID credentials. Those are precious, as I discuss in The Care and Feeding of Developer ID. IMO the easiest path forward is: Add your freelancer to your team as you would for iOS. They’ll be able do day-to-day development for your team, using an Apple Developer signing identity, just like they would on iOS. When they’re done, have them do a Product > Archive and send you the resulting .xcarchive. You can import that into your Xcode organiser. And do Developer ID distribution from there. This is a manual process but you can take various steps to automate it. Specifically: xcodebuild can do the equivalent of the Product > Archive in step 3. And it can also export from an archive, so you can automate the first part of step 5. Finally, notarytool lets you automate the second part of step 5. See Customizing the notarization workflow. The beginning of Creating distribution-signed code for macOS has a quick summary of
Topic: Code Signing SubTopic: General Tags:
Aug ’25
Xcode folder reference to an aggregate target's output folder breaks between Debug/Release builds. BUILT_PRODUCTS_DIR not relative to the aggregate
In my project I have an aggregate target that runs a script that generates a web bundle in a folder build/ with all the html/css/resources needed for the website. These resources are generated via a script. I use these resources in multiple targets so I have created an aggregate target to make this simple. However, I have not found this simple. If I have the aggregate target output to $(DERIVED_FILE_DIR)/ then it outputs to a path that looks like this DerivedData/BrowserApp-bla/Build/Intermediates.noindex/BrowserApp.build/Debug-iphonesimulator/WebBundle.build/DerivedSources/build/index.html If I then drag that folder into Xcode and create a folder that references it. Then take that reference and make it relative to build products I get this A9DE6A502E41E397005EF4E0 /* build */ = { isa = PBXFileSystemSynchronizedRootGroup; name = build; path = ../../Intermediates.noindex/BrowserApp.build/Debug-iphonesimulator/WebBundle.build/DerivedSources/build; sourceTree = BUILT_PRODUCTS_DIR; }; This is because to the main
3
0
112
Aug ’25
Reply to Foundation Models Adapter Training Toolkit v0.2.0 LoRA Adapter Incompatible with macOS 26 Beta 4 Base Model
Thank you @illidan80. We found the underlying cause. The framework currently only supports adapters whose identifiers match the regex /fmadapter-w+-w+/. Here, your adapter name foundation-lab contains a hyphen, which tripped our name validation logic. If you update the adapter name in the toolkit to foundation_lab, that should resolve the issue. To test this quickly without re-exporting the adapter, you can manually edit the adapterIdentifier entry in the metadata.json file to fmadapter-foundation_lab-9799725. Thank you for reporting the issue and the follow-up debugging steps. We will use your feedback FB19237327 to track an improvement to the adapter training toolkit to perform this validation at adapter export time. Please don't hesitate to reach out again if you need more help with custom adapters!
Aug ’25
NavigationSplitView content column renders list in plain style – even on iPhone
Hi everyone, I’m building an iOS app that originally targeted iPhone using NavigationStack. Now I’m adapting it for iPad and switched to using NavigationSplitView to support a three-column layout. The structure looks like this: NavigationSplitView { A // Sidebar } content: { B // Middle column – this shows a list } detail: { C // Detail view } The issue is with the list shown in view B (the content column). It appears completely unstyled, as if it’s using .listStyle(.plain) — with no background material, and a very flat look. I can understand that this might be intentional on iPad to visually distinguish the three columns. However, the problem is that this same unstyled list also appears on iPhone, even though iPhone only shows a single column view at a time! I tried explicitly setting .listStyle(.insetGrouped) or .listStyle(.grouped) on the list in view B, but it makes no difference. When I go back to NavigationStack, the list in B is styled properly, just as expected — but then I lose the enhanced
0
0
86
Aug ’25
NavigationSplitView content column renders list in plain style – even on iPhone
Hi everyone, I’m building an iOS app that originally targeted iPhone using NavigationStack. Now I’m adapting it for iPad and switched to using NavigationSplitView to support a three-column layout. The structure looks like this: NavigationSplitView { A // Sidebar } content: { B // Middle column – this shows a list } detail: { C // Detail view } The issue is with the list shown in view B (the content column). It appears completely unstyled, as if it’s using .listStyle(.plain) — with no background material, no grouped sections, and a very flat look. I can understand that this might be intentional on iPad to visually distinguish the three columns. However, the problem is that this same unstyled list also appears on iPhone, even though iPhone only shows a single column view at a time! I tried explicitly setting .listStyle(.insetGrouped) or .listStyle(.grouped) on the list in view B, but it makes no difference. When I go back to NavigationStack, the list in B is styled properly, just as expected —
0
0
82
Aug ’25
Device Activity Privacy Restrictions
Hey there! So, I'm trying to see what I'm able to do with the Device Activity Report Extension, and I have a few questions about the following quote: To protect the user’s privacy, your extension runs in a sandbox. This sandbox prevents your extension from making network requests or moving sensitive content outside the extension’s address space. In particular, what constitutes the address space for this extension? Can I save data to a UserDefaults object that only the extension can access? (Apps like Opal allow the user to label apps as distracting and non-distracting, and I'm wondering how they do that!) From what I've read, I believe it cannot write to a shared app group or model (and I just want to confirm this) It also seems that there's nothing preventing it from reading data from the main app, so I'm just wondering if it's able to read data from an app group or model with no problem. Thanks in advance!
0
0
148
Aug ’25
Reply to Xcode Automatic Signing Fails with App Groups - Provisioning profile "Mac Team Provisioning Profile : com.example.testapp.mobile" doesn't support the App Groups capability.
App groups have been evolving a lot recently, primarily to bring the macOS and iOS stories into alignment. See App Groups: macOS vs iOS: Working Towards Harmony for all the backstory. Your app group ID, $(TeamIdentifierPrefix)group.com.example.testapp.mobile, is weird. It seems be a macOS-style ID, with the Team ID prefix, but then it also kinda uses the iOS-style format. I recommend that you use one or the other. Actually, I’ll take that one step further: I recommend that you you use an iOS-style app group ID unless you have a really good reason to stick with a macOS-style one [1]. As to what’s going on here, it’s hard to say. I tried looking up the state of com.example.testapp.mobile but AFAICT that’s not your real bundle ID, but rather a placeholder you used for this post. What version of Xcode are you using? If you’re using anything older than Xcode 16.4, I recommend that you upgrade to that. Xcode 16.4 is aware of this app group harmonisation effort. And once
Aug ’25
Can custom user images be displayed as backgrounds on Lock Screen?
Background I'm developing an iOS app with Live Activities that allows users to select custom background images. While these custom images display correctly in widgets, they fail to appear in Live Activities on both Lock Screen and Dynamic Island, despite successful image loading and data transfer. Technical Details iOS Version: Testing on iOS 17.2+ Image Storage: Using App Group shared container for image sharing between main app and widget extension Image Loading: Successfully confirmed via logs - images load correctly with proper dimensions UI Framework: SwiftUI with ActivityKit What Works ✅ Custom images display correctly in Home Screen widgets ✅ Built-in bundled images work in Live Activities ✅ Image data successfully transfers via App Group shared container ✅ Image loading logs show successful UIImage creation with correct dimensions What Doesn't Work ❌ Custom user images don't display in Live Activities (Lock Screen) ❌ Custom user images don't display in Dynamic Island ❌ Images appear
0
0
137
Aug ’25