Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
I'll give it 10 more minutes, but I was skeptical because The Verge didn't put the entire statement out. They didn't quote the spokesperson when they said Monday. Maybe the spokesperson said it will be released the week of Monday the 24th, and they misinterpreted that.

But it's rare we get second beta exactly 2 weeks later
 
It’s out yay
 

Attachments

  • IMG_7553.png
    IMG_7553.png
    220.6 KB · Views: 57
All the doubts didn’t age particularly well. I really don’t understand why everyone was so adamant. It’s not like this is a law of nature.
Because clearly a news site posting Information that would have been signed off at the highest level isn’t enough for some people.

Not to mention it followed a press release telling people that certain features won’t be present In the EU.

Again not enough for some people.
 
  • Like
Reactions: Kal Madda
All the doubts didn’t age particularly well. I really don’t understand why everyone was so adamant. It’s not like this is a law of nature.
To be fair, if a journalist is going to say an Apple spokesperson said something, they should quote it. Now I guess I have no reason to doubt them, but releasing a 2nd beta in 14 days isn't that common, especially for major releases
 
  • Like
Reactions: Pearsey
To be fair, if a journalist is going to say an Apple spokesperson said something, they should quote it. Now I guess I have no reason to doubt them, but releasing a 2nd beta in 14 days isn't that common, especially for major releases
They don’t need to quote him. They attributed the statement to him. And who knows, in the statement where Sainz told the Verge the release date, he may have also said things he asked them to embargo (such as later release dates). If so, they may not have been able to quote him.

Finally, there is nothing common about iOS 18. I encourage eveyone to unlearn what you have learned, to paraphrase a small green guy from a galaxy far far away.

And with that, I am done with that topic.
 
  • Like
Reactions: Ansath
Because clearly a news site posting Information that would have been signed off at the highest level isn’t enough for some people.

Not to mention it followed a press release telling people that certain features won’t be present In the EU.

Again not enough for some people.

"Because clearly a news site posting Information that would have been signed off at the highest level isn’t enough for some people"

That doesn't mean anything actually. It's just the Editors call on all stories.
Working in Publishing for well over 15 years you would be shocked what I've seen and has been published.
 
SDK notes are lengthly

Accessibility

Resolved Issues

  • Fixed: User might be unable to play newly added background sounds (Fire and Night). (128898875)

App Intents

Known Issues

  • Parameterless @parameter and @Property wrappers might cause protocol conformance failures. (130219933)
    Workaround: Use parentheses on the property wrapper, e.g. @Parameter().

App Store

New Features

  • Starting in macOS 15, the App Store no longer needs twice the space free for an initial app download and install. The free space requirement will now be the final install size of the app, plus a small buffer. Developers should consider this change in any messaging they might have around size requirements. (123838124)

AppKit

New Features

  • Added API to request a window share when the user performs some action in the app. Presenter who starts a presentation while on a video conferencing call can now be given an option to share that presentation with other call participants. This addresses an issue where the presenter might not want to share all application windows, and might not have an affordance to start sharing the presentation once it has begun. The API allows one NSWindow to request sharing of another existing window, or of a window to be provided in a callback.
    public func requestSharingOfWindow(_ window: NSWindow) async throws

    public func requestSharingOfWindow(usingPreview image: NSImage, title: String) async throws

    (115318870)

Resolved Issues

  • Fixed: AppKit’s “warn once” logs have been moved to os_log_error() with a “WarnOnce” logging category, in order to increase their visibility to developers. (75992959)

Application Firewall

Deprecations

  • Application Firewall settings are no longer contained in a property list. If your app or workflow relies on changing Application Firewall settings by modifying /Library/Preferences/com.apple.alf.plist, then you need to make changes to use the socketfilterfw command line tool instead. (124405935)

ARKit

Resolved Issues

  • Fixed: iPhone and iPad apps on Apple Silicon Macs quit unexpectedly when initializing ARSkeletonDefinition. (128038936)

Backup

Resolved Issues

  • Fixed: Attempting to create a new encrypted Time Machine backup on a Time Capsule or other AFP file server will fail. (129082348)

Camera

Resolved Issues

  • Fixed: Using presenter overlay in full-size mode with a single shared window and reactions at the same time can result in glitching. (128586125)

CFNetwork

Resolved Issues

  • Fixed: CFNetworkExecuteProxyAutoConfigurationScript and CFNetworkExecuteProxyAutoConfigurationURL have always returned a +1 retained CF type object, but the function declarations were not decorated with the CF_RETURNS_RETAINED attribute until iOS 18, macOS 15, tvOS 18, and visionOS 2.
    For C-based languages, the clang static analyzer might note if the object is leaked. No source code changes are required, but they are encouraged to fix the leak.
    For Swift, this changes the return type of these functions from Unmanaged<> to the actual CF type returned, which will require a source change to fix when compiling with newer SDKs. However, Swift programs compiled with older SDKs will continue to work on the new OSes, though the returned CF type object will continue to leak as it did prior to this change. (126154509)

Core ML

Known Issues

  • Inference time for large Core ML models is slower than expected on a subset of M-series SOCs (e.g. M1, M1 max) on macOS. (129682801)

Core Spotlight

Resolved Issues

  • Fixed: iPhone and iPad apps on Apple Silicon Macs quit unexpectedly when invoking -[CSSearchableItemAttributeSet setActionIdentifiers:]. (128039095)

CoreML

Resolved Issues

  • Fixed: CoreML Model Deployment API is unavailable (MLModelCollection and MLModelCollectionEntry). Consider using Background Assets or NSURLSession instead. (122955353)

DirectoryService

Deprecations

  • DirectoryService plug-in support has been removed. Developers should migrate to Platform SSO. (119515880)

Finder

Resolved Issues

  • Fixed: Home Videos unexpectedly sync as Music Videos to iPod nano (7th generation). (94899119)

Foundation

Resolved Issues

  • Fixed: Date.ComponentsFormatStyle was incorrectly producing strings like "1m" with the Date.ComponentsFormatStyle.Style.condensedAbbreviated style and strings like "1min" with the .narrow style instead of the other way around. The behavior was corrected to match the behavior of Duration.UnitsFormatStyle.UnitWidth. (125790342)

FSKit

Known Issues

  • Users with connected MSDOS volumes might receive an intermittent error on system startup saying the internal MSDOS partition cannot be repaired and needs to be reformatted. (130011123)
    Workaround: Rebooting might resolve the issue. Do not attempt to reformat the volume.

Headphone Accommodations

Resolved Issues

  • Fixed: Headphone Accommodations won’t be applied to headphones. (128964879)

iCloud Drive

Resolved Issues

  • Fixed: Frequently changed files syncing over iCloud Drive will use more data than expected. (128771010)

iPhone Mirroring

Known Issues

  • Universal Clipboard might not to work during iPhone Mirroring. (128165996)

Logging

New Features

  • By default, the sudo command in macOS does not have logging enabled. To enable logging for sudo, simply remove the line Defaults !log_allowed from sudoers configuration file. (126771963)

Mac Catalyst

New Features

  • When building against the macOS 15.0 Catalyst SDK or newer, UIWindowScene systemFrame changes using UIWindowScene.GeometryPreferences.Mac can be animated by wrapping the request in the existing UIView animation API ( animate(withDuration duration:…) ). Mixing such systemFrame animations with animations of individual UIViews is not recommended - instead, rely on autolayout constraints to reposition scene contents during the systemFrame animation. (121456766)

Resolved Issues

  • Fixed: Starting with macOS 15.0, the activationState of all attached UIScenes in Mac Catalyst apps will now also be changed to UIScene.ActivationState.background when the machine and/or the attached displays go to sleep, as an indication that the scenes are not producing user-visible pixels. (104518600)
  • Fixed: When building against the macOS 15.0 Catalyst SDK or newer, the TrueValue and FalseValue for toggle switch elements (PSToggleSwitchSpecifier) in your Settings Bundle will be respected, when reading/writing User Defaults. (118947907) (FB13425114)

Maps

New Features

  • Introduced Place ID, a unique and persistent identifier. (129071038)
  • Added new resultTypes to MKLocalSearch.Request and additional PointofInterestCategory values. (129073725)
  • Introduced Place Card API to show Maps Place Card UI. (129073922)

Known Issues

  • The Place Card API fails to load place details. (128231815)
  • In searches that use MKLocalSearch.Request, the result type option physicalFeature is ignored. (128961972)
  • Conversion between a point in the map view and a physical location (CLLocationCoordinate2D) might be imprecise at high zoom levels. (129042241)

Music

Resolved Issues

  • Fixed: Artwork for the currently playing song might be incorrectly displayed in the Music window. (128688400)

Networking

Resolved Issues

  • Fixed: For apps linked on macOS 15 / iOS 18 or newer, the default User-Agent request header field value generated by URLSession now includes the unlocalized bundle name instead of the localized bundle name. (117380285)

Notifications

Resolved Issues

  • Fixed: Summaries will not be generated for notifications posted using deprecated APIs. (123735808)

Known Issues

  • User might be unable to snooze Calendar notifications. (128564243)

NSToolbar

