Hello, I’m seeing a layout issue where the system window controls overlap the navigation bar’s right-side buttons when the app window is resized on iPadOS 26. Environment Xcode: 16.4 Simulator: iPadOS 26.0, device profile iPad Pro 13-inch Physical device: iPad updated to iPadOS 26 (same behavior) UI stack: UIKit + Storyboards (no SwiftUI) App structure: Root UINavigationController Summary Since iPadOS 26 introduced freely resizable app windows, the system’s window management controls (close/minimize/resize at the top-right) begin to overlap the navigation bar buttons as the window size becomes smaller. At maximum window size there’s no issue. Additionally, the navigation bar buttons themselves appear to scale down visually when the window gets smaller. Steps to Reproduce Build with Xcode 16.4 and run on iPadOS 26.0 (simulator or device). Open a screen embedded in a UINavigationController with right-side bar button items. Resize the app window to a smaller size. Observe the top-right system window con
Search results for
A Summary of the WWDC25 Group Lab
10,367 results found
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Hello - When offering in-app purchase subscriptions, it is common to offer different subscription periods for the same level of access - where the only differences are price and duration of subscriptions (e.g. monthly, quarterly, and annual.) If the access entitled by various subscriptions is the same (that is, a monthly subscriber has access to all of the same content, features, etc. as an annual subscriber), it is best practice to assign all of those subscription products to the same subscription group in App Store Connect, as documented here - including the assignment of subscription levels. This will ensure correct handling of upgrades, crossgrades, and downgrades, as documented here, and prevent customers from having more than one active subscription at a time. While developers can control how and when to merchandise subscription products in their app, it is not possible to restrict customers from switching between available products in the same subscription group from their Manage Subs
Topic:
App & System Services
SubTopic:
StoreKit
Tags:
The Advanced Commerce API utilizes two generic product identifiers that you configure within App Store Connect. A Consumable Product Type, which can be utilized for all one-time purchase products. An Auto-Renewable Subscription, which represents all your products in your catalog (also known as SKU). The reporting through App Store Connect provides the SKU. The SKU are available in Summary Sales Report & Financial Report. Note: A SKU can represent the in-app purchase product that you offer in the app. Therefore, ensure that you provide the identifier of the product that you offer customers to purchase.
Topic:
App & System Services
SubTopic:
StoreKit
Tags:
Hello - First, to answer the question you asked in the video: how is it possible for subscribers to change from one plan to another? We can see that you have set up one subscription group with ten different products - eight of which are currently Ready for Sale (active.) When a customer subscribes to any product, they can at any time switch to a different product in the same group as documented here. See attached screenshot specific to your app and its available products. If your app is not presenting upgrade/downgrade/crossgrade options, then customers are switching from their Manage Subscriptions page. Any changes from one subscription to another can only be completed by the customer. Developers must ensure that the ordering and grouping of individual subscription products within a subscription group is addressed to meet their business needs, as documented here, under the section titled Assign subscription levels. This setup is completed in App Store Connect. Please let u
Topic:
App & System Services
SubTopic:
StoreKit
Tags:
We’ve been approved for the Advanced Commerce API and are setting up the generic product identifiers per the guide: https://developer.apple.com/documentation/advancedcommerceapi/setting-up-your-project-for-advanced-commerce#Set-up-generic-product-identifiers We have multiple auto-renewable subscriptions (for simplicity: Product 1, Product 2, etc.). We created a new subscription group for Advanced Commerce and are about to add the subscription(s) inside that group. Should we create one auto-renewable subscription (generic, e.g. subscription.ac) to represent all of our subscriptions, or one generic per product family (e.g., product1.ac, product2.ac, …)? If the answer depends on whether subscribers can hold multiple products simultaneously, please advise which structure supports that (e.g., separate groups). Reporting identifiers / segmentation: In Sales and Trends and Payments & Financial Reports, which identifier(s) will appear after migration: the legacy StoreKit product_id, the
Topic:
App & System Services
SubTopic:
StoreKit
Tags:
Subscriptions
In-App Purchase
Advanced Commerce API
This is a topic that’s come up a few times on the forums, so I thought I’d write up a summary of the issues I’m aware of. If you have questions or comments, start a new thread in the App & System Services > Networking subtopic and tag it with Network Extension. That way I’ll be sure to see it go by. Share and Enjoy — Quinn “The Eskimo!” @ Developer Technical Support @ Apple let myEmail = eskimo + 1 + @ + apple.com Network Extension Provider Packaging There are two ways to package a network extension provider: App extension ( appex ) System extension ( sysex ) Different provider types support different packaging on different platforms. See TN3134 Network Extension provider deployment for the details. Some providers, most notably packet tunnel providers on macOS, support both appex and sysex packaging. Sysex packaging has a number of advantages: It supports direct distribution, using Developer ID signing. It better matches the networking stack on macOS. An appex is tied to the logged in user, wh
Thank you. Setting preferredPlacement to fixed was the missing piece. I already had allowsHiding set to false and I’m not using any tab groups. The Edit button no longer appears in the sidebar. But I have discovered an iOS 26 (and iOS 18) bug in the process. I need to file a bug report but here’s the issue. I present the tab bar controller as a modal view controller on an iPad. If I resize the app window from full screen to a size that is horizontally compact while the tab bar controller is in view, the tab bar controller of course changes from showing a sidebar to showing an old style tab bar on the bottom with a More tab. Selecting the More tab now shows an Edit button. But only in this case. If the tab bar controller is presented after the app window is made horizontally compact, then the More tab does not show the Edit button.
Topic:
UI Frameworks
SubTopic:
UIKit
Tags:
The 'Edit' button will show up in the sidebar as long as editing is supported in UITabBarController for the current set of tabs. Editing is supported if any of the following are true: Any tab has a customizable preferredPlacement (i.e. not .fixed or .pinned) If a tab can be hidden: allowsHiding = true If a tab group can be reordered: allowsReordering = true By default , the preferredPlacement is automatic which does support editing. Set it to .fixed to disable customization for them.
Topic:
UI Frameworks
SubTopic:
UIKit
Tags:
Log Comparison Details for Bug Report Detailed Log Analysis: iOS 18.4 vs iOS 26 RC Complete Test Scenario Log Comparison Test Case: Type あ → Press Enter → Type あ → Delete → Type A iOS 18.4 / Xcode 16 (Correct Behavior) // Step 1: Type first あ === stringRange: 0[any]..<0[any], currentText: , replacementText: a changedText: a, allowChange: true === // Note: IME shows a first, then converts to あ // Step 2: IME converts a to あ === stringRange: 0[utf16]..<1[utf16], currentText: あ, replacementText: あ changedText: あ, allowChange: true === // Result: Text = あ, Count = 1 ✓ // Step 3: Press Enter (No additional delegate call - composition confirmed correctly) // Result: Text = あ, Count = 1 ✓ // Step 4: Delete あ === stringRange: 0[utf16]..<1[utf16], currentText: あ, replacementText: changedText: , allowChange: true === // Result: Text = , Count = 0 ✓ // Step 5: Type A === stringRange: 0[any]..<0[any], currentText: , replacementText: A changedText: A, allowChange: true === // Result: Text = A, Count = 1 ✓ Fina
Topic:
UI Frameworks
SubTopic:
UIKit
Tags:
Here's what we said in WWDC25 Platforms State of the Union: As you evaluate your app's UI and the time you need to adopt the new design, we're providing an option to continue to use your app's current design with Xcode 26. We intend this option to be removed in the next major release. — Ed Ford, DTS Engineer
Topic:
UI Frameworks
SubTopic:
UIKit
Tags:
I'm having a crash on an app that plays videos when the users activates close captions. I was able to replicate the issue on an empty project. The crash happens when the AVPlayerLayer is used to instantiate an AVPictureInPictureController These are the example project where I tested the crash: struct ContentView: View { var body: some View { VStack { VideoPlaylistView() } .frame(maxWidth: .infinity, maxHeight: .infinity) .background(Color.black.ignoresSafeArea()) } } class VideoPlaylistViewModel: ObservableObject { // Test with other videos var player: AVPlayer? = AVPlayer(url: URL(string:https://d2ufudlfb4rsg4.cloudfront.net/newsnation/WIpkLz23h/adaptive/WIpkLz23h_master.m3u8)!) } struct VideoPlaylistView: View { @StateObject var viewModel = VideoPlaylistViewModel() var body: some View { ScrollView { VideoCellView(player: viewModel.player) .onAppear { viewModel.player?.play() } } .scrollTargetBehavior(.paging) .ignoresSafeArea() } } struct VideoCellView: View { let player: AVPlayer? @State var isCCEnabled: B
You could try adjusting the edge effect using UIScrollEdgeEffect and specifying a different style. That said, starting in iOS 26, the recommendation is to reduce your use of custom backgrounds in navigation elements and controls. Any custom backgrounds and appearances you use in the navigation bar might overlay or interfere with Liquid Glass or other effects that the system provides, such as the scroll edge effect. To learn how to update your app to adopt Liquid Glass, see the following resources: Adopting Liquid Glass WWDC25 session 356: Get to know the new design system WWDC25 session 284: Build a UIKit app with the new design.
Topic:
UI Frameworks
SubTopic:
UIKit
This is a customer setup, and we are unable to reproduce the issue locally in our lab. The customer is experiencing unusual behavior they report that VPN performance is fine when connecting to a nearby VPN server, but it slows down when connecting to a server in a distant location. We have asked them to check their network and infrastructure on their end, as we believe this may not be a VPN issue, they are looking into it. For the first issue where the VPN fails, our investigation suggests that the socket enters a bad state once the device is locked and extension goes to sleep. It is neither timing out nor sending data, which indicates the socket enters a bad state and the resource is not accessible. Note: Both issues are not reproducible on iOS 18.
Topic:
App & System Services
SubTopic:
Networking
Tags:
Problem Summary Apple's provisioning servers are not generating the com.apple.developer.storekit entitlement for App ID com.driftnotes.app (Team ID: 43Y6AG5NPY), making it impossible to build iOS apps for physical devices despite all configurations being correct. Environment macOS: 15.3.1 (24D70) Xcode: 16.1 (xcode-select version 2409) Flutter: 3.35.2 • channel stable Account: Individual Developer (Kazakhstan) Bundle ID: com.driftnotes.app Team ID: 43Y6AG5NPY Error Message Error (Xcode): Provisioning profile iOS Team Provisioning Profile: com.driftnotes.app doesn't include the com.apple.developer.storekit entitlement. /Users/vyacheslavkuzin/Desktop/FlutterProjects/DriftNotesDart/ios/Runner.xcodeproj Steps to Reproduce Configure App ID with In-App Purchase capability (✅ verified in Developer Portal) Add In-App Purchase capability in Xcode project (✅ done) Configure entitlements file with StoreKit keys (✅ done) Enable automatic signing in Xcode (✅ done) Run: flutter build ios --release Build completes
Topic:
App & System Services
SubTopic:
StoreKit
There is a way to tell different views that they should be part of the same liquid glass group. i don't remember how it's called exactly and if it will help but you could give it a shot. Apple talked about that API in one of the WWDC videos