Apple dropped the Xcode 26.5 beta at the end of March 2026, bundled with updated SDKs for iOS/iPadOS 26.5, macOS Tahoe 26.5, and an unusually deep Safari update. While it's not a headline release like Xcode 26.0, it carries some genuinely useful additions — especially if your app monetizes via subscriptions.
Here's a practical rundown of what changed and what you should care about.
StoreKit Gets Serious About Subscription Billing Plans
The biggest developer-facing change in Xcode 26.5 is a set of new StoreKit APIs designed around monthly subscriptions with 12-month commitment billing plans — a billing configuration Apple introduced in App Store Connect.
New APIs at a Glance
SubscriptionInfo.pricingTerms (PricingTerms model)
You can now programmatically read the pricing terms for a subscription that uses a monthly-with-12-month-commitment plan. This means you no longer have to hardcode pricing details in your UI — you can pull them live from StoreKit.
if let terms = product.subscription?.pricingTerms {
// Access structured pricing info for monthly commitment plans
print(terms)
}
billingPlanType PurchaseOption
When initiating a purchase, you can now specify which billing plan type to use for monthly commitment subscriptions. This gives you precise control over the purchase flow without relying solely on App Store Connect configurations.
let options: Set<Product.PurchaseOption> = [.billingPlanType(.monthly)]
let result = try await product.purchase(options: options)
CommitmentInfo on Transaction and SubscriptionRenewalInfo
After a user subscribes, you can read their entitlement metadata via the new CommitmentInfo data model. This is attached to both Transaction and SubscriptionRenewalInfo, so you can surface commitment-related status in your app's account or subscription management screens.
preferredSubscriptionPricingTerms(_:) — SwiftUI Merchandising
If you import both StoreKit and SwiftUI, you now have access to a new built-in view modifier that lets you merchandise monthly commitment plans using Apple's built-in styles. This is the fastest path to a polished subscription paywall that automatically adapts to Apple's design language.
ProductView(id: "com.yourapp.pro.monthly") {
// Your custom paywall content
}
.preferredSubscriptionPricingTerms(.prominent)
Why This Matters
If you're running a subscription app and want to offer yearly value at a monthly price point (the classic "monthly billed annually" model), these APIs give you the infrastructure to build a first-class experience — including transparent pricing display, correct transaction modeling, and native SwiftUI merchandising.
StoreKit Known Issue: SKTestSession in Unit Tests
There's one significant known issue to flag before you upgrade your CI pipeline.
SKTestSession cannot use the selected StoreKit configuration during unit tests, causing test actions to fail. (Feedback: FB22237318)
Workaround:
- Build and run the app on device using the same StoreKit configuration as your test
- Close the app
- Run the unit test using
SKTestSessionwithout changing any configuration settings
This allows the configuration to persist on-device before the test begins. It's a clunky workaround — save yourself the confusion and add a comment in your test setup code until Apple ships a fix.
Safari 26.5: A Big Web Update
This beta includes an unusually large Safari update. If you build web views, hybrid apps, or PWAs, there's a lot to go through.
New CSS & Web Features
-
:openpseudo-class — Now supported on<details>,<dialog>,<select>, and<input>elements. This unlocks native CSS-only styling for open/closed states without JavaScript. -
color-interpolationon SVG gradients — Linear RGB color space interpolation is now available for SVG gradients, giving you more accurate color blending. -
sourceproperty onToggleEvent— Identifies which element triggered a popover toggle, making it much easier to manage complex popover hierarchies.
Notable Bug Fixes
Scroll-Driven Animations
Multiple fixes landed here: animation timelines now pause correctly when animation-play-state: paused is set dynamically, and view timeline animations near 0% and 100% thresholds report accurate progress values. If you've been battling weird scroll animation behavior, this update may resolve it without any code changes.
Layout & Rendering
- Grid and flex layouts no longer cause position shifts at certain zoom levels
- Images inside transformed containers are now properly centered
- Pinch-to-zoom no longer causes content to jump or disappear on some websites
- Absolutely positioned elements inside block-in-inline containers no longer incorrectly overlap adjacent content
Font Matching
Fixed a bug where @font-face rules with different styles could fall back to glyphs from other faces in the same family instead of moving to the next family. If you've had unexplained font rendering inconsistencies, this is likely the fix.
IndexedDB
A critical bug was fixed where IndexedDB connections could become permanently broken until the page was reloaded. Also fixed: document.hasStorageAccess() could return a Promise that never resolved.
Forms
A readonly date <input> could still be edited via keyboard using the date picker — that's now fixed.
iOS & iPadOS 26.5: Platform Bug Fix
Beyond the StoreKit additions, iOS 26.5 includes one resolved issue worth noting:
Unity and Kaleidoscope wallpapers could fail to install or could not be removed from the Wallpaper Gallery. That's now fixed — minor, but it's the kind of polish bug that triggers App Store reviews if your app touches wallpaper features.
SDK Compatibility Reminder
Xcode 26.5 bundles the updated SDKs for:
- iOS & iPadOS 26.5
- macOS Tahoe 26.5
These are beta SDKs. As a reminder from Apple's broader Xcode 26 release cycle — starting April 28, 2026, new apps and updates uploaded to App Store Connect must be built with iOS 26 SDK or later (and equivalents for tvOS, visionOS, and watchOS). Make sure your CI/CD is already on Xcode 26.
Summary: Should You Upgrade?
| Area | Change | Action Needed? |
|---|---|---|
| StoreKit | New subscription billing plan APIs | Relevant if you have commitment-plan subscriptions |
| StoreKitTest |
SKTestSession broken in unit tests |
Apply workaround in your test setup |
| Safari / WebKit | CSS :open, SVG color, layout/scroll fixes |
Test your web views |
| iOS 26.5 | Wallpaper install/remove fix | Minor, no action needed |
| macOS 26.5 | Same StoreKit additions as iOS | Relevant if you ship a Mac app with subscriptions |
Xcode 26.5 is a focused beta — not a massive feature drop, but the subscription billing APIs alone make it a worthwhile update for any monetized app. If you ship subscriptions, test against 26.5 as early as possible so you're ready when it hits stable.
*Source: Xcode 26.5 Beta Release Notes