New Features

  • The new -removeItemWithItemIdentifier: method allows removing an item with the specified itemIdentifier. Note that all items matching the specified identifier will be removed when using this method (i.e. specifying NSToolbarFlexibleSpaceItemIdentifier will remove all flexible space items). To remove only a single space item, use -removeItemAtIndex: instead. (2823286)
  • The NSToolbar.allowsDisplayModeCustomization property allows a toolbar to enable display mode customization independently of item customization. Some users have an easier time finding items when they are labeled so it’s important to support them with the choice of display modes. This property is enabled by default for apps linked on macOS 15.0 or later, otherwise it follows the value of allowsUserCustomization. Make sure to verify all your items provide labels using the NSToolbarItem.label property to support Icon and Text mode.
    Note that Text Only mode is omitted automatically when one or more items don’t provide sufficient menuFormRepresentations. (2858103)
  • NSToolbarItem gains a new hidden property. A hidden item will not be visible in the toolbar, but will be visible during user customization so that users can specify where the item should appear when it is shown. For apps that support multiple windows with synchronized toolbars (NSToolbars with shared identifiers), use the hidden property to display a particular item in one window but not another.
    Note that there is an important difference between an enabled item and a hidden item. Typically on macOS, a user interface element that does not currently apply will be disabled but remains visible (main menu items, context menu items, toolbar items). The introduction of this new hidden property does not indicate that toolbar items should be hidden when they don’t apply. An item should only be hidden in very special circumstances such as the Downloads button in Safari which only shows when there are downloads present, or the Displays popup button in Screen Sharing which is only visible when viewing a remote machine with multiple displays. (114109109)
  • When responding to an NSToolbarWillAddItemNotification the userInfoDictionary now contains a value specifying the item’s new index which can be accessed via the NSToolbarNewIndexKey. This value is only available on macOS 15.0 or later. (114661283)
  • The new itemIdentifiers property allows for easy access to an identifier-only representation of items in the toolbar which is useful when implementing NSToolbarDelegate methods such as -toolbar:itemIdentifier:canBeInsertedAtIndex:. Assigning a new array of itemIdentifiers will replace all items in the toolbar with the new configuration by doing the minimal amount of insert/remove operations necessary. This property is also key value observable. Note, set new values to this property with caution when the toolbar is customizable. The user might find it disruptive to have their curated items moved or removed unexpectedly. The new value will also replace any saved customization defaults. (115908180)

Deprecations

  • The -setConfigurationFromDictionary: and -configurationDictionary methods are now deprecated. The same values might be obtained from the itemIdentifiers, displayMode, and visible properties. (31540854)
  • The NSToolbarItem.allowsDuplicatesInToolbar property is now deprecated. The only items that are allowed to have shared identifiers are system space items. On apps linked against macOS 15.0 or later, an exception will be thrown if a new item is added to the toolbar when an item with that identifier already exists (excluding space items). (115908214)

Object Tracker

Known Issues

  • Training Object Tracker reference objects might fail without warning for unsupported USDZ inputs. (129721127)
    Workaround: Ensure there are no Cameras and no Lights in the USDZ model. Ensure that defaultPrim and metersPerUnit are properly authored in the USDZ metadata.

Photos

Resolved Issues

  • Fixed: Photos and videos might stop syncing via iCloud Photo Library. (128325085)

Platform

New Features

  • On Apple Silicon based devices with M3 or later, and A16 Bionic or later, the values returned by reading the CNTFRQ_EL0 and CNTVCT_EL0 registers have been updated to 1 GHz, instead of the prior value of 24 MHz. It is still recommended for apps to use libsystem APIs like mach_absolute_time() for timekeeping. Your app will not be impacted by this change if it uses Apple’s timekeeping APIs. For compatibility purposes, this change will only be visible when using the SDK associated with this release or later. On macOS, applications running inside a Virtualization.framework VM will continue to receive the legacy behavior. (84639494)

Power

Resolved Issues

  • Fixed: Users with default wallpaper (macOS Beta) on Intel laptops with an AMD GPU might see elevated battery drain, device temperatures, and fan noise. (128623427)

Quick Look

Deprecations

  • Support for deprecated Quick Look Generator plugins is being removed. To provide previews and thumbnails for your custom file types, migrate to Quick Look Preview Extension and Thumbnail Extension API. (116791365)

RealityKit

New Features

  • USD files which use Catmull-Clark subdivision now render using subdivision in RealityKit. Meshes which produce less than 35,000 patches can render using subdivision. This can increase memory consumption and reduce rendering performance. (129016034)
  • Virtual objects now render using the Display P3 color gamut. When using a DrawableQueue connected to a TextureResource with the .color semantic, render using the Display P3 color space. (129017592)

Resolved Issues

  • Fixed: Resolved an issue where iPhone and iPad apps on Apple Silicon Macs quit unexpectedly when using ObjectCaptureSession. (117112309)
  • Fixed: Using an Image 2D Array Shader Graph node in Reality Composer Pro might result in corruption or a system crash. (127122590)
  • Fixed: Physics simulation behavior is different from previous releases. (128435086)
  • Fixed: Emphasize actions are always additive and should be played with separateAnimatedValue set to true. (128622689)
  • Fixed: In the Swift 6 language mode, subclasses of the Entity class fail to compile. (128787131)
  • Fixed: The .trigger mode of CollisionComponent no longer generates CollisionEvents when both involved collision shapes use the .trigger mode. (129016567)

Known Issues

  • Reality files written by beta versions of RealityKit might not load in later versions. (128424173)
    Workaround: Only distribute Reality files written by released or release candidate versions of RealityKit.

Deprecations

  • In previous versions, the order of child entities was sometimes preserved. Now, the order of an Entity’s children might not be reliable and can change unexpectedly when any child is reparented. (129015381)

ScreenCaptureKit

New Features

  • Windows recorded using the new SCRecordingOutputConfiguration API will now have a new “Stop Recording This Window” menu item in the purple window menu to stop the window’s recording stream. (125112908)

Deprecations

  • Applications utilizing deprecated APIs for content capture such as CGDisplayStream & CGWindowListCreateImage can trigger system alerts indicating they might be able to collect detailed information about the user. Developers need to migrate to ScreenCaptureKit and SCContentSharingPicker. (120910350)

Security & Privacy

New Features

  • When attempting to change home directory of a user, dscl and dsimport will trigger privacy prompts. Previously this did not happen when a device was under MDM management. (121868524)

Setup Assistant

Resolved Issues

  • Fixed: FileVault pane is shown and is automatically enabled with recovery key when iCloud is signed in. (128770548)
  • Fixed: End of Setup Assistant might only show a blurred background with no text or buttons. (128771559)

Shortcuts

Resolved Issues

  • Fixed: The Shortcuts editor might offer some new actions that are not yet ready for use. If you save a shortcut with one of these actions, you might need to correct it after a future update with the corrected actions. (128841105)
  • Fixed: Some actions are missing from the Actions Drawer, but are still available for use. (128908702)

StoreKit

New Features

  • macOS now supports in-app Offer Code redemption. Use StoreKit Testing in Xcode to ensure your app responds correctly when customers redeem a Mac App Store Offer Code. (60096251)
  • The SubscriptionStoreView now supports custom control styles. To create a custom control style, declare a type that conforms to SubscriptionStoreControlStyle and implement makeBody(configuration:) method. (106819454)
  • New standard styles are available for laying out subscription store view controls with a compact height. Use pagedPicker and pagedProminentPicker for a platform appropriate paging effect, or compactPicker to place options in a horizontal stack. For watchOS, the new pagedPicker style is available for laying out SubscriptionStoreView controls with a compact height. (110286601)
  • Use types such as SubscriptionOptionGroup and SubscriptionPeriodGroupSet to declare a hierarchical structure for your SubscriptionStoreView. You can use the subscriptionStoreOptionGroupStyle(_:) to choose between presenting groups as a tab view or as navigation links. (110429924) (FB12264937)
  • The subscription status RenewalInfo object now supports new properties renewalPrice and currency to indicate the price at which the subscription will renew, and its currency. There is also a new offer property containing the information of the offer that will be applied to the next renewal, if there is any. This includes the offer ID, the offer type, and the payment mode. (114217892)
  • Finished consumables can now be included when using the Transaction APIs. Users can enable this feature by setting SKInAppPurchaseHistoryIncludesConsumables to true in app’s Info.plist. (115079880)
  • When configuring the control style for a SubscriptionStoreView, users can specify a placement for the controls using the subscriptionStoreControlStyle(_:placement:) view modifier. For tvOS, by default SubscriptionStoreView will place the controls trailing the marketing content. (115319543)
  • When building an app with Xcode 16, SubscriptionStoreView instances using the picker control style have an updated appearance. Use subscriptionStorePickerItemBackground(_:in:) to configure a different background color and shape for the picker items. (120558960)
  • Users can now use APIs like monthly or yearly to get common Product.SubscriptionPeriodvalues when comparing subscription periods. (122684230)

Known Issues

  • When using SubscriptionStorePicker within a container view, the bottom bar doesn’t work correctly. (117701666)
    Workaround: Return SubscriptionStorePicker as a top level view from makeBody(configuration:) method, instead of using it within a container.
  • The tab control in SusbcriptionStoreView might appear too wide when using StoreContent with the tabs option group style. (128567088)

Deprecations

  • The Original API for In-App Purchase is now deprecated, including: SKStoreReviewController, SKProduct, SKReceiptRefreshRequest, SKStorefront, SKPayment, SKRequest, SKProductsRequest, and SKProductDiscount. Please upgrade to StoreKit 2 for current APIs and future enhancements. (116600524)

