Hello Apple Developer Community, We are developing a full-tunnel VPN app for macOS that utilizes a packet tunnel network system extension (via NEPacketTunnelProvider). We're committed to using a system extension for this purpose, as it aligns with our requirements for system-wide tunneling. The app is sandboxed and intended for distribution on the Mac App Store. Here's the workflow: The app (running in user context) downloads a VPN profile from our server. It generates private keys, appends them to the profile, and attempts to save this enhanced profile securely in the keychain. The packet tunnel system extension (running in root context) needs to access this profile, including the private keys, to establish the VPN connection. We've encountered challenges in securely sharing this data across the user-root boundary due to sandbox restrictions and keychain access limitations. Here's what we've tried so far, along with the issues: Writing from the App to the System Keychain: Attempted to store the profile in th
Search results for
A Summary of the WWDC25 Group Lab
10,092 results found
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Ah, that's frustrating. It would be helpful if you could file a feedback with a CPU sample of AssetCatalogSimulatorAgent You can get a CPU sample either from activity monitor, or by running this in the terminal just before building. sample AssetCatalogSimulatorAgent 120 -wait Does the performance of the build change if you remove all of the groups and layers from the icon?
Topic:
Developer Tools & Services
SubTopic:
Xcode
Tags:
As @mungbeans mentioned, not all extensions can write to an App Group container. A keyboard extension with no full access is an example of that kind. The other possibility is you intentionally create your model container with readonly mode by using init(_:schema:isStoredInMemoryOnly:allowsSave:groupContainer:cloudKitDatabase:) with allowsSave being set to false. It doesn't look like the case though, based on your description. Best, —— Ziqiao Chen Worldwide Developer Relations.
Topic:
App & System Services
SubTopic:
StoreKit
Tags:
📢 Complaint: Severe “System Data” ballooning bug on iPad Pro M4 (iPadOS 17 → 18.6.2). “System Data” (formerly “Other”) grows abnormally from ~3 GB → 70–90 GB in just months. Deleting files, exporting PDFs, uninstalling apps, or clearing trash does not free space. The only “fix” Apple Support suggests is erase & restore — which works temporarily but always comes back within 1–3 months. 🔎 Problem Summary • Growth: 3 GB → 40 GB (1 month) → 58 GB (2 months) → 70 GB+ (3 months). • After erase: drops temporarily, then climbs again. • Multiple resets done — issue always returns. • Confirmed across users (see YouTube: ajXyDCLoLOA, cnOGeI8X-Fc). • Apple Support Case IDs filed (master: 102671138516). • Feedback Assistant report: FB19812484. 📝 Steps to Reproduce (consistent) 1. GoodNotes – Export/merge PDFs, sync large files → System Data grows even after clearing trash. 2. DocScanner (Lufick) – Import + delete scans → cache remains. 3. Apple Scan to PDF / Files – Scan 24 images, merge, delete originals
I have an iOS app with a main target and an app extension. I want the app extension to write data to the SwiftData in App Groups, while the main target reads the data. However, currently, the app extension only has permission to read data, not to write it.Is the issue due to my incorrect configuration or an Apple-imposed restriction?
I've been exploring the resources from WWDC25 Session 280: Code-along: Cook up a rich text experience in SwiftUI with AttributedString and the SwiftUI documentation on Building rich SwiftUI text experiences. After spending some time experimenting and trying to implement these features with these APIs on iOS26 , I’ve run into a specific question. Is there a way to programmatically trigger the Format Sheet directly—for example, from a custom button—rather than requiring the user to go through the multi-step process of selecting text, opening the context menu, tapping Format, and then selecting More? I’d like to provide a more streamlined editing experience in my app. Any guidance would be greatly appreciated!
Nice to know that the original issue goes away in the latest Beta. Regarding the crash triggered by the access to Item.children, if you can provide a runnable code snippet to demo the issue, I'll take another look. You have mentioned a few classes with inheritance, and so I think it is probably worth mentioning that over-using inheritance may impact your app's performance negatively. Concretely, with today's default store (DefaultStore), all the types in an inheritance hierarchy are persisted with one single table in SQLite. If your inheritance hierarchy has many classes, the table (columns and data) can be quite big, which can slow down the performance of fetching and inserting data. That being said, when adopting SwiftData inheritance, you might examine if that is a right use case. This WWDC25 session(starting from around 4:25) covers this topic a bit. You can take a look, if haven't yet. Best, —— Ziqiao Chen Worldwide Developer Relations.
Topic:
App & System Services
SubTopic:
iCloud & Data
Tags:
This is a problem because if I have a group of tasks to complete on one BGContinuedProcessingTask, the interface won't update gradually as the tasks are completed, but only in steps as each task completes and until the first one does it shows a spinning circle. Is this intended? Or could it be a bug? I think this is a case of neither and both. That is, I don't think what you’re seeing is a design choice, and not due to any accident or mistake. However, I also think it's very possible that this is something that could be tweaked and improved on. Two broad points I'd make here: First off, any time you feel like something isn't working the way you want/expect, it's always worth filing a bug on, particularly when you're dealing with a new API. I won't promise that anything will change— like any large-scale engineering organization, properly prioritizing work is a very complicated task and that sometimes means that things don't change or get fixed when they should. However, any change that happens ALWAYS
Topic:
App & System Services
SubTopic:
Processes & Concurrency
Tags:
Hi all, Sharing a reproducible UIKit issue I’m seeing across multiple iPadOS 26 betas, with a tiny sample attached and a short video. Short video https://youtu.be/QekYNnHsfYk Tiny project https://github.com/yoasha/ListSwipeOvershootReproSwift Summary In a UISplitViewController (.doubleColumn), a UICollectionView using list layout shows a large leading-swipe overshoot when the split view is expanded (isCollapsed == false). The cell content translates roughly 3–4× the action width. Repros with appearance = .plain and .grouped Does not repro with .insetGrouped Independent of trailing provider (issue persists when trailing provider is nil) Collapsed split (compact width) behaves correctly Environment Devices: iPad Air (3rd gen), iPadOS 26.0 (23A5326a) → Repro Simulators: iPad Pro 11-inch (M4), iPadOS 26.0 beta 6 → Repro Also tested on device: iPadOS 26 beta 5, 6, 7, 8 Xcode: 26.0 beta 6 (17A5305f) Steps to reproduce Launch the sample; ensure the split is expanded (isCollapsed == false). In the s
Hello, I'm posting in this thread rather than starting a new one so all the information is consolidated... I also have some doubts about BGContinuedProcessingTask... My main problem is with the Progress object. I've observed that if I add children Progress objects to the object provided by the task, the popup that shows up with the task on the device doesn't update the progress interface until the Progress object has completed at least one unit. It doesn't seem to be using the fractionCompleted property and instead it seems to use the number of completed units. This is a problem because if I have a group of tasks to complete on one BGContinuedProcessingTask, the interface won't update gradually as the tasks are completed, but only in steps as each task completes and until the first one does it shows a spinning circle. Is this intended? or could it be a bug? Also, as the original poster said, the actual BGContinuedProcessingTask object is not sendable, so when I start an async Task there's no way to p
Topic:
App & System Services
SubTopic:
Processes & Concurrency
Tags:
Hi, In the WWDC25 session Elevate an app with Swift concurrency (timestamps: 8:04 and later), the StickerViewModel is shown annotated with @Observable but not @MainActor. The narration mentions that updates happen on the main thread, but that guarantee is left implicit in the calling code. In Swift 6, though, one of the major benefits is stronger compiler enforcement against data races and isolation rules. If a view model were also annotated with @MainActor, then the compiler could enforce that observable state is only updated on the main actor, preventing accidental background mutations or updates that can cause data races between nonisolated and main actor-isolated uses. Since @Observable already signals that state changes are intended to be observed (and in practice, usually by views), it seems natural that such types should also be main-actor isolated. Otherwise, we’re left with an implicit expectation that updates will always come from the main thread, but without the compiler’s help in enforcin
I shared a similar concern on Reddit and got a reply suggesting there may be an unpublished API. Note that I went one better than filing. Feedback. My Apple Fitness+ data, is part of my Health Data. As such this is not a new feature request but a data access issue. I callled Apple Support they agreed , telling me I was not the first complaining about this. I was issued a case number. You can find my Reddit thread using my case number. Here’s my post: I’ve been using Fitness+ for years and only just realized my HealthKit data is incomplete. Calories/duration sync fine, but instructor, episode number, and workout subtype (Upper/Lower/Total) are missing. That info is clearly stored (it shows up in the Fitness+ Summary tab) but Apple withholds it from HealthKit and data exports. I called Apple Support and they confirmed I’m not the first person to ask. They gave me a case number: 102672392454. 👉 If this bugs you too, please file feedback here: apple.com/feedback or call support. The more users who push,
Topic:
App & System Services
SubTopic:
Health & Fitness
Tags:
There are some subtle things that determine if a change on a SwiftData model is observable, as discussed in this WWDC25 session (starting from around 14:00.) Your code snippet doesn't show where the folder in FolderView is from and how you add a new item. If you can share a runnable code snippet that demonstrates the issue, I'd be able to figure out why folder doesn't trigger an update. Best, —— Ziqiao Chen Worldwide Developer Relations.
Topic:
UI Frameworks
SubTopic:
SwiftUI
Tags:
I did some of investigation of this issue because I ran into the same problem when trying to convert an old project from groups to folders. I discovered what is happening is that Xcode 16 changes the model's current version to the last one alphabetically. I was able to reproduce it this way: Create a brand new, folder-based, Xcode project. Add an xcdatamodeld with one entity. Add a new model version and name it a. Make it current. Quit Xcode. Relaunch Xcode. Expected result: The a model version should still be current. Actual result: The original model version is current. I was able to reproduce with Xcode 16.2 and 16.4. It appears to be fixed in Xcode 26 beta 6. Based on these steps, one workaround appears to be to name the model versions alphabetically. Another workaround is to keep the xcdatamodeld file in a group, not a folder. And of course if you can switch to Xcode 26, then you don't need to workarounds above.
Topic:
Developer Tools & Services
SubTopic:
Xcode
Tags:
Hi everyone, I'm totally new to this and am just having fun making an app for myself. I'm attempting to get a broadcastupload extension working, but whatever i do i cant get the replaykit to work. I keep getting this error in xcode: Provisioning profile Project v6 Broadcast Upload Development doesn't include the com.apple.developer.replaykit.broadcast entitlement. What I've tried: Created separate App IDs for each target (Explicit App IDs, not Wildcard) Enabled App Groups capability on all three App IDs in Apple Developer Portal Selected the correct App Group for all App IDs Added App Groups capability in Xcode for all targets and all build configurations Created entitlements file with com.apple.developer.replaykit.broadcast: true for Broadcast Upload extension Recreated provisioning profiles multiple times Used manual code signing with correct certificates I'm completely lost. I reached out directly to apple developer support and they just told me to come here... Any help would be