Explore the various UI frameworks available for building app interfaces. Discuss the use cases for different frameworks, share best practices, and get help with specific framework-related questions.

All subtopics
Posts under UI Frameworks topic

Post

Replies

Boosts

Views

Activity

UI freeze during layouting
One of our users reported a very strange bug where our app freezes and eventually crashes on some screen transitions. From different crash logs we could determine that the app freezes up when we call view.layoutIfNeeded() for animating constraint changes. It then gets killed by the watchdog 10 seconds later: Exception Type: EXC_CRASH (SIGKILL) Exception Codes: 0x0000000000000000, 0x0000000000000000 Termination Reason: FRONTBOARD 2343432205 <RBSTerminateContext| domain:10 code:0x8BADF00D explanation:scene-update watchdog transgression: app<bundleID(2A01F261-3554-44C0-B5A9-EBEB446484AD)>:6921 exhausted real (wall clock) time allowance of 10.00 seconds ProcessVisibility: Background ProcessState: Running WatchdogEvent: scene-update WatchdogVisibility: Background WatchdogCPUStatistics: ( "Elapsed total CPU time (seconds): 24.320 (user 18.860, system 5.460), 29% CPU", "Elapsed application CPU time (seconds): 10.630, 12% CPU" ) reportType:CrashLog maxTerminationResistance:Interactive> The crash stack trace looks slightly different, depending on the UI transition that is happening. Here are the two we observed so far. Both are triggered by the layoutIfNeeded() call. Thread 0 name: Dispatch queue: com.apple.main-thread Thread 0 Crashed: 0 CoreAutoLayout 0x1b09f90e4 -[NSISEngine valueForEngineVar:] + 8 1 UIKitCore 0x18f919478 -[_UIViewLayoutEngineRelativeAlignmentRectOriginCache origin] + 372 2 UIKitCore 0x18f918f18 -[UIView _nsis_center:bounds:inEngine:forLayoutGuide:] + 1372 3 UIKitCore 0x18f908e9c -[UIView(Geometry) _applyISEngineLayoutValuesToBoundsOnly:] + 248 4 UIKitCore 0x18f9089e0 -[UIView(Geometry) _resizeWithOldSuperviewSize:] + 148 5 CoreFoundation 0x18d0cd6a4 __NSARRAY_IS_CALLING_OUT_TO_A_BLOCK__ + 24 6 CoreFoundation 0x18d0cd584 -[__NSArrayM enumerateObjectsWithOptions:usingBlock:] + 432 7 UIKitCore 0x18f8e62b0 -[UIView(Geometry) resizeSubviewsWithOldSize:] + 128 8 UIKitCore 0x18f977194 -[UIView(AdditionalLayoutSupport) _is_layout] + 124 9 UIKitCore 0x18f976c2c -[UIView _updateConstraintsAsNecessaryAndApplyLayoutFromEngine] + 800 10 UIKitCore 0x18f903944 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 2728 11 QuartzCore 0x18ec15498 CA::Layer::layout_if_needed(CA::Transaction*) + 496 12 UIKitCore 0x18f940c10 -[UIView(Hierarchy) layoutBelowIfNeeded] + 312 Thread 0 name: Dispatch queue: com.apple.main-thread Thread 0 Crashed: 0 QuartzCore 0x18ec2cfe0 -[CALayer animationForKey:] + 176 1 UIKitCore 0x18fa5b258 UniqueAnimationKeyForLayer + 192 2 UIKitCore 0x18fa5ab7c __67-[_UIViewAdditiveAnimationAction runActionForKey:object:arguments:]_block_invoke_2 + 468 3 UIKitCore 0x18fa5ba5c -[_UIViewAdditiveAnimationAction runActionForKey:object:arguments:] + 1968 4 QuartzCore 0x18eb9e938 CA::Layer::set_bounds(CA::Rect const&, bool) + 428 5 QuartzCore 0x18eb9e760 -[CALayer setBounds:] + 132 6 UIKitCore 0x18f941770 -[UIView _backing_setBounds:] + 64 7 UIKitCore 0x18f940404 -[UIView(Geometry) setBounds:] + 340 8 UIKitCore 0x18f908f84 -[UIView(Geometry) _applyISEngineLayoutValuesToBoundsOnly:] + 480 9 UIKitCore 0x18f9089e0 -[UIView(Geometry) _resizeWithOldSuperviewSize:] + 148 10 CoreFoundation 0x18d0cd6a4 __NSARRAY_IS_CALLING_OUT_TO_A_BLOCK__ + 24 11 CoreFoundation 0x18d132488 -[__NSSingleObjectArrayI enumerateObjectsWithOptions:usingBlock:] + 92 12 UIKitCore 0x18f8e62b0 -[UIView(Geometry) resizeSubviewsWithOldSize:] + 128 13 UIKitCore 0x18f977194 -[UIView(AdditionalLayoutSupport) _is_layout] + 124 14 UIKitCore 0x18f976c2c -[UIView _updateConstraintsAsNecessaryAndApplyLayoutFromEngine] + 800 15 UIKitCore 0x18f916258 -[UIView(Hierarchy) layoutSubviews] + 204 16 UIKitCore 0x18f903814 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 2424 17 QuartzCore 0x18ec15498 CA::Layer::layout_if_needed(CA::Transaction*) + 496 18 UIKitCore 0x18f940c10 -[UIView(Hierarchy) layoutBelowIfNeeded] + 312 So far, we only know of one iPad Air M1 where this is happening. But we don't know how many users experience this issue without reporting it. Does anyone know what could cause Auto Layout or Core Animation to block in those calls? We have no clue so far...
1
0
207
Apr ’25
Remove "copy cursor" when dragging a view in SwiftUI
Hi, Im new to SwiftUI and Im trying to implement some drag and drop functionality for some tabs in my application. Im using .draggable(_) and .dropDestination for this and the issue I have is that as I drag the view, the mouse cursor changes to the copy cursor with the green plus sign and I don't like it but I can't figure out how to avoid it. Any help would be appreciated.
1
0
78
Apr ’25
Can SwiftUI.Picker.segmented make one or more segments disable in iOS 16?
I'm trying to make one of my segments disable and configure different font color. I'm able to achieve it by using .selectionDisabled(), which is only available in iOS 17 +. I am wondering if there's an alternative for iOS 16. Thank you import SwiftUI struct MySegment: Hashable { let label: String let isDisabled: Bool } struct MySegmentedControlView: View { @State var selection: String = "item1" let data: [MySegment] = [ MySegment(label: "item1", isDisabled: false), MySegment(label: "item2", isDisabled: false), MySegment(label: "item3", isDisabled: true) ] init() { UISegmentedControl.appearance().backgroundColor = .red.withAlphaComponent(0.15) UISegmentedControl.appearance().selectedSegmentTintColor = .red UISegmentedControl.appearance().setTitleTextAttributes([.foregroundColor: UIColor.white], for: .selected) UISegmentedControl.appearance().setTitleTextAttributes([.foregroundColor: UIColor.gray], for: .normal) UISegmentedControl.appearance().setTitleTextAttributes([.foregroundColor: UIColor.systemGray6], for: .disabled) } var body: some View { VStack { Picker("", selection: $selection) { ForEach(data, id: \.label) { if #available(iOS 17.0, *) { Text($0.label) .selectionDisabled($0.isDisabled) } else { Text($0.label) .tag($0.label) .disabled($0.isDisabled) } } } .pickerStyle(.segmented) } .padding() } }
Topic: UI Frameworks SubTopic: SwiftUI
1
0
67
Apr ’25
Migrating SwiftUI lifecycle to UIKit's
Hi, everyone I have an app already in production that uses SwiftUI's lifecycle (paired with an AppDelegate). Due to some specific behaviour of the app, we decided to migrate the app to use UIKit's lifecycle, adding the corresponding SceneDelegate to the app, as well as modifying the Info.plist file accordingly to accommodate to these new changes. Although everything seems to work when installing the app from zero, when installing it on top of another version, the screen goes black and the user cannot interact with the app at all unless they reinstall it completely. As I've read online, iOS is reusing the window configuration from the previous execution of the app. I know this because the AppDelegate's application(application:connectingSceneSession:options) is not being called when coming from a previous version of the app. I would love to know what can I do to make this work because, as you may understand, we cannot ask our user base to reinstall the application. Thank you very much.
7
2
1.9k
Apr ’25
Menu Bar Icon NOT Showing Up
Hi, I'm trying to make a weather menu bar app, and I want to have it so that the icon of the app in the menu changes with the actual weather, but the icon isn't showing up. There is still a space in the menu bar where I can click and open the app, it's just that the icon has disappeared. Any ideas to fix it?
1
1
639
Apr ’25
.onTapGesture does not work when SwiftUI component sits in a flipped NSVIew
Take a look at this simple code: import Cocoa import SwiftUI struct DemoView: View { var body: some View { Text("Click me!") .onTapGesture { print("Clicked") } } } class FlippedView: NSView { override var isFlipped: Bool { return true } } class ViewController: NSViewController { override func viewDidLoad() { super.viewDidLoad() let stackView = NSStackView() stackView.orientation = .vertical stackView.alignment = .leading stackView.spacing = 0 stackView.translatesAutoresizingMaskIntoConstraints = false let hostView = NSHostingView(rootView: DemoView()) stackView.addArrangedSubview(hostView) let scrollView = NSScrollView() scrollView.translatesAutoresizingMaskIntoConstraints = false let flippedView = FlippedView() flippedView.addSubview(stackView) scrollView.documentView = flippedView view.addSubview(scrollView) NSLayoutConstraint.activate([ scrollView.topAnchor.constraint(equalTo: view.topAnchor), scrollView.leadingAnchor.constraint(equalTo: view.leadingAnchor), scrollView.trailingAnchor.constraint(equalTo: view.trailingAnchor), scrollView.bottomAnchor.constraint(equalTo: view.bottomAnchor), ]) } } I need my scroll view to start at the very top, so i put it inside a flipped document view. But now .onTapGesture does not fire.
1
0
166
Apr ’25
Unable to start a live activity
I'm unable to get live activity to show up in my app so I started to play with the demo app Emoji Rangers. The demo project initially only created a live activity in-app and then you're able to update it via the demo buttons. I added the following code to have it be able to start a live activity from the backend: func observePushToStartToken() { Task { for await data in Activity.pushToStartTokenUpdates { let token = data.map {String(format: "%02x", $0)}.joined() // Send token to the server print("got PUSHTOSTART TOKEN: (token)") } } } I get the token and then I use it to send this payload that should start the activity: { "aps":{ "timestamp":1743719911, "event":"start", "content-state":{ "currentHealthLevel":100, "eventDescription":"Adventure has begun!", "supercharged":true }, "input-push-token":1, "attributes-type":"AdventureAttributes", "attributes":{ "currentHealthLevel":100, "eventDescription":"Adventure has begun!", "supercharged":true }, "alert":{ "title":{ "loc-key":"%@ is on an adventure!", "loc-args":[ "Power Panda" ] }, "body":{ "loc-key":"%@ found a sword!", "loc-args":[ "Power Panda" ] }, "sound":"chime.aiff" } } } But unfortunately I get an error when I send it: [AdventureAttributes] Error creating activity: NSCocoaErrorDomain (4865) The data couldn't be read because it is missing. First step is to get this working, so I want to get your help in figuring out what I'm missing.
1
0
77
Apr ’25
Keyboard doesn't close if QuickType bar is open for password auto-fill in SwiftUI when using associated domains.
Description Our app (and sample app) are using associated domains to support deep linking. As an unintended side effect we get full support for auto-filling passwords with the QuickType bar on our login screen. However, after the username and password fields are filled and the user taps the Login button, the keyboard stays on screen. We have tried everything I can think of including @FocusState UIKit resignFirstResponder, and many other iterations of testing. Our login screen is in a fullscreencover or sheet. When the sheet dismisses the keyboard stays. In my sample app if I use a navigation stack and push the next view onto the stack, the keyboard closes. I can't provide a useful video because the iOS screen recorder will hide the keyboard when focus is in a SecureField. Note: If we remove the associated domain from the project everything works as expected. Code Example struct ContentView: View { @State private var name: String = "" @State private var password: String = "" @State private var showLogin = false @FocusState private var isFocused: Bool var body: some View { VStack { Button("Login") { showLogin.toggle() } } .fullScreenCover(isPresented: $showLogin) { VStack { TextField("Enter your name", text: $name) .textFieldStyle(.roundedBorder) .focused($isFocused) SecureField("Enter password", text: $password) .autocapitalization(.none) .autocorrectionDisabled(true) .textContentType(.password) .focused($isFocused) Button("Login") { isFocused = false showLogin = false } .buttonStyle(.borderedProminent) } } } } Steps to Reproduce Launch sample app Tap 'Login' Place keyboard focus in the first text field (name) Keyboard with QuickType bar opens Tap 'Passwords' Create a new password for this login item (choose any username) Passwords will close Tap 'Login' to close the sheet Force close the app Reopen the app Tap 'Login' Place keyboard focus in the first text field (name) Keyboard with QuickType” bar opens Tap the auto-fill password button (password for atomicrobot.com in my case) User name and password fields are filled out Keyboard with QuickType bar is still open; keyboard focus is in "password" field Tap 'Login' Sheet closes, keyboard is still open
Topic: UI Frameworks SubTopic: SwiftUI
5
1
401
Apr ’25
UICollectionView Dequeue Crash Xcode 16.2
I am facing same issue with major crash while coming out from this function. Basically using collectionView.dequeReusableCell with size calculation. func getSizeOfFavouriteCell(_ collectionView: UICollectionView, at indexPath: IndexPath, item: FindCircleInfoCellItem) -> CGSize { guard let dummyCell = collectionView.dequeueReusableCell( withReuseIdentifier: TAButtonAddCollectionViewCell.reuseIdentifier, for: indexPath) as? TAButtonAddCollectionViewCell else { return CGSize.zero } dummyCell.title = item.title dummyCell.subtitle = item.subtitle dummyCell.icon = item.icon dummyCell.layoutIfNeeded() var targetSize = CGSize.zero if viewModel.favoritesDataSource.isEmpty.not, viewModel.favoritesDataSource.count > FindSheetViewControllerConstants.minimumFavoritesToDisplayInSection { targetSize = CGSize(width: collectionView.frame.size.width / 2, height: collectionView.frame.height) var estimatedSize: CGSize = dummyCell.systemLayoutSizeFitting(targetSize) if estimatedSize.width > targetSize.width { estimatedSize.width = targetSize.width } return CGSize(width: estimatedSize.width, height: targetSize.height) } } We have resolve issue with size calculation with checking nil. Working fine in xcode 15 and 16+. Note: Please help me with reason of crash? Is it because of xCode 16.2 onwards **strict check on UICollectionView **
0
0
155
Apr ’25
Mac Catalyst SwiftUI – . focused() not working
Hello, given this following simple SwiftUI setup: struct ContentView: View { var body: some View { CustomFocusView() } } struct CustomFocusView: View { @FocusState private var isFocused: Bool var body: some View { color .frame(width: 128, height: 128) .focusable(true) .focused($isFocused) .onTapGesture { isFocused.toggle() } .onKeyPress("a") { print("A pressed") return .handled } } var color: Color { isFocused ? .blue : .red } } If I run this via Mac – Designed for iPad, the CustomFocusView toggles focus as expected and cycles through red and blue. Now if I run this same exact code via Mac Catalyst absolutely nothing happens and so far I wasn't able to ever get this view to accept focused state. Is this expected? I would appreciate if anyone could hint me on how to get this working. Thank and best regards!
5
0
636
Apr ’25
Title: Frequent SIGSEGV crashes in QuartzCore's copy_image (iOS 18.4) We're experiencing numerous crashes with the following signature:
Title: Frequent SIGSEGV crashes in QuartzCore's copy_image (iOS 18.4) We're experiencing numerous crashes with the following signature: Exception Codes: fault addr: 0x00000000000000e0 Crashed Thread: 0 Thread 0 0 QuartzCore CA::Render::copy_image(CGImage*, CGColorSpace*, unsigned int, double, double) + 1972 1 QuartzCore CA::Render::copy_image(CGImage*, CGColorSpace*, unsigned int, double, double) + 1260 2 QuartzCore CA::Render::prepare_image(CGImage*, CGColorSpace*, unsigned int, double) + 24 3 QuartzCore CA::Layer::prepare_contents(CALayer*, CA::Transaction*) + 220 4 QuartzCore CA::Layer::prepare_commit(CA::Transaction*) + 284 5 QuartzCore CA::Context::commit_transaction(CA::Transaction*, double, double*) + 488 6 QuartzCore CA::Transaction::commit() + 644 7 UIKitCore ___34-[UIApplication _firstCommitBlock]_block_invoke_2 + 36 8 CoreFoundation ___CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 28 9 CoreFoundation ___CFRunLoopDoBlocks + 352 10 CoreFoundation ___CFRunLoopRun + 868 11 CoreFoundation _CFRunLoopRunSpecific + 572 12 GraphicsServices _GSEventRunModal + 168 13 UIKitCore -[UIApplication _run] + 816 14 UIKitCore _UIApplicationMain + 336 15 kugou _main + 132 16 dyld __dyld_process_info_create + 33284 Observations: 1.Crashes consistently occur in Core Animation's image processing pipeline 2.100% of occurrences are on iOS 18.4 devices 3.Crash signature suggests memory access violation during image/copy operations 4.Not tied to any specific device model Questions for Apple: 1.Is this crash pattern recognized as a known issue in iOS 18.4? 2.Are there specific conditions that could trigger SEGV_ACCERR in CA::Render::copy_image? 3.Could this be related to color space handling or image format requirements changes? 4.Any recommended workarounds while waiting for a system update?
Topic: UI Frameworks SubTopic: UIKit Tags:
0
1
133
Apr ’25
Can sections be moved/reordered within list (via onMove-style dragging)?
Consider the following example of a List view containing sections of rows. import SwiftUI struct ListSectionView: View { @State private var sectionHeaders = ["section1", "section2", "section3"] var body: some View { List { ForEach(sectionHeaders, id: \.self) { sectionHeader in Section(header: Text(sectionHeader)) { Text("1") Text("2") Text("3") } } .onMove { indices, newOffset in // ... } } } } I would like to reorder the sections within the list by dragging the respective section header to its new position in the list - similar to moving individual rows via onMove-dragging but with the sections instead of the rows. The above approach does not work. It "activates" moving the rows and then the .onMove code acts on those. The sections themselves are not moved. How can I move/reorder the sections within the list? Thanks.
1
0
186
Apr ’25
PencilKit on visionOS Doesn’t Support Left-Handed Users? How Can We Customize Hand Roles?
I’m building a visionOS app that uses PencilKit for drawing. Currently, PencilKit defaults to using the right hand for drawing and the left hand for panning, with no apparent way to change this behavior. Some of my users are left-handed, and they naturally want to draw with their left hand and pan with their right. However, PencilKit doesn’t seem to support this interaction pattern. Is there a way to customize which hand does what in PencilKit on visionOS? Or have I missed some API or workaround that would allow support for left-handed users?
1
0
243
Apr ’25
SwiftUI sheet ignores detent on rapid second presentation
Given a SwiftUI sheet with presentation detent(s): struct ContentView: View { @State var isSheetOpen = false var body: some View { Button("Open Sheet") { isSheetOpen = true } .sheet(isPresented: $isSheetOpen) { Color.black .presentationDetents([.medium]) } } } If you: open the sheet close it and rapidly open it again the second presentation will ignore the detent and open a full screen sheet instead. Xcode 16.3, iOS 18.4 Bug report FB17115890
2
1
114
Apr ’25
Severe hangs with LazyHStack inside ScrollView
Hi, I got a problem with severe hangs when I use code like this on tvOS 18.2 If I try to use HStack instead of LazyHStack inside the scrollview then the problem does not occur any more but then the scroll performance is compromised and the vertical scroll is no longer that smooth. Does someone has any experience with this? Is this SwiftUI problem or am I missing something? ScrollView { LazyVStack { ForEach(0...100, id: \.self) { _ in ScrollView { LazyHStack { ForEach(0...20, id: \.self) { _ in Color.red.frame(height: 300) } } } } } }
2
0
186
Apr ’25
Longtime UIStackView Bug
There has been a long lasting UIStackView bug dating back to 2016 that still exists in the latest Xcode 16.3 and SDKs, where calling setHidden:true multiple times (lets say twice) on a subview of that stack view requires calling setHidden:false twice before the subview shows up again. This was originally documented via Radar #25087688. Hopefully a Frameworks Engineer here on the forums can raise it to the attention of the appropriate engineers. It would be really nice if this eventually gets fixed, because it's one of those odd issues where you end up wasting a lot of time trying to debug because everything looks correct.
Topic: UI Frameworks SubTopic: UIKit Tags:
0
1
104
Apr ’25
Activate hoverEffect on separate entity attachment view
Hi, I'm working on RealityView and I have two entities in RCP. In order to set views for both entities, I have to create two separate attachments for each entity. What I want to achieve is that when I hover (by eye) on one entity's attachment, it would trigger the hover effect of the other entity's attachment. I try to use the hoverEffectGroup, but it would only activate the hover effect in a subview, instead a complete separate view. I refer to the following WWDC instruction for the hover effect. https://developer.apple.com/videos/play/wwdc2024/10152/
0
0
81
Apr ’25
UIDocumentPickerViewController dismisses presenting view controller when selecting a file multiple times quickly
Description When using UIDocumentPickerViewController with allowsMultipleSelection = false, I expect that selecting a file will dismiss only the document picker. However, if a user quickly taps the same file multiple times, the picker dismisses both itself and the presenting view controller (i.e., it pops two levels from the view controller stack), which leads to unintended behavior and breaks presentation flow. Expected Behavior Only UIDocumentPickerViewController should be dismissed when a file is selected—even if the user taps quickly or multiple times on the same file. Actual Behavior When tapping the same file multiple times quickly, the picker dismisses not only itself but also the parent view controller it was presented from. Steps to Reproduce Create a simple view controller and present another one modally over it. From that presented view controller, present a UIDocumentPickerViewController with allowsMultipleSelection = false. Tap quickly on the same file in the picker 2 times. Result: Both the document picker and the presenting view controller are dismissed. Reproducible Code Snippet class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() view.backgroundColor = .green addLabel("Parent View Controller") DispatchQueue.main.async { [unowned self] in let child = UIViewController() child.view.backgroundColor = .yellow present(child, animated: true) child.addLabel("Child View Controller") let vc = UIDocumentPickerViewController( forOpeningContentTypes: [.pdf, .jpeg, .png], asCopy: true ) vc.allowsMultipleSelection = false child.present(vc, animated: true) } } } extension UIViewController { func addLabel(_ text: String) { let label = UILabel(frame: CGRect(x: 0, y: 50, width: view.bounds.width, height: 30)) label.text = text view.addSubview(label) } } Environment Device: iPhone 15 Pro and others iOS version: 18.2 (reproduces on multiple iOS versions) Occurs with: .pdf, .jpeg, .png file types Mode: Both simulator and real device Notes Happens consistently with fast multiple taps on the same file. This breaks expected view controller stack behavior.
0
0
144
Apr ’25
Is this log noise? "CoreSVG: Error: NULL ref passed to getObjectCoreSVG: Error: NULL ref passed to getObject"
Before I waste time creating an Apple Developer Support ticket, I’m hoping an Apple DTS engineer can confirm if this is just log noise. Here’s the code: import SwiftUI struct ContentView: View { @State private var editMode: EditMode = .inactive @State private var items = ["Item 1", "Item 2", "Item 3"] var body: some View { NavigationStack { List { ForEach(items, id: \.self) { item in Text(item) } .onDelete { indexSet in items.remove(atOffsets: indexSet) } } .environment(\.editMode, $editMode) .toolbar { ToolbarItem(placement: .topBarTrailing) { EditButton() .environment(\.editMode, $editMode) } } } } } #Preview { ContentView() } When you run this code and tap Edit, you’ll initially get: CoreSVG has logged an error. Set environment variabe [sic] "CORESVG_VERBOSE" to learn more. After setting CORESVG_VERBOSE = YES, you’ll see: CoreSVG: Error: NULL ref passed to getObjectCoreSVG: Error: NULL ref passed to getObject This error only appears the first time Edit is tapped after a build and run. It won't happen again, even after force-quitting and reopening the app. The issue also only happens on iOS 18.0 and 18.1—I can’t reproduce it on iOS 17.5. Fortunately, it doesn’t seem to cause any negative side effects. Is this just log noise?
Topic: UI Frameworks SubTopic: SwiftUI
3
5
1.7k
Apr ’25
UI freeze during layouting
One of our users reported a very strange bug where our app freezes and eventually crashes on some screen transitions. From different crash logs we could determine that the app freezes up when we call view.layoutIfNeeded() for animating constraint changes. It then gets killed by the watchdog 10 seconds later: Exception Type: EXC_CRASH (SIGKILL) Exception Codes: 0x0000000000000000, 0x0000000000000000 Termination Reason: FRONTBOARD 2343432205 <RBSTerminateContext| domain:10 code:0x8BADF00D explanation:scene-update watchdog transgression: app<bundleID(2A01F261-3554-44C0-B5A9-EBEB446484AD)>:6921 exhausted real (wall clock) time allowance of 10.00 seconds ProcessVisibility: Background ProcessState: Running WatchdogEvent: scene-update WatchdogVisibility: Background WatchdogCPUStatistics: ( "Elapsed total CPU time (seconds): 24.320 (user 18.860, system 5.460), 29% CPU", "Elapsed application CPU time (seconds): 10.630, 12% CPU" ) reportType:CrashLog maxTerminationResistance:Interactive> The crash stack trace looks slightly different, depending on the UI transition that is happening. Here are the two we observed so far. Both are triggered by the layoutIfNeeded() call. Thread 0 name: Dispatch queue: com.apple.main-thread Thread 0 Crashed: 0 CoreAutoLayout 0x1b09f90e4 -[NSISEngine valueForEngineVar:] + 8 1 UIKitCore 0x18f919478 -[_UIViewLayoutEngineRelativeAlignmentRectOriginCache origin] + 372 2 UIKitCore 0x18f918f18 -[UIView _nsis_center:bounds:inEngine:forLayoutGuide:] + 1372 3 UIKitCore 0x18f908e9c -[UIView(Geometry) _applyISEngineLayoutValuesToBoundsOnly:] + 248 4 UIKitCore 0x18f9089e0 -[UIView(Geometry) _resizeWithOldSuperviewSize:] + 148 5 CoreFoundation 0x18d0cd6a4 __NSARRAY_IS_CALLING_OUT_TO_A_BLOCK__ + 24 6 CoreFoundation 0x18d0cd584 -[__NSArrayM enumerateObjectsWithOptions:usingBlock:] + 432 7 UIKitCore 0x18f8e62b0 -[UIView(Geometry) resizeSubviewsWithOldSize:] + 128 8 UIKitCore 0x18f977194 -[UIView(AdditionalLayoutSupport) _is_layout] + 124 9 UIKitCore 0x18f976c2c -[UIView _updateConstraintsAsNecessaryAndApplyLayoutFromEngine] + 800 10 UIKitCore 0x18f903944 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 2728 11 QuartzCore 0x18ec15498 CA::Layer::layout_if_needed(CA::Transaction*) + 496 12 UIKitCore 0x18f940c10 -[UIView(Hierarchy) layoutBelowIfNeeded] + 312 Thread 0 name: Dispatch queue: com.apple.main-thread Thread 0 Crashed: 0 QuartzCore 0x18ec2cfe0 -[CALayer animationForKey:] + 176 1 UIKitCore 0x18fa5b258 UniqueAnimationKeyForLayer + 192 2 UIKitCore 0x18fa5ab7c __67-[_UIViewAdditiveAnimationAction runActionForKey:object:arguments:]_block_invoke_2 + 468 3 UIKitCore 0x18fa5ba5c -[_UIViewAdditiveAnimationAction runActionForKey:object:arguments:] + 1968 4 QuartzCore 0x18eb9e938 CA::Layer::set_bounds(CA::Rect const&, bool) + 428 5 QuartzCore 0x18eb9e760 -[CALayer setBounds:] + 132 6 UIKitCore 0x18f941770 -[UIView _backing_setBounds:] + 64 7 UIKitCore 0x18f940404 -[UIView(Geometry) setBounds:] + 340 8 UIKitCore 0x18f908f84 -[UIView(Geometry) _applyISEngineLayoutValuesToBoundsOnly:] + 480 9 UIKitCore 0x18f9089e0 -[UIView(Geometry) _resizeWithOldSuperviewSize:] + 148 10 CoreFoundation 0x18d0cd6a4 __NSARRAY_IS_CALLING_OUT_TO_A_BLOCK__ + 24 11 CoreFoundation 0x18d132488 -[__NSSingleObjectArrayI enumerateObjectsWithOptions:usingBlock:] + 92 12 UIKitCore 0x18f8e62b0 -[UIView(Geometry) resizeSubviewsWithOldSize:] + 128 13 UIKitCore 0x18f977194 -[UIView(AdditionalLayoutSupport) _is_layout] + 124 14 UIKitCore 0x18f976c2c -[UIView _updateConstraintsAsNecessaryAndApplyLayoutFromEngine] + 800 15 UIKitCore 0x18f916258 -[UIView(Hierarchy) layoutSubviews] + 204 16 UIKitCore 0x18f903814 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 2424 17 QuartzCore 0x18ec15498 CA::Layer::layout_if_needed(CA::Transaction*) + 496 18 UIKitCore 0x18f940c10 -[UIView(Hierarchy) layoutBelowIfNeeded] + 312 So far, we only know of one iPad Air M1 where this is happening. But we don't know how many users experience this issue without reporting it. Does anyone know what could cause Auto Layout or Core Animation to block in those calls? We have no clue so far...
Replies
1
Boosts
0
Views
207
Activity
Apr ’25
Remove "copy cursor" when dragging a view in SwiftUI
Hi, Im new to SwiftUI and Im trying to implement some drag and drop functionality for some tabs in my application. Im using .draggable(_) and .dropDestination for this and the issue I have is that as I drag the view, the mouse cursor changes to the copy cursor with the green plus sign and I don't like it but I can't figure out how to avoid it. Any help would be appreciated.
Replies
1
Boosts
0
Views
78
Activity
Apr ’25
Can SwiftUI.Picker.segmented make one or more segments disable in iOS 16?
I'm trying to make one of my segments disable and configure different font color. I'm able to achieve it by using .selectionDisabled(), which is only available in iOS 17 +. I am wondering if there's an alternative for iOS 16. Thank you import SwiftUI struct MySegment: Hashable { let label: String let isDisabled: Bool } struct MySegmentedControlView: View { @State var selection: String = "item1" let data: [MySegment] = [ MySegment(label: "item1", isDisabled: false), MySegment(label: "item2", isDisabled: false), MySegment(label: "item3", isDisabled: true) ] init() { UISegmentedControl.appearance().backgroundColor = .red.withAlphaComponent(0.15) UISegmentedControl.appearance().selectedSegmentTintColor = .red UISegmentedControl.appearance().setTitleTextAttributes([.foregroundColor: UIColor.white], for: .selected) UISegmentedControl.appearance().setTitleTextAttributes([.foregroundColor: UIColor.gray], for: .normal) UISegmentedControl.appearance().setTitleTextAttributes([.foregroundColor: UIColor.systemGray6], for: .disabled) } var body: some View { VStack { Picker("", selection: $selection) { ForEach(data, id: \.label) { if #available(iOS 17.0, *) { Text($0.label) .selectionDisabled($0.isDisabled) } else { Text($0.label) .tag($0.label) .disabled($0.isDisabled) } } } .pickerStyle(.segmented) } .padding() } }
Topic: UI Frameworks SubTopic: SwiftUI
Replies
1
Boosts
0
Views
67
Activity
Apr ’25
Migrating SwiftUI lifecycle to UIKit's
Hi, everyone I have an app already in production that uses SwiftUI's lifecycle (paired with an AppDelegate). Due to some specific behaviour of the app, we decided to migrate the app to use UIKit's lifecycle, adding the corresponding SceneDelegate to the app, as well as modifying the Info.plist file accordingly to accommodate to these new changes. Although everything seems to work when installing the app from zero, when installing it on top of another version, the screen goes black and the user cannot interact with the app at all unless they reinstall it completely. As I've read online, iOS is reusing the window configuration from the previous execution of the app. I know this because the AppDelegate's application(application:connectingSceneSession:options) is not being called when coming from a previous version of the app. I would love to know what can I do to make this work because, as you may understand, we cannot ask our user base to reinstall the application. Thank you very much.
Replies
7
Boosts
2
Views
1.9k
Activity
Apr ’25
Menu Bar Icon NOT Showing Up
Hi, I'm trying to make a weather menu bar app, and I want to have it so that the icon of the app in the menu changes with the actual weather, but the icon isn't showing up. There is still a space in the menu bar where I can click and open the app, it's just that the icon has disappeared. Any ideas to fix it?
Replies
1
Boosts
1
Views
639
Activity
Apr ’25
.onTapGesture does not work when SwiftUI component sits in a flipped NSVIew
Take a look at this simple code: import Cocoa import SwiftUI struct DemoView: View { var body: some View { Text("Click me!") .onTapGesture { print("Clicked") } } } class FlippedView: NSView { override var isFlipped: Bool { return true } } class ViewController: NSViewController { override func viewDidLoad() { super.viewDidLoad() let stackView = NSStackView() stackView.orientation = .vertical stackView.alignment = .leading stackView.spacing = 0 stackView.translatesAutoresizingMaskIntoConstraints = false let hostView = NSHostingView(rootView: DemoView()) stackView.addArrangedSubview(hostView) let scrollView = NSScrollView() scrollView.translatesAutoresizingMaskIntoConstraints = false let flippedView = FlippedView() flippedView.addSubview(stackView) scrollView.documentView = flippedView view.addSubview(scrollView) NSLayoutConstraint.activate([ scrollView.topAnchor.constraint(equalTo: view.topAnchor), scrollView.leadingAnchor.constraint(equalTo: view.leadingAnchor), scrollView.trailingAnchor.constraint(equalTo: view.trailingAnchor), scrollView.bottomAnchor.constraint(equalTo: view.bottomAnchor), ]) } } I need my scroll view to start at the very top, so i put it inside a flipped document view. But now .onTapGesture does not fire.
Replies
1
Boosts
0
Views
166
Activity
Apr ’25
Unable to start a live activity
I'm unable to get live activity to show up in my app so I started to play with the demo app Emoji Rangers. The demo project initially only created a live activity in-app and then you're able to update it via the demo buttons. I added the following code to have it be able to start a live activity from the backend: func observePushToStartToken() { Task { for await data in Activity.pushToStartTokenUpdates { let token = data.map {String(format: "%02x", $0)}.joined() // Send token to the server print("got PUSHTOSTART TOKEN: (token)") } } } I get the token and then I use it to send this payload that should start the activity: { "aps":{ "timestamp":1743719911, "event":"start", "content-state":{ "currentHealthLevel":100, "eventDescription":"Adventure has begun!", "supercharged":true }, "input-push-token":1, "attributes-type":"AdventureAttributes", "attributes":{ "currentHealthLevel":100, "eventDescription":"Adventure has begun!", "supercharged":true }, "alert":{ "title":{ "loc-key":"%@ is on an adventure!", "loc-args":[ "Power Panda" ] }, "body":{ "loc-key":"%@ found a sword!", "loc-args":[ "Power Panda" ] }, "sound":"chime.aiff" } } } But unfortunately I get an error when I send it: [AdventureAttributes] Error creating activity: NSCocoaErrorDomain (4865) The data couldn't be read because it is missing. First step is to get this working, so I want to get your help in figuring out what I'm missing.
Replies
1
Boosts
0
Views
77
Activity
Apr ’25
Keyboard doesn't close if QuickType bar is open for password auto-fill in SwiftUI when using associated domains.
Description Our app (and sample app) are using associated domains to support deep linking. As an unintended side effect we get full support for auto-filling passwords with the QuickType bar on our login screen. However, after the username and password fields are filled and the user taps the Login button, the keyboard stays on screen. We have tried everything I can think of including @FocusState UIKit resignFirstResponder, and many other iterations of testing. Our login screen is in a fullscreencover or sheet. When the sheet dismisses the keyboard stays. In my sample app if I use a navigation stack and push the next view onto the stack, the keyboard closes. I can't provide a useful video because the iOS screen recorder will hide the keyboard when focus is in a SecureField. Note: If we remove the associated domain from the project everything works as expected. Code Example struct ContentView: View { @State private var name: String = "" @State private var password: String = "" @State private var showLogin = false @FocusState private var isFocused: Bool var body: some View { VStack { Button("Login") { showLogin.toggle() } } .fullScreenCover(isPresented: $showLogin) { VStack { TextField("Enter your name", text: $name) .textFieldStyle(.roundedBorder) .focused($isFocused) SecureField("Enter password", text: $password) .autocapitalization(.none) .autocorrectionDisabled(true) .textContentType(.password) .focused($isFocused) Button("Login") { isFocused = false showLogin = false } .buttonStyle(.borderedProminent) } } } } Steps to Reproduce Launch sample app Tap 'Login' Place keyboard focus in the first text field (name) Keyboard with QuickType bar opens Tap 'Passwords' Create a new password for this login item (choose any username) Passwords will close Tap 'Login' to close the sheet Force close the app Reopen the app Tap 'Login' Place keyboard focus in the first text field (name) Keyboard with QuickType” bar opens Tap the auto-fill password button (password for atomicrobot.com in my case) User name and password fields are filled out Keyboard with QuickType bar is still open; keyboard focus is in "password" field Tap 'Login' Sheet closes, keyboard is still open
Topic: UI Frameworks SubTopic: SwiftUI
Replies
5
Boosts
1
Views
401
Activity
Apr ’25
UICollectionView Dequeue Crash Xcode 16.2
I am facing same issue with major crash while coming out from this function. Basically using collectionView.dequeReusableCell with size calculation. func getSizeOfFavouriteCell(_ collectionView: UICollectionView, at indexPath: IndexPath, item: FindCircleInfoCellItem) -> CGSize { guard let dummyCell = collectionView.dequeueReusableCell( withReuseIdentifier: TAButtonAddCollectionViewCell.reuseIdentifier, for: indexPath) as? TAButtonAddCollectionViewCell else { return CGSize.zero } dummyCell.title = item.title dummyCell.subtitle = item.subtitle dummyCell.icon = item.icon dummyCell.layoutIfNeeded() var targetSize = CGSize.zero if viewModel.favoritesDataSource.isEmpty.not, viewModel.favoritesDataSource.count > FindSheetViewControllerConstants.minimumFavoritesToDisplayInSection { targetSize = CGSize(width: collectionView.frame.size.width / 2, height: collectionView.frame.height) var estimatedSize: CGSize = dummyCell.systemLayoutSizeFitting(targetSize) if estimatedSize.width > targetSize.width { estimatedSize.width = targetSize.width } return CGSize(width: estimatedSize.width, height: targetSize.height) } } We have resolve issue with size calculation with checking nil. Working fine in xcode 15 and 16+. Note: Please help me with reason of crash? Is it because of xCode 16.2 onwards **strict check on UICollectionView **
Replies
0
Boosts
0
Views
155
Activity
Apr ’25
Mac Catalyst SwiftUI – . focused() not working
Hello, given this following simple SwiftUI setup: struct ContentView: View { var body: some View { CustomFocusView() } } struct CustomFocusView: View { @FocusState private var isFocused: Bool var body: some View { color .frame(width: 128, height: 128) .focusable(true) .focused($isFocused) .onTapGesture { isFocused.toggle() } .onKeyPress("a") { print("A pressed") return .handled } } var color: Color { isFocused ? .blue : .red } } If I run this via Mac – Designed for iPad, the CustomFocusView toggles focus as expected and cycles through red and blue. Now if I run this same exact code via Mac Catalyst absolutely nothing happens and so far I wasn't able to ever get this view to accept focused state. Is this expected? I would appreciate if anyone could hint me on how to get this working. Thank and best regards!
Replies
5
Boosts
0
Views
636
Activity
Apr ’25
Title: Frequent SIGSEGV crashes in QuartzCore's copy_image (iOS 18.4) We're experiencing numerous crashes with the following signature:
Title: Frequent SIGSEGV crashes in QuartzCore's copy_image (iOS 18.4) We're experiencing numerous crashes with the following signature: Exception Codes: fault addr: 0x00000000000000e0 Crashed Thread: 0 Thread 0 0 QuartzCore CA::Render::copy_image(CGImage*, CGColorSpace*, unsigned int, double, double) + 1972 1 QuartzCore CA::Render::copy_image(CGImage*, CGColorSpace*, unsigned int, double, double) + 1260 2 QuartzCore CA::Render::prepare_image(CGImage*, CGColorSpace*, unsigned int, double) + 24 3 QuartzCore CA::Layer::prepare_contents(CALayer*, CA::Transaction*) + 220 4 QuartzCore CA::Layer::prepare_commit(CA::Transaction*) + 284 5 QuartzCore CA::Context::commit_transaction(CA::Transaction*, double, double*) + 488 6 QuartzCore CA::Transaction::commit() + 644 7 UIKitCore ___34-[UIApplication _firstCommitBlock]_block_invoke_2 + 36 8 CoreFoundation ___CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 28 9 CoreFoundation ___CFRunLoopDoBlocks + 352 10 CoreFoundation ___CFRunLoopRun + 868 11 CoreFoundation _CFRunLoopRunSpecific + 572 12 GraphicsServices _GSEventRunModal + 168 13 UIKitCore -[UIApplication _run] + 816 14 UIKitCore _UIApplicationMain + 336 15 kugou _main + 132 16 dyld __dyld_process_info_create + 33284 Observations: 1.Crashes consistently occur in Core Animation's image processing pipeline 2.100% of occurrences are on iOS 18.4 devices 3.Crash signature suggests memory access violation during image/copy operations 4.Not tied to any specific device model Questions for Apple: 1.Is this crash pattern recognized as a known issue in iOS 18.4? 2.Are there specific conditions that could trigger SEGV_ACCERR in CA::Render::copy_image? 3.Could this be related to color space handling or image format requirements changes? 4.Any recommended workarounds while waiting for a system update?
Topic: UI Frameworks SubTopic: UIKit Tags:
Replies
0
Boosts
1
Views
133
Activity
Apr ’25
Xcode16.3 SwiftUI Preview Crash
Xcode16.3 SwiftUI Preview Library not loaded: /usr/lib/swift/libswiftWebKit.dylib Untitled.rtf
Replies
1
Boosts
1
Views
504
Activity
Apr ’25
Can sections be moved/reordered within list (via onMove-style dragging)?
Consider the following example of a List view containing sections of rows. import SwiftUI struct ListSectionView: View { @State private var sectionHeaders = ["section1", "section2", "section3"] var body: some View { List { ForEach(sectionHeaders, id: \.self) { sectionHeader in Section(header: Text(sectionHeader)) { Text("1") Text("2") Text("3") } } .onMove { indices, newOffset in // ... } } } } I would like to reorder the sections within the list by dragging the respective section header to its new position in the list - similar to moving individual rows via onMove-dragging but with the sections instead of the rows. The above approach does not work. It "activates" moving the rows and then the .onMove code acts on those. The sections themselves are not moved. How can I move/reorder the sections within the list? Thanks.
Replies
1
Boosts
0
Views
186
Activity
Apr ’25
PencilKit on visionOS Doesn’t Support Left-Handed Users? How Can We Customize Hand Roles?
I’m building a visionOS app that uses PencilKit for drawing. Currently, PencilKit defaults to using the right hand for drawing and the left hand for panning, with no apparent way to change this behavior. Some of my users are left-handed, and they naturally want to draw with their left hand and pan with their right. However, PencilKit doesn’t seem to support this interaction pattern. Is there a way to customize which hand does what in PencilKit on visionOS? Or have I missed some API or workaround that would allow support for left-handed users?
Replies
1
Boosts
0
Views
243
Activity
Apr ’25
SwiftUI sheet ignores detent on rapid second presentation
Given a SwiftUI sheet with presentation detent(s): struct ContentView: View { @State var isSheetOpen = false var body: some View { Button("Open Sheet") { isSheetOpen = true } .sheet(isPresented: $isSheetOpen) { Color.black .presentationDetents([.medium]) } } } If you: open the sheet close it and rapidly open it again the second presentation will ignore the detent and open a full screen sheet instead. Xcode 16.3, iOS 18.4 Bug report FB17115890
Replies
2
Boosts
1
Views
114
Activity
Apr ’25
Severe hangs with LazyHStack inside ScrollView
Hi, I got a problem with severe hangs when I use code like this on tvOS 18.2 If I try to use HStack instead of LazyHStack inside the scrollview then the problem does not occur any more but then the scroll performance is compromised and the vertical scroll is no longer that smooth. Does someone has any experience with this? Is this SwiftUI problem or am I missing something? ScrollView { LazyVStack { ForEach(0...100, id: \.self) { _ in ScrollView { LazyHStack { ForEach(0...20, id: \.self) { _ in Color.red.frame(height: 300) } } } } } }
Replies
2
Boosts
0
Views
186
Activity
Apr ’25
Longtime UIStackView Bug
There has been a long lasting UIStackView bug dating back to 2016 that still exists in the latest Xcode 16.3 and SDKs, where calling setHidden:true multiple times (lets say twice) on a subview of that stack view requires calling setHidden:false twice before the subview shows up again. This was originally documented via Radar #25087688. Hopefully a Frameworks Engineer here on the forums can raise it to the attention of the appropriate engineers. It would be really nice if this eventually gets fixed, because it's one of those odd issues where you end up wasting a lot of time trying to debug because everything looks correct.
Topic: UI Frameworks SubTopic: UIKit Tags:
Replies
0
Boosts
1
Views
104
Activity
Apr ’25
Activate hoverEffect on separate entity attachment view
Hi, I'm working on RealityView and I have two entities in RCP. In order to set views for both entities, I have to create two separate attachments for each entity. What I want to achieve is that when I hover (by eye) on one entity's attachment, it would trigger the hover effect of the other entity's attachment. I try to use the hoverEffectGroup, but it would only activate the hover effect in a subview, instead a complete separate view. I refer to the following WWDC instruction for the hover effect. https://developer.apple.com/videos/play/wwdc2024/10152/
Replies
0
Boosts
0
Views
81
Activity
Apr ’25
UIDocumentPickerViewController dismisses presenting view controller when selecting a file multiple times quickly
Description When using UIDocumentPickerViewController with allowsMultipleSelection = false, I expect that selecting a file will dismiss only the document picker. However, if a user quickly taps the same file multiple times, the picker dismisses both itself and the presenting view controller (i.e., it pops two levels from the view controller stack), which leads to unintended behavior and breaks presentation flow. Expected Behavior Only UIDocumentPickerViewController should be dismissed when a file is selected—even if the user taps quickly or multiple times on the same file. Actual Behavior When tapping the same file multiple times quickly, the picker dismisses not only itself but also the parent view controller it was presented from. Steps to Reproduce Create a simple view controller and present another one modally over it. From that presented view controller, present a UIDocumentPickerViewController with allowsMultipleSelection = false. Tap quickly on the same file in the picker 2 times. Result: Both the document picker and the presenting view controller are dismissed. Reproducible Code Snippet class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() view.backgroundColor = .green addLabel("Parent View Controller") DispatchQueue.main.async { [unowned self] in let child = UIViewController() child.view.backgroundColor = .yellow present(child, animated: true) child.addLabel("Child View Controller") let vc = UIDocumentPickerViewController( forOpeningContentTypes: [.pdf, .jpeg, .png], asCopy: true ) vc.allowsMultipleSelection = false child.present(vc, animated: true) } } } extension UIViewController { func addLabel(_ text: String) { let label = UILabel(frame: CGRect(x: 0, y: 50, width: view.bounds.width, height: 30)) label.text = text view.addSubview(label) } } Environment Device: iPhone 15 Pro and others iOS version: 18.2 (reproduces on multiple iOS versions) Occurs with: .pdf, .jpeg, .png file types Mode: Both simulator and real device Notes Happens consistently with fast multiple taps on the same file. This breaks expected view controller stack behavior.
Replies
0
Boosts
0
Views
144
Activity
Apr ’25
Is this log noise? "CoreSVG: Error: NULL ref passed to getObjectCoreSVG: Error: NULL ref passed to getObject"
Before I waste time creating an Apple Developer Support ticket, I’m hoping an Apple DTS engineer can confirm if this is just log noise. Here’s the code: import SwiftUI struct ContentView: View { @State private var editMode: EditMode = .inactive @State private var items = ["Item 1", "Item 2", "Item 3"] var body: some View { NavigationStack { List { ForEach(items, id: \.self) { item in Text(item) } .onDelete { indexSet in items.remove(atOffsets: indexSet) } } .environment(\.editMode, $editMode) .toolbar { ToolbarItem(placement: .topBarTrailing) { EditButton() .environment(\.editMode, $editMode) } } } } } #Preview { ContentView() } When you run this code and tap Edit, you’ll initially get: CoreSVG has logged an error. Set environment variabe [sic] "CORESVG_VERBOSE" to learn more. After setting CORESVG_VERBOSE = YES, you’ll see: CoreSVG: Error: NULL ref passed to getObjectCoreSVG: Error: NULL ref passed to getObject This error only appears the first time Edit is tapped after a build and run. It won't happen again, even after force-quitting and reopening the app. The issue also only happens on iOS 18.0 and 18.1—I can’t reproduce it on iOS 17.5. Fortunately, it doesn’t seem to cause any negative side effects. Is this just log noise?
Topic: UI Frameworks SubTopic: SwiftUI
Replies
3
Boosts
5
Views
1.7k
Activity
Apr ’25