Swift Charts

New Features

  • Plot math functions using LinePlot and AreaPlot. (117186178)
  • Visualize large datasets more efficiently using vectorized plot APIs such as PointPlot and RectanglePlot. (117469419)

Resolved Issues

  • Fixed: Rotated axis labels stretch to incorrect sizes. (106013386)
  • Fixed: Blur and shadow effects on marks might disappear during animation. (125493885)
  • Fixed: Glitches when animating a connected scatter plot made of LineMark. (127196185)
  • Fixed: Stroke styles can now be animated. (127465359)
  • Fixed: For function plots, the Y domain cannot be inferred automatically. (128877906)

SwiftUI

New Features

  • TabViews declared at the root of a Scene use a new style that hosts the tabs in the toolbar of the Scene. To achieve the prior behavior, apply a .tabViewStyle(.grouped) modifier:
    TabView { ... }.tabViewStyle(.grouped)

    (61410733)
  • Pickers now can have keyboard shortcuts attached to their individual options, by attaching the keyboardShortcut() modifier to the individual views in the picker content. (67682762) (FB8522629)
  • macOS clients can now get the macOS seamless scrolling appearance (like the Mail app) with Form and ScrollView. The seamless appearance was already available with List. Form gets a seamless appearance by default, opt out with .scrollContentBackground(.hidden). ScrollView is opt-in with .scrollContentBackground(.visible). See the docs of scrollContentBackgroundmore. (115563289)
  • Added the ability to request sharing of a newly opened window. A presenter who starts a presentation while on a video conferencing call can now be given an option to share that presentation with other call participants. This addresses an issue where the presenter might not want to share all application windows, and might not have an affordance to start sharing the presentation once it has begun. This is supported by a new ‘sharingBehavior’ argument to the ‘openWindow’ callable. If the sharingBehavior is requested, the window is opened and then shared if possible. If the sharingBehavioris required, the window is opened only if the sharing request succeeds. (115806658)
  • For ObservableObject subclasses used with @EnvironmentObject, @ObservedObject, and @StateObject, SwiftUI will now only call objectWillChange once per property per object instance. If you use @Published and the default ObservableObjectPublisher, you do not need to change anything. If you override objectWillChange, ensure the lifetime of the publisher you return matches the lifetime of its enclosing ObservableObject. (116197689)
  • SwiftUI sheets presented with the .sheet modifier now use .automatic sizing by default. .automatic resolves to .form or .form.fitted(horizontal:false, vertical: true)depending on the platform (see the symbol’s documentation for more). Platforms prior to iOS 18 and aligned releases used different, non-customizable default sheet sizing. iOS 17 and earlier used what is now called .page presentation sizing. macOS 14 and earlier used what is now called .fitted sizing. visionOS 1 used .fitted sizing. When linking apps against iOS 18 and aligned SDKs, audit your sheet presentations and pick the sizing best for you. Apply a .presentationSizing modifier to sheet contents:
    ContentView().sheet(isPresented: $present) {
    SheetView().presentationSizing(.form)
    }

    (117551515)
  • Types conforming to the View protocol, and other similar SwiftUI protocols, are now isolated to the @MainActor by default. SwiftUI’s runtime behavior with respect to actor isolation has not changed: SwiftUI views and similar types have always been evaluated on the main actor at runtime; this change improves compile-time diagnostics for potential data-race safety issues. To opt out of the new default main actor isolation and restore the previous default isolation, add the nonisolated keyword to methods and properties as needed, or move the protocol conformance to an extension to opt out the entire type. (120815051)
  • Text(_:format:) now automatically injects FormatStyle known to SwiftUI with the TimeZone and Calendar from the environment. (123662780)
  • @Entry macro can now be used to simplify declarations of custom EnvironmentValues, FocusedValues, Transaction, and ContainerValues properties. (125568810)
  • Added the ability to give a gesture a name, which gets surfaced to UIGestureRecognizers when establishing dependencies. (126527559)

Resolved Issues

  • Fixed: List on macOS 15 does not use NSTableView for showing non-outline content anymore. (77273697)
  • Fixed: The .tint view modifier can be used to customize the color of a TextField and TextEditortext insertion indicator and selection highlight on macOS, in addition to iOS and iPadOS. (85523172) (FB9766312)
  • Fixed: ForEach is now able to reclaim persistent state of unused child views. @State values created by views inside ForEach elements might be destroyed earlier than previously observed. (90667238)
  • Fixed: A DismissAction captured in the content or detail column of a NavigationSplitView now pops the implicit stack.
    For apps linked on or after iOS 18 and aligned releases, the button in the example below will now clear any selection in the sidebar List. Previously, this would fail silently on iOS, and close the window on macOS.
    NavigationSplitView {
    List(…)
    } detail: {
    DetailView()
    }

    struct DetailView: View {
    @Environment(\.dismiss) private var dismiss

    var body: some View {
    Button("Pop") { dismiss() }
    }
    }

    To retain the previous behavior, capture the DismissAction from the environment above the NavigationSplitView. (92522613)
  • Fixed: The scenePhase environment property and onAppear/onDisappear callbacks behave in a more predictable manner when using the Window and WindowGroup scene types. (94004478)
  • Fixed: Toolbar items with the principal placement will now be centered within the column they are applied to, when applied to a child of a NavigationSplitView. (96895871)
  • Fixed: Drag now supports file promises. Dragged items can be successfully dropped on a Finder window. (98710028) (FB11275037)
  • Fixed: Sliders now adapt appropriately when the environment’s layoutDirection is .rightToLeft. (99664719)
  • Fixed: The scenePhase environment property and onAppear/onDisappear callbacks now behave in a more predictable manner when using the window style for menu bar extras. (103575895)
  • Fixed an issue where searchable suggestions automatically filter out completion options that have a searchCompletion matching the current search text. Exact matches should be explicitly elided from the suggestions if desired. (107706241)
  • Fixed: View._printChanges now outputs key path of mutated observable properties instead of “@dependencies”. (111392797)
  • Fixed: Using the scrollClipDisabled() view modifier with a ScrollView with a LazyHStack or LazyVStack will use the containing window to determine what content the lazy stack should render. (111796138)
  • Fixed: macOS applications that previously linked with macOS 14 or older SDK had .swipeActionsapplied in reversed order for the trailing edge. For macOS 15 this behavior is fixed to align with .swipeActions on iOS (no longer reversed). This means the placement of buttons will follow the order in SwiftUI view construction, starting from the originating edge of swipe actions. (112891121) (FB12753741)
  • Fixed: SwiftUI will now assert that types conforming to the App protocol are value types. (113634782)
  • Fixed: When compiled with macOS 15 SDK, safeAreaInset applied on Table will now be used as the insets on the content view instead of the insets on Table itself. This aligns with how List behaves with safeAreaInset modifier attached. (114998212)
  • Fixed: In macOS, a Toggle of the .switch style now animates when its isOn state is changed programatically, matching the existing behavior on iOS and iPadOS. The animation can be disabled in all platforms by setting the transaction’s disablesAnimations property when updating a Toggle’s state. (115071023)
  • Fixed: Automatically updating Text created via Text(_:style:) or Text(timerInterval:pauseTime:countsDown:showsHours:) was causing increased battery drain when used in long running Live Activities. They now no longer animate changes in digits that signal the seconds value, keeping the power impact to a minimum. (115906895)
  • Fixed: SwiftUI no longer overrides a nil scrollTargetAnchor when using the scrollPosition(id:anchor:) modifier with a nil anchor. Specify a topLeading anchor to restore the previous behavior. (116124988)
  • Fixed: Writing .toolbar(.hidden, for: .windowToolbar) will result in different behaviors depending if the application was linked with macOS 15 SDK. On prior SDKs, .toolbar(.hidden, for: .windowToolbar) will hide the toolbar items. On new SDKs, the same writing will hide the entire toolbar including the window controls, the title, the toolbar items, and the toolbar background. To hide only toolbar items again, please write .toolbar(.hidden, for: .automatic). (116618483)
  • Fixed: Scroll views can now accept interaction in their content insets. (117928468)
  • Fixed: .navigationDestination(for:destination) modifiers inside of lazy containers are no longer evaluated. .navigationDestination(isPresented:destination:) and navigationDestination(item:destination) will log warning when used in lazy containers. Lazy containers in this context include: List, LazyVGrid, LazyHGrid, LazyHStack, LazyVStack Table, and TabView. If using navigationDestinations in lazy containers, users will see logged errors at runtime. Lift the modifiers higher up in the view hierarchy so they are outside of the lazy containers. Allowing navigation destination modifiers in lazy containers had two significant costs: (1) app navigation state could be undefined if a navigationDestination had been scrolled off screen (2) The navigation system had to explore all list contents to ensure navigation destinations remained up to date. Only allowing these modifiers outside of lazy containers improves app navigation reliability and performance. (117998693)
  • Fixed: When linked against the macOS 15 SDK, NSHostingView will no longer eagerly size its associated window immediately upon being added to it. (118586136)
  • Fixed: Views at the root of a NavigationStack will now always have matching onAppear and onDisappear callbacks. (119737698)
  • Fixed: The order of ShapeStyle compositing modifiers is now honored with respect to shadows. Previously in fill(style.blendMode(…).shadow(…)) the added blend mode would also apply to the shadow, that is no longer the case. The blend mode modifier must be added after the shadow modifier to affect it. As a consequence, the fill and any shadows added can now use different blend modes. Similar rules apply to ShapeStyle.opacity() except that outer opacity() modifiers multiply with inner modifiers, e.g. in fill(style.opacity(0.5).shadow(…).opacity(0.5)) the shadow is drawn with 50% opacity (of whatever style draws) and style itself draws with 25% opacity. (119738072)
  • Fixed: The meaning of the boolean value passed to the ContentTransition.numericText(countsDown:) function has been flipped for apps deployed prior to iOS 18 aligned releases. (120561508)
  • Fixed: Gestures might not pick up a modified content shape, such as when increasing the tappable area of a button. (120938385)
  • Fixed an issue when a sheet modifier is removed from a view hierarchy. This can happen if the sheetmodifier is in one branch of an if statement and the statement’s condition changes. For apps linked on or after iOS 18 and aligned releases, when a sheet modifier is completely removed from the hierarchy, the binding associated with the sheet will not be reset. (123742063)
  • Fixed: ForEach child views are no longer re-evaluated unconditionally, only when a parameter of the ForEach view might have changed. (123902210)
  • Fixed: Scroll views have improved behavior in right to left languages when the size of their content is smaller than the size of their container. (124008045)
  • Fixed: Elements along a NavigationPath or the data structure passed to the path parameter of NavigationStack(path:root:) are now compared more efficiently. Any side-effects from setting a path equal to itself are no longer reliable and likely will not occur. (125093883)
  • Fixed: SceneBuilder, WidgetBundleBuilder, TableColumnBuilder, TableRowBuilder, CommandsBuilder, and ToolbarContentBuilder now diagnose unsupported if #availableconditions at compile time instead of crashing at run time. (125379937)
  • Fixed: UIViewRepresentable, NSViewRepresentable and their view controller variants no longer create a layer with allowsGroupOpacity set to true. (125561916)
  • Fixed: In TabViews in the Mac idiom of Mac Catalyst, section actions in the sidebar sometimes do not appear. (125876373)
  • Fixed: In certain scenarios, Text(_:style:) produced suboptimal output, such as choosing an unnecessarily small calendar unit, showing zero values for large calendar units instead of omitting them, or showing seconds in Always On Display. (125885307)
  • Fixed: Text(timerInterval:pauseTime:countsDown:showsHours:) was redacting the seconds value even when the timer was paused, had not started yet, or had already reached its end. (125885429)
  • Fixed: When applying a searchable() modifier to a TabView, the tab view will reset the search state when switching tabs. (125926765)
  • Fixed: Swipe actions with icon-only labels now appear as expected on macOS. (Note: For improved accessibility, provide a text label even if it won’t be displayed. Use the .labelStyle(.iconOnly)view modifier to visually hide the label’s text.) (125939243)
  • Fixed: Resolved an issue where scroll views would not receive touches if placed near a tappable control. When rebuilt with the newer SDK, make sure that small buttons and tap targets are correctly enlarged. You can use the contentShape modifier. (126232279)
  • Fixed: Navigation constructions that relied on a List selection binding driving transient navigation state might behave differently. Prior to macOS 15.0, this was undefined behavior. For applications linked on and after macOS 15.0, this is still undefined behavior and should not be relied upon. This is also undefined behavior on all other platforms.
    struct ContentView: View {
    @State private var selection: Set<Int> = [5]
    var body: some View {
    NavigationSplitView {
    List(selection: $selection) {
    ForEach(1...6, id: \.self) { num in
    NavigationLink("\(num)", value: num)
    }
    }
    .navigationDestination(for: Int.self) { number in
    // The List selection binding above should not be used
    // to drive this navigationDestination modifier
    Text("\(number)")
    }
    } detail: {
    ContentUnavailableView("Make a selection", systemImage: "dice")
    }
    }
    }

    (127626852)
  • Fixed: The lifecycle of windows for apps using the SwiftUI App Lifecycle has been adjusted to better match platform conventions. (127697378)
  • Fixed: Some NavigationLinks in the deprecated NavigationView might not work. (128358023)
  • Fixed: Sheets presented with the .sheet modifier will have FittedPresentationSizing by default. This can cause sheets to appear too narrow or too large, depending on their contents. This is incorrect. The default presentation sizing should be .form. (128902804)
  • Fixed: Deprecated NavigationLinks links with an isActive argument that are wrapped with a get/set Binding derived from another Binding might not update the destination view if the derived binding updates too late. (129018685)

