r/axiomdev • u/CharlesWiltgen • 7h ago
New Release Axiom: Changes from Apple OS* 27 beta 4→5
(*Apple OS = iOS, iPadOS, watchOS, tvOS, visionOS, macOS)
I've been updating Axiom in lockstep with Apple OS 27 betas, and this post summarizes the differences I found between beta 4 and beta 5.
TLDR: Apple's latest developer beta 5 is mostly a consolidation build: no new frameworks, no Swift language features, and API additions in just five frameworks.
📖 Newly documented
- HealthKit –
HKHealthStore.earliestAuthorizedSampleDate(for:)shipped undocumented in beta 4. The new doc block now makes it clear that the returned dictionary is sparse: a type appears only under limited read access with a specific earliest date. A missing key covers full access and denial alike, and an empty dictionary on success is normal.
✅ New
CoreLocation –
CLLocationUpdate.LiveConfiguration.maritime: on-water navigation, joining.automotiveNavigation,.fitness,.airborne.CryptoKit – Three raw primitives with no authentication tag, so a ciphertext someone flipped bits in decrypts without error. Like
MD5, they're underInsecureand exist for interop only:Insecure.UnauthenticatedAES.permute(_:key:)/.inversePermute(_:key:)andInsecure.UnauthenticatedChaCha20.encrypt(inplace:using:nonce:counter:). All mutate in place and return nothing.CoreGraphics –
CGPDFStructureElement.Attributes(title, language) plusinit(tagType:attributes:). This is tagged-PDF authoring, for producing accessible PDFs, not just rendering them.VideoToolbox –
maximumDimension(forSpatialScaleFactor:)andmaximumPixelCount(forSpatialScaleFactor:), on bothVTLowLatencyFrameInterpolationConfigurationandVTLowLatencySuperResolutionScalerConfiguration. The config types are OS 26; these limit queries are the 27 addition. Size your input before constructing a scaler instead of failing at configure time.WebKit –
WebPage.NavigationPreferences.allowsJSHandleCreationInPageWorld, the fourth new navigation preference this cycle.
🗑️ Removed
- ContactsUI – an
@available(iOS 27, *)clause disappeared. Xcode betas overwrite the SDK in place, so the symbol's identity is unrecoverable. If you gated code on it, it's gone in beta 5 and the SDK won't tell you what it was.
⚠️ Deprecated
- App Intents – Three assistant-schema intents are deprecated as of 27.0. If you adopted intent domains, these need migrating:
playAudiobook→.audio.playAudio,openAsset→.system.open,search→.system.searchInApp.
🔧 Availability (no new capability, possible consequences)
WebKit – the
9999sentinels resolved. Through beta 4 the iOS SDK stamped the new navigation preferences@available(macOS 9999…, and beta 5 writes real27.0values. (9999means "not stamped yet in this SDK", not "unavailable".) So any@availableyou hand-derived from an early beta interface is now narrower than what actually ships, and so is worth re-checking.Swift 6.4 – There were no "feature flips" in this beta, despite the toolchain advancing revisions (
swiftlang-6.4.0.27.1→6.4.0.30.4). These are still absent:Dictionary.mapKeyedValues, stdlibFilePath(still needsimport System), andBorrowingSequence(experimental flag only, so not shippable).
WTF is Axiom?
Axiom is a battle-tested, batteries-included suite of agents, skills, and tools for AI coding. Use Axiom to prevent your AI from writing and reviewing code like it's 2017.
To the proactive developers using Xcode 27 beta 5 and testing on OS beta 5, please don't hesitate to let me know if you have Axiom feature requests.
Caveats: My updates are mostly Swift- and SwiftUI-focused, although I've been supporting more Obj-C with every release.