Known Issues

  • On macOS views presented on a stack with navigationDestination(for:destination) might fail to update contents. (110118681)
    Workaround: Use a different style of navigation link to present the view that must update like .navigationDestination(isPresented:destination) or NavigationLink(_:destination).
  • App scenePhase now reports as active when at least one scene is active. (117864591)
  • NavigationSplitView on macOS fails to clear the path when selection changes in a subsequent column. (128548564)
    Workaround: Manually clear the path binding when selection changes in the previous column, including view-destination links.
  • In the Swift 6 language mode, the @Entry macro only supports actor-isolated or Sendable types. (129073803)
  • SwiftUI Animations in AppKit - NSAnimationContext.animate(using:change:completion:)might not work for some keypaths and might not merge correctly. (129178630)

System Integrity Protection

New Features

  • To protect users’ privacy, app group containers (in ~/Library/Group Containers) are now protected by System Integrity Protection. This is similar to the protection added to app data containers in macOS Sonoma. An app that’s properly entitled for an app group continues to have access to the app group container. Specifically, the app must use FileManager to get the app group container path and meet one of the following requirements: the app is deployed through Mac App Store; the app group identifier is prefixed with the app’s Team ID; or the app group identifier is authorised by a provisioning profile embedded within the app. If the app doesn’t meet these requirements, the system might present the user a prompt to authorize the app’s use of the app group container. If granted, that consent applies only for the duration of that app instance. This restriction also applies to app extensions, although in that case the system won’t prompt the user for consent but will instead just deny the access. (114586798)

Translation

New Features

  • Users can translate text and display results in app. See the TranslationSession class, and learn more in the WWDC24 video “Meet the Translation API.” (112844581)
  • Translation now supports translating Hindi in the Translate app, System-wide translation, Safari translation, and the new Translation APIs. (116622913)

UIKit

Resolved Issues

  • Fixed: Resolved an issue where iPhone and iPad apps on Apple Silicon Macs quit unexpectedly when invoking -[UIInputViewController hasFullAccess]. (128039254)

Video Subscriber Account

Resolved Issues

  • Fixed: iPhone and iPad apps on Apple Silicon Macs quit unexpectedly if VSOpenTVProviderSettingsURLString is referenced. (113562872)

Video Toolbox

Resolved Issues

  • Fixed: On Apple Silicon, AVC (H.264) content at level 5.2 or lower can be handled by the hardware decoder. Content that otherwise conforms to level 5.2 but is high frame rate (e.g. 4k at 100 or 120 fps) and labelled level 6, 6.1 or 6.2 is also handled by hardware. However, if width or height is greater than 4096 columns or rows and content uses 4:2:0 chroma subsampling and 8 bit depth, the hardware decoder driver will reject it and a software decoder will be automatically selected to ensure artifact-free decoding. Now, if content is 10 bit, 4:2:2 or 4:4:4, the hardware decoder will be used. (127003443)

Virtualization

Resolved Issues

  • Fixed: Users will not be able to sign-in to iCloud and related applications. (128924562)

Known Issues

  • Installing the latest beta of macOS in a virtual machine on a host Mac running macOS Sonoma might fail. (109234128)
    Workaround: Install the latest beta of Xcode prior to installing the latest beta of macOS.

VoiceOver

Resolved Issues

  • Fixed: Users might not be able to complete some stages of Setup Assistant. (127445421)

Wallet

Resolved Issues

  • Fixed: Disbursement requests on Mac might appear as regular payments requests when handed off to iPhone. (124172945)

Known Issues

  • Disbursement requests on Mac cannot be handed off to an Apple Watch. (123278621)

WidgetKit

Resolved Issues

  • Fixed: WidgetKit Simulator is not available. (126989860)
 
Last edited:
  • Like
Reactions: gank41
SDK notes are lengthly

Accessibility

Resolved Issues

  • Fixed: User might be unable to play newly added background sounds (Fire and Night). (128898875)
  • Fixed: Music Haptics might disappear after the first time it is entered in Accessibility Settings until Settings restarts. (128960448)

Known Issues

  • Sound Recognition and Sound Actions might not work on iPad Pro models with M4. (128949527)

AccessorySetupKit

Resolved Issues

  • Fixed: Users might be unable to rename Accessory’s display name or SSID. (128958722)

Activity Sharing

Resolved Issues

  • Fixed: Notifications for workouts completed by a friend might show incorrect text. (128939058)

AdAttributionKit

New Features

  • AdAttributionKit now supports measuring re-engagement, which is click-through attribution for apps that were already installed. Re-engagement also supports deep linking into content in apps using Universal Links. (111224069)

App Intents

Known Issues

  • Parameterless @parameter and @Property wrappers might cause protocol conformance failures. (130219933)
    Workaround: Use parentheses on the property wrapper, e.g. @Parameter().

App Store

New Features

  • On-demand resources limits were increased for iOS 18, iPadOS 18, tvOS 18 and visionOS 2. See On-demand resources size limits for more information. (122163236)

AppIntent

Known Issues

  • AppIntent static properties including title and description are not concurrency-safe. (128090148)
    Workaround: Convert the affected static properties into computed properties.

Apple Cash

Known Issues

  • With Tap to Cash, you can send and receive Apple Cash by holding two iPhones together. An Apple Cash account is required to send and receive payments. Payments will be returned to the sender if the receiver doesn’t set up an Apple Cash account or verify their personal information within 7 days. For Developer Beta, Tap to Cash payments cannot exceed $250 per transaction. Transaction limits are subject to change, including lowering limits, at any time during the Developer or Public Betas without notice. (128977390)

Assistive Access

Resolved Issues

  • Fixed: The Messages app might hang in Assistive Access. (127601737)
  • Fixed: Users might not be able to add Photos or Camera apps to Assistive Access and the apps might be removed from an existing user’s setup if they open Assistive Access settings. (128905924)

Audio

Resolved Issues

  • Fixed: Some bluetooth headphones might not be useable as an audio output route with certain AVAudioSession configurations. (126693883)

Calculator

Resolved Issues

  • Fixed: Deleting history item with the Edit button visually deletes the top item in the list. The backing data stays correct. (126768783)

Camera

Resolved Issues

  • Fixed: First Portrait capture after boot might take longer than expected to finish. (128881179)
  • Fixed: Camera functions might take up to 2 minutes to work after booting iPhone/iPad. (128899310)
  • Fixed: When using the Document Scanning feature from Camera app on iPad, it might sometimes result in a black screen instead of a live preview from camera. (128907349)
  • Fixed: Portrait mode preview with rear facing camera might show artifacts when pointed at objects when using Stage Light, Stage Light Mono, and High-Key Light Mono light filters. Artifacts will not affect captured assets. (129024197)

Known Issues

  • For Camera background replacement, it might be necessary to double click to add a background image from your Photos Library using the Photo Picker. (122358378)

CarPlay

Resolved Issues

  • Fixed: Bluetooth pairing UI could become irresponsive for BMW users, which leads to failed contact transfer. (129043855)

CFNetwork

Resolved Issues

  • Fixed: CFNetworkExecuteProxyAutoConfigurationScript and CFNetworkExecuteProxyAutoConfigurationURL have always returned a +1 retained CF type object, but the function declarations were not decorated with the CF_RETURNS_RETAINED attribute until iOS 18, macOS 15, tvOS 18, and visionOS 2.
    For C-based languages, the clang static analyzer might note if the object is leaked. No source code changes are required, but they are encouraged to fix the leak.
    For Swift, this changes the return type of these functions from Unmanaged<> to the actual CF type returned, which will require a source change to fix when compiling with newer SDKs. However, Swift programs compiled with older SDKs will continue to work on the new OSes, though the returned CF type object will continue to leak as it did prior to this change. (126154509)

Containerization

Resolved Issues

  • Fixed: Improved the handling of the duplicate containers created by Xcode 15 through 15.3. Those versions of Xcode might create duplicate containers on the device. This change ensures that the app launches with a consistent container and that deleting the app also deletes any duplicate containers. (123480553)

Control Center

Resolved Issues

  • Fixed: Empty pages in Control Center might linger after exiting edit mode. (126760824)
  • Fixed: Control widgets with a parameterized OpenIntent action are not configurable. (128241927)
  • Fixed: Voice Memos control will not render correctly or be functional after upgrading to iOS 18 if it was part of Control Center prior to the update. (129184182)

Known Issues

  • Control Center page control is overlapped by the Dynamic Island in landscape. (125913281)
  • App Icons in Control Center gallery always appear in Dark Mode. (126721275)

CoreMedia

Resolved Issues

  • Fixed: Seeking into an interstitial event with non-zero resumption offset on the integrated timeline might result in the event being cancelled. (129175283)

CoreML

Resolved Issues

  • Fixed: CoreML Model Deployment API is unavailable (MLModelCollection and MLModelCollectionEntry). Consider using Background Assets or NSURLSession instead. (122955353)

Display

Resolved Issues

  • Fixed: Phones with Always on Display enabled might panic/reboot on exit. (128268712)

FaceTime

New Features

  • FaceTime in Low Data Mode now uses more data when network conditions are good for improved video call quality. (128408959)

Known Issues

  • When user picks up FaceTime Video call from lock screen and unlock the device later, the camera might be disabled where user cannot see remote side via PiP and vice versa. (124719544)
    Workaround: User needs to go into FaceTime app to reenable video. Toggling Video button from FaceTime dropdown will not work.

Files

Resolved Issues

  • Fixed: Users might be unable to navigate within Move panel in the Files app on iPhone. (128868597)

FinanceKit

Known Issues

  • Transactions shared via the Transaction Picker might have empty description strings. (128618523)

Fitness+

Resolved Issues

  • Fixed: The Fitness app might not load the Fitness+ For You page immediately on first launch. (127116109)

Foundation

Resolved Issues

  • Fixed: Date.ComponentsFormatStyle was incorrectly producing strings like "1m" with the Date.ComponentsFormatStyle.Style.condensedAbbreviated style and strings like "1min" with the .narrow style instead of the other way around. The behavior was corrected to match the behavior of Duration.UnitsFormatStyle.UnitWidth. (125790342)

Freeform

Resolved Issues

  • Fixed: Some images inserted into iWork and Freeform might be zoomed in. (128637913)

Handwriting

Known Issues

  • Auto-refine animation contains rendering issues for users with Display Zoom set to “More Space” within the Display & Brightness settings. (129419813)
    Workaround: Change Display Zoom settings to “Default”.

Headphone

New Features

  • Headphone Accommodations can now be configured on macOS. When user set up Headphone Accommodations with AirPods Pro 2s, user will continue to hear audio adjusted when connected to other audio sources. (130245415)

Health

Resolved Issues

  • Fixed: Doses of medication logged via mirrored watch notifications for incompatible schedule types do not save on phone if device is locked. (128635016)
  • Fixed: Period flow is displayed as Bleeding during Pregnancy and Bleeding after Pregnancy in Cycle Detail View. (128929595)
  • Fixed: When Heart Rate Watch App is deleted, Health Checklist in Health App and Watch Settings still show features (Irregular Rhythm Notifications, High Heart Rate Notifications, Low Heart Rate Notifications) as active. (128970200)
  • Fixed: The Cycle Tracking snippet might continue to display flow or symptoms logged pre-pregnancy. (129066144)

Known Issues

  • Cardio Fitness notifications will not turn back on automatically 12 weeks post pregnancy or after a pregnancy cycle factor is deleted. (128659463)
    Workaround: Turn Cardio Fitness notifications back on manually.

HealthKit

Resolved Issues

  • Fixed: Workout routes for workout types created by Apple Watch Workout app are not available in third-party workout apps. (123450917)

Home Screen

Resolved Issues

  • Fixed: There might be a delay when switching to dark or tinted icons on the home screen. (129069905)

Known Issues

  • Widgets on the Home Screen might match icon appearance rather than system appearance. (129079785)
    Workaround: To enable dark widgets, switch home screen appearance to dark for dark mode widgets.
  • Icon tint slider knob might not update to selected color on the first use after boot. (129114071)
    Workaround: Dismiss Home Screen customization sheet and bring up again to update.

HomeKit

Known Issues

  • Accessory Firmware update will not be offered for an accessory if a user reboots the resident or the primary switches. (128255088)
    Workaround: Rebooting primary resident will allow any pending firmware updates to be offered in the Home app.

HomePod Alarms and Timers

Resolved Issues

  • Fixed: HomePod Alarms and Timers will not be visible in the HomeApp to Add or Edit if user is running iOS 18 but tvOS is pre-18.0. (128070028)
  • Fixed: HomePod Alarms and Timers will not be visible in the HomeApp to Add or Edit if user is running legacy Home Architecture. (128224517)

iCloud Drive

Resolved Issues

  • Fixed: Frequently changed files syncing over iCloud Drive will use more data than expected. (128771010)

iPhone Mirroring

Known Issues

  • Dictation is available during iPhone Mirroring. (126654567)
  • Keyboard input might not work in Spotlight or App Library when using iPhone Mirroring. (126928807)
  • Universal Clipboard might not to work during iPhone Mirroring. (128165996)
  • Users might be able to launch lock screen apps while using iPhone Mirroring. (128281331)
  • Settings might show incompatible devices under iPhone Mirroring. (128633492)

Journaling Suggestions

New Features

  • Journaling Suggestions is introducing a set of new features to keep encouraging people to reflect and write about their day-to-day experiences to get the mental wellbeing benefits of Journaling. The API now supports Landscape mode and Reflection prompts. Added support for State of Mind logged on Health or Journal app, Run and mixed Walk/Run sessions performed while carrying a standalone iPhone, Media played by apps that donate to MPNowPlayingInfoCenter, People and Pet names from Photos and enhancements to Trips Suggestions to highlight Countries and States visited. (129029773)

Resolved Issues

  • Fixed: Users might experience blank suggestions or engineering text. (128774773)
  • Fixed: Users might experience long spinner after tapping ‘+’ to open Journaling Suggestions sheet. (128950895)
  • Fixed: When tapping ‘+’ to launch the Journaling Suggestions sheet, it might not launch. (128970387)

Kernel

Deprecations

  • kern.bootsessionuuid is no longer available to apps. (47217954)

Keyboard

Known Issues

  • Users will not be able to configure Keyboard in Settings, including adding/removing keyboards for different languages or adding/removing keyboard extensions. (129174947)
    Workaround: Keyboard Settings can be used on-device.

Lock Screen

Resolved Issues

  • Fixed: Users will be unable to configure Controls that have configuration on the Lock Screen. (128967021)

Known Issues

  • Lock Screen Quick Action buttons might disappear. (128096099)
    Workaround: Unlock the device, or edit and save the Lock Screen configuration again.

Maps

New Features

  • Introduced Place ID, a unique and persistent identifier. (129071038)
  • Added new resultTypes to MKLocalSearch.Request and additional PointofInterestCategory values. (129073725)
  • Introduced Place Card API to show Maps Place Card UI. (129073922)

Resolved Issues

  • Fixed: Maps Share ETA might fail when sending to a recipient via SMS. (127547239)
  • Fixed: The Place Card API might fail to load place details. (128504304)

Known Issues

  • In searches that use MKLocalSearch.Request, the result type option physicalFeature is ignored. (128961972)
  • Conversion between a point in the map view and a physical location (CLLocationCoordinate2D) might be imprecise at high zoom levels. (129042241)

Math Notes

Resolved Issues

  • Fixed: Adjusting negative numbers can lead to multiple negative signs. (123738353)

Known Issues

  • Adjusting a number with a comma can immediately change the number value to 0. (127904684)
    Workaround: Write the number being adjusted without a comma separator or rewrite the intended number.

Memory Allocation

New Features

  • The system memory allocator (malloc(3)) has switched to a new implementation for most allocation sizes. Users might experience exposure of latent memory access bugs due to changes in heap layout, differences in performance for allocation-heavy workloads, and changes in fragmentation. (127493322)

Messages

New Features

  • Sent and received messages via satellite might not be relayed to your other devices. (125574729)
  • Messages via satellite is currently available only in the U.S. SMS messaging via satellite is available on select carriers in iOS 18 Beta 1. (127751557)

Resolved Issues

  • Fixed: A send message sound will play when scheduling the message instead of when the message is sent. (121896789)
  • Fixed: When applying tapbacks by long pressing on a Message, users will be unable to use 3rd party stickers. (122379099)
  • Fixed an issue where multi-part SMS notifications for MMS are not correctly processed by the device while on-grid. (128880899)

Known Issues

  • When off grid, text message conversations might incorrectly display text suggesting that the carrier does not support text messages via satellite, even though user is able to send and receive text messages over satellite. (127334940)
  • Emoji tapbacks might display incorrectly in SMS group conversations. (127446747)
  • Existing RCS 1:1/Group chat will downgrade to SMS even RCS is still register. (130029732)
    Workaround: Kill messages app and relaunch.

Networking

Resolved Issues

  • Fixed: For apps linked on macOS 15 / iOS 18 or newer, the default User-Agent request header field value generated by URLSession now includes the unlocalized bundle name instead of the localized bundle name. (117380285)

Notifications

Resolved Issues

  • Fixed: Incoming notifications on Lock Screen might not be seen when in List View. (129021171)

Photos

Resolved Issues

  • Fixed: Photos and videos might stop syncing via iCloud Photo Library. (128325085)

Platform

New Features

  • On Apple Silicon based devices with M3 or later, and A16 Bionic or later, the values returned by reading the CNTFRQ_EL0 and CNTVCT_EL0 registers have been updated to 1 GHz, instead of the prior value of 24 MHz. It is still recommended for apps to use libsystem APIs like mach_absolute_time() for timekeeping. Your app will not be impacted by this change if it uses Apple’s timekeeping APIs. For compatibility purposes, this change will only be visible when using the SDK associated with this release or later. On macOS, applications running inside a Virtualization.framework VM will continue to receive the legacy behavior. (84639494)

Previews

Resolved Issues

  • Fixed: Triggering an on-device preview might fail. (129150211)

RealityKit

New Features

  • USD files which use Catmull-Clark subdivision now render using subdivision in RealityKit. Meshes which produce less than 35,000 patches can render using subdivision. This can increase memory consumption and reduce rendering performance. (129016034)
  • Virtual objects now render using the Display P3 color gamut. When using a DrawableQueue connected to a TextureResource with the .color semantic, render using the Display P3 color space. (129017592)

Resolved Issues

  • Fixed: The pixelCast function might not work correctly on iOS. (125742631)
  • Fixed: Grounding shadows are less prominent than expected. (126498888)
  • Fixed: Using an Image 2D Array Shader Graph node in Reality Composer Pro might result in corruption or a system crash. (127122590)
  • Fixed: Grounding shadows will not be visible in ARQL on certain iPad Pros. Apps enabling ray-traced shadows via Xcode storyboards will not take affect. (127748381)
  • Fixed: Setting the environment property of a RealityView to .worldTracking does not automatically start an ARKit session, and the background of your RealityView might be black. (128417183)
  • Fixed: Physics simulation behavior is different from previous releases. (128435086)
  • Fixed: The stop function on SpatialTrackingSesssion has no effect. (128559666)
  • Fixed: Emphasize actions are always additive and should be played with separateAnimatedValue set to true. (128622689)
  • Fixed: In the Swift 6 language mode, subclasses of the Entity class fail to compile. (128787131)
  • Fixed: The .trigger mode of CollisionComponent no longer generates CollisionEvents when both involved collision shapes use the .trigger mode. (129016567)
  • Fixed: [.world, .plane, .image, .object, .face, .camera] anchor capabilities used in conjunction with any scene understanding capabilities on a device without a LiDAR scanner would cause those anchor capabilities to not work. (129253808)

Known Issues

  • Reality files written by beta versions of RealityKit might not load in later versions. (128424173)
    Workaround: Only distribute Reality files written by released or release candidate versions of RealityKit.
  • Adding too many (100+) dynamic lights in the scene can trigger an ALE. (129424857)

Deprecations

  • In previous versions, the order of child entities was sometimes preserved. Now, the order of an Entity’s children might not be reliable and can change unexpectedly when any child is reparented. (129015381)

Screen Time

Resolved Issues

  • Fixed: Parent approving remotely from the parent device will always grant 1 hour, regardless of whether a child asks for a 15-minute, 1-hour, or all-day exception for an app or website. (129084141)

Search

Known Issues

  • The “Help Apple Improve Search” control is not functional. (129226418)

Settings

Known Issues

  • Recents and search results are sometimes missing and might not navigate to nested panes. (128802504)
    Workaround: Navigate using UI.

Shortcuts

Resolved Issues

  • Fixed: The Shortcuts editor might offer some new actions that are not yet ready for use. If you save a shortcut with one of these actions, you might need to correct it after a future update with the corrected actions. (128841105)

Known Issues

  • Adding or removing SiriKit intents or App Intents might not reflect immediately in the Shortcuts app. (130039560)
    Workaround: Add new intent to a shortcut on a Beta 1 device, wait for sync to kick in, open the shortcut on the Beta 2 device.

Simulator

Resolved Issues

  • Fixed: Using Safari in the simulator can cause the simulator to hang. (128545001)

Siri

New Features

  • In iOS 18, when an iPhone is connected via Bluetooth to a vehicle without CarPlay, Siri’s audio quality can be significantly improved through the new option “Respond over Media Source”. Users will be able to enable this feature by going to Settings “Siri & Search” → “Siri Responses” → “When Connected to Car Bluetooth”. (110810507)

Storage

Known Issues

  • The available storage listed in Settings > General > About might be incorrect. The correct available storage for iPhones can be viewed in Settings > General > iPhone Storage and Settings > General > iPad Storage for iPads. (129688831)

StoreKit

New Features

  • The SubscriptionStoreView now supports custom control styles. To create a custom control style, declare a type that conforms to SubscriptionStoreControlStyle and implement makeBody(configuration method. (106819454)
  • New standard styles are available for laying out subscription store view controls with a compact height. Use pagedPicker and pagedProminentPicker for a platform appropriate paging effect, or compactPicker to place options in a horizontal stack. For watchOS, the new pagedPicker style is available for laying out SubscriptionStoreView controls with a compact height. (110286601)
  • Use types such as SubscriptionOptionGroup and SubscriptionPeriodGroupSet to declare a hierarchical structure for your SubscriptionStoreView. You can use the subscriptionStoreOptionGroupStyle(_ to choose between presenting groups as a tab view or as navigation links. (110429924) (FB12264937)
  • The subscription status RenewalInfo object now supports new properties renewalPrice and currency to indicate the price at which the subscription will renew, and its currency. There is also a new offer property containing the information of the offer that will be applied to the next renewal, if there is any. This includes the offer ID, the offer type, and the payment mode. (114217892)
  • Finished consumables can now be included when using the Transaction APIs. Users can enable this feature by setting SKInAppPurchaseHistoryIncludesConsumables to true in app’s Info.plist. (115079880)
  • When configuring the control style for a SubscriptionStoreView, users can specify a placement for the controls using the subscriptionStoreControlStyle(_lacement view modifier. For tvOS, by default SubscriptionStoreView will place the controls trailing the marketing content. (115319543)
  • When building an app with Xcode 16, SubscriptionStoreView instances using the picker control style have an updated appearance. Use subscriptionStorePickerItemBackground(_:in to configure a different background color and shape for the picker items. (120558960)
  • Users can now use APIs like monthly or yearly to get common Product.SubscriptionPeriodvalues when comparing subscription periods. (122684230)

Known Issues

  • When using SubscriptionStorePicker within a container view, the bottom bar doesn’t work correctly. (117701666)
    Workaround: Return SubscriptionStorePicker as a top level view from makeBody(configuration method, instead of using it within a container.
  • The tab control in SusbcriptionStoreView might appear too wide when using StoreContent with the tabs option group style. (128567088)

Deprecations

  • The Original API for In-App Purchase is now deprecated, including: SKStoreReviewController, SKProduct, SKReceiptRefreshRequest, SKStorefront, SKPayment, SKRequest, SKProductsRequest, and SKProductDiscount. Please upgrade to StoreKit 2 for current APIs and future enhancements. (116600524)

Swift Charts

New Features

  • Plot math functions using LinePlot and AreaPlot. (117186178)
  • Visualize large datasets more efficiently using vectorized plot APIs such as PointPlot and RectanglePlot. (117469419)

Resolved Issues

  • Fixed: Rotated axis labels stretch to incorrect sizes. (106013386)
  • Fixed: Blur and shadow effects on marks might disappear during animation. (125493885)
  • Fixed: Glitches when animating a connected scatter plot made of LineMark. (127196185)
  • Fixed: Stroke styles can now be animated. (127465359)
  • Fixed: For function plots, the Y domain cannot be inferred automatically. (128877906)

Known Issues

  • Animations involving charts may lead to the disappearance of marks with a .foregroundStyle(Color) throughout the duration of the animation, even if the color did not change. (130023892)

SwiftUI

New Features

  • When using a TabView, tapping on the current tab now pops any embedded navigation stack. (50924017)
  • Pickers now can have keyboard shortcuts attached to their individual options, by attaching the keyboardShortcut() modifier to the individual views in the picker content. (67682762) (FB8522629)
  • If Label is used inside of a List with multiple views as its title, it will now stack them vertically and apply subtitle treatments to every view after the first. (115528544)
  • For ObservableObject subclasses used with @EnvironmentObject, @ObservedObject, and @StateObject, SwiftUI will now only call objectWillChange once per property per object instance. If you use @Published and the default ObservableObjectPublisher, you do not need to change anything. If you override objectWillChange, ensure the lifetime of the publisher you return matches the lifetime of its enclosing ObservableObject. (116197689)
  • On iPad, TabViews using the automatic style have a new appearance in the regular horizontal size class. The tab bar now appears at the top, instead of the bottom, with a more compact visual appearance. (117029720)
  • SwiftUI sheets presented with the .sheet modifier now use .automatic sizing by default. .automatic resolves to .form or .form.fitted(horizontal:false, vertical: true)depending on the platform (see the symbol’s documentation for more). Platforms prior to iOS 18 and aligned releases used different, non-customizable default sheet sizing. iOS 17 and earlier used what is now called .page presentation sizing. macOS 14 and earlier used what is now called .fitted sizing. visionOS 1 used .fitted sizing. When linking apps against iOS 18 and aligned SDKs, audit your sheet presentations and pick the sizing best for you. Apply a .presentationSizing modifier to sheet contents:
    ContentView().sheet(isPresented: $present) {
    SheetView().presentationSizing(.form)
    }

    (117551515)
  • Improved the interaction of highPriorityGesture with ScrollView. (119333786)
  • Document-based applications linked against iOS 18 now have a new launch screen design. Users can customize the default design by adding a DocumentGroupLaunchScene to the app definition. Users can change the screen title and background, replace action buttons, and add decorative accessory views.
    Non-document-based apps also can use the new screen via DocumentLaunchView. (119843158)
  • Types conforming to the View protocol, and other similar SwiftUI protocols, are now isolated to the @MainActor by default. SwiftUI’s runtime behavior with respect to actor isolation has not changed: SwiftUI views and similar types have always been evaluated on the main actor at runtime; this change improves compile-time diagnostics for potential data-race safety issues. To opt out of the new default main actor isolation and restore the previous default isolation, add the nonisolated keyword to methods and properties as needed, or move the protocol conformance to an extension to opt out the entire type. (120815051)
  • Text(_:format now automatically injects FormatStyle known to SwiftUI with the TimeZone and Calendar from the environment. (123662780)
  • @Entry macro can now be used to simplify declarations of custom EnvironmentValues, FocusedValues, Transaction, and ContainerValues properties. (125568810)
  • Added the ability to give a gesture a name, which gets surfaced to UIGestureRecognizers when establishing dependencies. (126527559)

Resolved Issues

  • Fixed an issue where long press gestures would block gestures on other descendant views. (57368881)
  • Fixed an issue where UIButton used with UIViewRepresentable might not receive touches. Tap gestures in SwiftUI also now correctly coordinate with UITapGestureRecognizer instances. (57885589)
  • Fixed: For apps linked on or after iOS 18, the popover modifier now respects the arrowEdge argument on iOS and iPadOS. (66839017) (FB8350757)
  • Fixed: SwiftUI gestures no longer errantly trigger when dismissing a menu. (69703502) (FB8751308)
  • Fixed: ForEach is now able to reclaim persistent state of unused child views. @State values created by views inside ForEach elements might be destroyed earlier than previously observed. (90667238)
  • Fixed: A DismissAction captured in the content or detail column of a NavigationSplitView now pops the implicit stack.
    For apps linked on or after iOS 18 and aligned releases, the button in the example below will now clear any selection in the sidebar List. Previously, this would fail silently on iOS, and close the window on macOS.
    NavigationSplitView {
    List(…)
    } detail: {
    DetailView()
    }

    struct DetailView: View {
    @Environment(\.dismiss) private var dismiss

    var body: some View {
    Button("Pop") { dismiss() }
    }
    }

    To retain the previous behavior, capture the DismissAction from the environment above the NavigationSplitView. (92522613)
  • Fixed: A ScrollView now propagates safe area insets on its non-scrollable edges. By default, Scroll indicator for scroll views that occupy the size of the screen have improved insets. (102766716)
  • Fixed: Outline Lists do not animate correctly. (106239318)
  • Fixed an issue where searchable suggestions automatically filter out completion options that have a searchCompletion matching the current search text. Exact matches should be explicitly elided from the suggestions if desired. (107706241)
  • Fixed: View._printChanges now outputs key path of mutated observable properties instead of “@dependencies”. (111392797)
  • Fixed: Using the scrollClipDisabled() view modifier with a ScrollView with a LazyHStack or LazyVStack will use the containing window to determine what content the lazy stack should render. (111796138)
  • Fixed: SwiftUI will now assert that types conforming to the App protocol are value types. (113634782)
  • Fixed: In macOS, a Toggle of the .switch style now animates when its isOn state is changed programatically, matching the existing behavior on iOS and iPadOS. The animation can be disabled in all platforms by setting the transaction’s disablesAnimations property when updating a Toggle’s state. (115071023)
  • Fixed: Automatically updating Text created via Text(_:style or Text(timerIntervalauseTime:countsDown:showsHours was causing increased battery drain when used in long running Live Activities. They now no longer animate changes in digits that signal the seconds value, keeping the power impact to a minimum. (115906895)
  • Fixed: SwiftUI no longer overrides a nil scrollTargetAnchor when using the scrollPosition(id:anchor modifier with a nil anchor. Specify a topLeading anchor to restore the previous behavior. (116124988)
  • Fixed: When linking against iOS 18 SDKs, SwiftUI prevents cycles in .sheet presentations caused by presentations preferences (e.g. presentationDetents or presentationBackground) that depend on the size of the sheet. In some cases prior to iOS 18, these cycles might settle independently after some oscillation. (117699610)
  • Fixed: The arrowEdge argument in .popover modifiers is now respected when linking against the iOS 18 SDK. If previously relying on the default argument of .top, this argument was not respected, and instead, the popover presented with .any behavior. If passing an explicit value, that value will now be respected. If not passing an explicit argument to the arrowEdge parameter, upon recompiling with the iOS 18 SDK, overload resolution will select a new method that takes no arrow edge in which the system picks the best arrow edge. When recompiling with the iOS 18 SDK, ensure popovers are not clipped or off-screen due to presenting in the wrong direction. (117921721)
  • Fixed: Scroll views can now accept interaction in their content insets. (117928468)
  • Fixed: .navigationDestination(for:destination) modifiers inside of lazy containers are no longer evaluated. .navigationDestination(isPresented:destination and navigationDestination(item:destination) will log warning when used in lazy containers. Lazy containers in this context include: List, LazyVGrid, LazyHGrid, LazyHStack, LazyVStack Table, and TabView. If using navigationDestinations in lazy containers, users will see logged errors at runtime. Lift the modifiers higher up in the view hierarchy so they are outside of the lazy containers. Allowing navigation destination modifiers in lazy containers had two significant costs: (1) app navigation state could be undefined if a navigationDestination had been scrolled off screen (2) The navigation system had to explore all list contents to ensure navigation destinations remained up to date. Only allowing these modifiers outside of lazy containers improves app navigation reliability and performance. (117998693)
  • Fixed an issue that caused SwiftUI gestures to trigger simultaenously with UIControl subclasses or gestures in UIViewRepresentable views. (119335307)
  • Fixed: Views at the root of a NavigationStack will now always have matching onAppear and onDisappear callbacks. (119737698)
  • Fixed: The order of ShapeStyle compositing modifiers is now honored with respect to shadows. Previously in fill(style.blendMode(…).shadow(…)) the added blend mode would also apply to the shadow, that is no longer the case. The blend mode modifier must be added after the shadow modifier to affect it. As a consequence, the fill and any shadows added can now use different blend modes. Similar rules apply to ShapeStyle.opacity() except that outer opacity() modifiers multiply with inner modifiers, e.g. in fill(style.opacity(0.5).shadow(…).opacity(0.5)) the shadow is drawn with 50% opacity (of whatever style draws) and style itself draws with 25% opacity. (119738072)
  • Fixed an issue where Popover presentations automatically dismiss if they go outside the safe area. (120458490)
  • Fixed: The meaning of the boolean value passed to the ContentTransition.numericText(countsDown function has been flipped for apps deployed prior to iOS 18 aligned releases. (120561508)
  • Fixed: Gestures might not pick up a modified content shape, such as when increasing the tappable area of a button. (120938385)
  • Fixed: A Picker’s current value label does not default to the first option anymore when initialized with an invalid selection. (121871839)
  • Fixed: Resolved an issue where rapidly toggling the visibilility of columns in a NavigationSplitView could cause the sidebar to become stuck in either the visible or hidden position. (122840735)
  • Fixed: Sidebar headers no longer respond to increased prominence. (123518195)
  • Fixed an issue when a sheet modifier is removed from a view hierarchy. This can happen if the sheetmodifier is in one branch of an if statement and the statement’s condition changes. For apps linked on or after iOS 18 and aligned releases, when a sheet modifier is completely removed from the hierarchy, the binding associated with the sheet will not be reset. (123742063)
  • Fixed: ForEach child views are no longer re-evaluated unconditionally, only when a parameter of the ForEach view might have changed. (123902210)
  • Fixed: Apps might crash when nesting a TabSection inside of another TabSection. (123928013)
  • Fixed: Scroll views have improved behavior in right to left languages when the size of their content is smaller than the size of their container. (124008045)
  • Fixed: Elements along a NavigationPath or the data structure passed to the path parameter of NavigationStack(path:root are now compared more efficiently. Any side-effects from setting a path equal to itself are no longer reliable and likely will not occur. (125093883)
  • Fixed: The state of the root view of UIHostingConfiguration is now reset before the associated cell is displayed. (125100960)
  • Fixed: SceneBuilder, WidgetBundleBuilder, TableColumnBuilder, TableRowBuilder, CommandsBuilder, and ToolbarContentBuilder now diagnose unsupported if #availableconditions at compile time instead of crashing at run time. (125379937)
  • Fixed: Resolved an issue where context menus with custom previews could not be interacted with. (125517121)
  • Fixed: UIViewRepresentable, NSViewRepresentable and their view controller variants no longer create a layer with allowsGroupOpacity set to true. (125561916)
  • Fixed: In certain scenarios, Text(_:style produced suboptimal output, such as choosing an unnecessarily small calendar unit, showing zero values for large calendar units instead of omitting them, or showing seconds in Always On Display. (125885307)
  • Fixed: Text(timerIntervalauseTime:countsDown:showsHours was redacting the seconds value even when the timer was paused, had not started yet, or had already reached its end. (125885429)
  • Fixed: When applying a searchable() modifier to a TabView, the tab view will reset the search state when switching tabs. (125926765)
  • Fixed: Resolved an issue where scroll views would not receive touches if placed near a tappable control. When rebuilt with the newer SDK, make sure that small buttons and tap targets are correctly enlarged. You can use the contentShape modifier. (126232279)
  • Fixed: DocumentGroup scenes that do not allow document editing, created via DocumentGroup(viewing:viewer, will not render the document view. (127076044)
  • Fixed: NewDocumentButton() within DocumentLaunchView fails to create a document when pressed. (127389818)
  • Fixed: TabView customization emits runtime errors if customization identifiers are not provided for tabs with automatic customization behavior. (127442031)
  • Fixed: Some NavigationLinks in the deprecated NavigationView might not work. (128358023)
  • Fixed: Sheets presented with the .sheet modifier will have FittedPresentationSizing by default. This can cause sheets to appear too narrow or too large, depending on their contents. This is incorrect. The default presentation sizing should be .form. (128902804)
  • Fixed: Deprecated NavigationLinks links with an isActive argument that are wrapped with a get/set Binding derived from another Binding might not update the destination view if the derived binding updates too late. (129018685)
  • Fixed an issue where the name passed to the gesture modifier would not be available when resolving UIKit dependencies. (129590852)

Known Issues

  • App scenePhase now reports as active when at least one scene is active. (117864591)
  • In the Swift 6 language mode, the @Entry macro only supports actor-isolated or Sendable types. (129073803)

TipKit

New Features

  • The new TipGroup API and CloudKitContainer syncing will be made available via an upcoming beta SDK release. (129425412)

Translation

New Features

  • Users can translate text and display results in app. See the TranslationSession class, and learn more in the WWDC24 video “Meet the Translation API.” (112844581)
  • Translation now supports translating Hindi in the Translate app, System-wide translation, Safari translation, and the new Translation APIs. (116622913)

Resolved Issues

  • Fixed: When using .translationPresentation() on an iPhone, the background above the sheet blocks the presenting view instead of letting it show through. (128504309)

UIApplication

Resolved Issues

  • Fixed: Applications built with iOS 18, iPadOS 18, Mac Catalyst 18, or tvOS 18 SDKs will call to the deprecated method UIApplication.openURL(_. The specified URL will not open and will always return false. (125695759)

UIKit

Resolved Issues

  • Fixed: Creating a new document in using “+” sign in “Recents” tab of UIDocumentBrowserViewController might fail. (128520498)
  • Fixed: tabBarController(_:didSelectTabreviousTab is not called when a child of a UITabGroup is selected. (128697021)

Known Issues

  • UITabGroup.managingNavigationController does not work as expected. (126277771)
  • Tab titles are missing in iPad tab bars for RTL languages. (130154177)

Wallet

New Features

  • To help prevent fraud, when adding an ID to iPhone, the user might be asked to take a Live Photo instead of, or in addition to, conducting a series of head and facial movements. The Live Photo is evaluated by the device and Apple to help ensure that the photo being submitted is of a live person and that the same live person is submitting the photo. (129338051)

Resolved Issues

  • Fixed: Sharing your ID in Wallet within apps is not available when Require Face ID for Wallet is enabled. (128775860)

Wallet & Apple Pay

Known Issues

  • Users with an Apple Watch might be prompted to reauthorize Connected Accounts in Wallet on iPhone. (129127520)
    Workaround: Wait for iPhone and Apple Watch to synchornize. If the issue persists after several minutes, try reauthorizing the connection on iPhone.

WeatherKit

Resolved Issues

  • Fixed: HistoricalComparisons data will not be returned unless it is requested with other weather datasets (e.g. CurrentWeather). (107204312)
  • Fixed: Returned HistoricalComparisons conditions, such as precipitation, might have placeholder values for baseline and currentValue. (126496817)
  • Fixed: WeatherKit v2 is currently available only for Swift, not for the REST API. (128024852)

Known Issues

  • Responses for more than 90 days of DayTemperatureSummary and DayPrecipitationSummary data might be slow to return. (127768828)
  • Some PrecipitationStatistics fields such as averagePrecipitationProbability and averageSnowfallAmount might show placeholder values. (128008885)

WidgetKit

Resolved Issues

  • Fixed: Disabled and privacy-redacted control states do not render properly for control widgets used with the Action button. (125867980)
  • Fixed: ControlCenter.currentConfigurations does not include configured control push tokens. (127601613)
  • Fixed: An error building a control template that states “Template request failed: WidgetKit.ChronoError.AppIntent.conversionFailure(underlyingError: AppIntent has missing parameter value for ’timerName’” might occur. Users might need to set a default value in the initializer of @parameter, or using the default method on Query. (129066701)

Known Issues

  • Adopting ‘autoPresentConfigAfterAdding’ currently doesn’t auto present config sheet for widgets or controls. (114470520)
  • Control widget label views might not be able to read redaction reasons from the environment. (126232534)
  • The promptsForUserConfiguration() modifier has no effect for control widgets in Control Center, the Lock Screen, and the Action button. (126862283)
  • For control widgets that specify both a subtitle and value, Control Center displays only the subtitle. (127906735)

Widgets

Resolved Issues

  • Fixed: Resizing widgets on the home screen in RTL might not work as expected. (128625613)
  • Fixed: If tinting is enabled for the home screen shortly after updating, the widgets might appear with the incorrect background color until it reloads automatically by the system. (128701638)

Deprecations

  • Legacy Today View extensions are removed in iOS 18. (116246167)

Wifi Calling

Known Issues

  • T-Mobile Users will not be able to initiate/receive wifi calls on secondary devices that are signed onto the same iCloud account. (130227345)
 
Last edited:
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.