Build, test, and submit your app using Xcode, Apple's integrated development environment.

Xcode Documentation

Posts under Xcode subtopic

Post

Replies

Boosts

Views

Activity

Xcode RAM Usage Problem
👋🏻 Hello Apple Developer Community, I’ve recently got the problem with the current Xcode Beta Version and the Preview Feature. Because when I try to load the Preview, the RAM Usage spikes and it’s nearly at the limit on my MacBook (16GB RAM). (Note: This is happening while loading up the Preview) But when I haven’t loaded the Preview Window, the overall RAM Usage of my system is ver low (Note: This is when Xcode has is not loading the Preview) (Note: This is after quitting Xcode for cancelling the load of the Preview) All Pictures are in German, sorry for that ☹️. What are possible problems or solutions against this problem? Have a nice day / evening 😁
1
0
237
Jul ’26
Unable to run App Shortcut: App Shortcuts cannot run on iOS Simulator 26.5 through 27.0 beta 2
App Shortcuts cannot be debugged or executed on iOS Simulator runtimes from iOS 26.5 through iOS 27.0 beta 2 when using Xcode 26.5 through Xcode 27 beta 2. When attempting to run an App Shortcut in the Shortcuts app on the simulator, Shortcuts shows the error: Unable to run App Shortcut The simulator console logs the following error: Attempted to fetch Auto Shortcuts, but couldn't find the AppShortcutsProvider This happens even with Apple’s official App Intents sample project, so it does not appear to be specific to a third-party app implementation. Steps to Reproduce Download Apple’s official sample project from: https://developer.apple.com/documentation/appintents/acceleratingappinteractionswithappintents Open the sample project in Xcode 26.5 through Xcode 27 beta 2. Build and run the app on an iOS Simulator using iOS 26.5 through iOS 27.0 beta 2. Open the Shortcuts app in the simulator. Find one of the sample app’s App Shortcuts. Try to run the App Shortcut. Expected Result The App Shortcut should run successfully in the iOS Simulator, allowing App Shortcuts and App Intents to be debugged during development. Actual Result The Shortcuts app displays: Unable to run App Shortcut The simulator console logs: Attempted to fetch Auto Shortcuts, but couldn't find the AppShortcutsProvider The App Shortcut cannot be executed or debugged in the simulator. Reproducibility Reproduces consistently. Tested Configurations Xcode 26.5 with iOS Simulator 26.5 Xcode 27 beta 2 with iOS Simulator 27.0 beta 2
1
0
153
Jul ’26
Paired Apple Watch never appears in Xcode Devices & Simulators, Developer Mode toggle missing on watchOS
I'm blocked trying to run/debug an app on a physical Apple Watch. The iPhone connects to Xcode perfectly over USB and is fully trusted, but the paired Watch never shows up in Xcode, and because of that the Developer Mode toggle never appears on the watch itself. Environment Mac: MacOS 26.4 Xcode: 26.5 iPhone: iPhone 17, iOS 26.4 — connected to Mac via USB, trusted Apple Watch: Ultra 3, watchOS 26.3 Developer Mode: enabled on iPhone Watch is paired and working normally in the iPhone Watch app What happens In Xcode → Window → Devices and Simulators, only the iPhone ("Brian") shows under Connected, with its installed apps listed correctly. The paired Apple Watch does not appear under it or as a separate entry. On the watch, Settings → Privacy & Security has no Developer Mode item. I understand this only surfaces after Xcode successfully connects to the watch, so I believe the missing Xcode connection is the root cause. When I first connected the iPhone via cable, a Trust prompt did appear on the watch and I accepted it. What I've already tried Enabled Developer Mode on iPhone (toggled off/on, with restarts) Connected iPhone via USB and confirmed Trust on both iPhone and watch Restarted Mac, iPhone, and watch multiple times Confirmed Bluetooth and Wi-Fi are on across all three devices Kept the watch unlocked and on my wrist, close to the iPhone and Mac Despite this, the watch never appears in Xcode and the Developer Mode toggle never surfaces on watchOS. Questions Is this the known Xcode 26 / watchOS 26 tunneling/discovery regression, or is something else going on in my setup? Is there an Apple-supported way to force Xcode to re-discover a paired watch without unpairing it from the iPhone? Has any specific combination of macOS / Xcode / watchOS versions reliably resolved this for anyone? Any guidance appreciated. Happy to file a Feedback Assistant report and share the ID if useful.
1
0
225
Jun ’26
Could not find library with name ”/usr/lib/swift/libswiftWebKit.dylib“
Canvas Previews (targeting macOS) in both Xcode 16.4 & Xcode 26 fail to load, when the project imports a Swift package that imports and uses WebKit. I'm on macOS 15.5. Tried also to bring minimum targets of both the project and the package to 15.0. I see that there are some work-arounds for iOS simulator but nothing for the Mac. Anyone facing the same problem?
6
0
488
Jun ’26
Xcode 27: Bugs / Feedbacks
Hi, I have listed below the Feedbacks for Xcode 27, please have a look at it, considerable time was spent on filing these feedbacks, thanks! Environments All of them were tested on the environment: macOS 26.5.1 (25F80) Xcode 27.0 beta (27A5194q) Feedbacks FB23133706 (Git stage tab) FB23132869 (markdown - code block) FB23132403 (markdown - search) FB23078039 (stash - slow / unresponsive) FB23077930 (stash - allow multiselection) FB23055381 (Run destination - Clear recents) FB23041713 (SwiftUI preview - SwiftData) FB23033844 (Bundle ID) FB23033231 (Device Hub - sizes)
10
1
782
Jun ’26
Unable to sign into sandbox account on simulator / device hub
Hi, I am unable to sign into the sandbox account on the simulator. Settings > Developer > Sandbox Apple Account > Sign in Xcode: 26.6 (17F113) Xcode Simulator: 16.0 (1063.4) I have even tried on Device Hub on Xcode 27. I vaguely remember being able to sign into the simulator using Questions: Is anyone able to sign into Sandbox account on the simulator / device hub? Is there any workaround? Is this a known issue?
0
0
165
Jun ’26
Implementing Your Own Crash Reporter
I often get questions about third-party crash reporting. These usually show up in one of two contexts: Folks are trying to implement their own crash reporter. Folks have implemented their own crash reporter and are trying to debug a problem based on the report it generated. This is a complex issue and this post is my attempt to untangle some of that complexity. IMPORTANT iOS 27, currently in beta, introduced support for out-of-process crash reporting using the CrashReportExtension framework. I haven’t yet had time to update this post to cover that technology. However, if you’re planning to implement your own crash reporter on iOS, you should start there. (The documentation currently states that this feature is available on macOS 27, also currently in beta, but that’s not true (r. 180425854) and I’ve no info to share as to when that’ll change.) If you have a follow-up question about anything I've raised here, please put it in a new thread with the Debugging tag. IMPORTANT All of the following is my own direct experience. None of it should be considered official DTS policy. If you have a specific question that needs a direct answer — perhaps you’re trying to convince your boss that implementing your own crash reporter is a very bad idea — start a dedicated thread here on the forums and we can discuss the details there. Use whatever subtopic is appropriate for your issue, but make sure to add the Debugging tag so that I see it go by. Share and Enjoy — Quinn “The Eskimo!” @ Developer Technical Support @ Apple let myEmail = "eskimo" + "1" + "@" + "apple.com" Scope First, I can only speak to the technical side of this issue. There are other aspects that are beyond my remit: I don’t work for App Review, and only they can give definitive answers about what will or won’t be allowed on the store. Implementing your own crash reporter has significant privacy implications. IMPORTANT If you implement your own crash reporter, discuss the privacy impact with a lawyer. This post assumes that you are implementing your own crash reporter. A lot of folks use a crash reporter from another third party. From my perspective these are the same thing. If you use a custom crash reporter, you are responsible for its behaviour, both good and bad, regardless of where the actual code came from. Note If you use a crash reporter from another third party, run the tests outlined in Preserve the Apple Crash Report to verify that it’s working well. General Advice I strongly advise against implementing your own crash reporter. It’s very easy to create a basic crash reporter that works well enough to debug simple problems. It’s impossible to implement a good crash reporter, one that’s reliable, binary compatible, and sufficient to debug complex problems. The bulk of this post is a low-level explanation of that impossibility. Rather than attempting the impossible, I recommend that you lean in to Apple’s crash reporter. In recent years it’s acquired some really cool new features: If you’re creating an App Store app, the Xcode organiser gives you easy, interactive access to Apple crash reports. If you’re an enterprise developer, consider switching to Custom App Distribution. This yields all the benefits of App Store distribution without your app being generally available on the store. iOS 14 and macOS 12 report crashes in MetricKit. This is a very cool feature, and I’m surprised by how few people use it effectively. If you previously dismissed Apple crash reports as insufficient, I encourage you to reconsider that decision. Why Is This Impossible? Earlier I said “It’s impossible to implement a good crash reporter”, and I want to explain why I’m confident enough in my conclusions to use that specific word. There are two fundamental problems here: On iOS (and the other iOS-based platforms, watchOS and tvOS) your crash reporter must run inside the crashed process. That means it can never be 100% reliable. If the process is crashing then, by definition, it’s in an undefined state. Attempting to do real work in that state is just asking for problems [1]. To get good results your crash reporter must be intimately tied to system implementation details. These can change from release to release, which invalidates the assumptions made by your crash reporter. This isn’t a problem for the Apple crash reporter because it ships with the system. However, a crash reporter that’s built in to your product is always going to be brittle. I’m speaking from hard-won experience here. I worked for DTS during the PowerPC-to-Intel transition, and saw a lot of folks with custom crash reporters struggle through that process. Still, this post exists because lots of folks ignore this reality, so the subsequent sections contain advice about specific technical issues. WARNING Do not interpret any of the following as encouragement to implement your own crash reporter. I strongly advise against that. However, if you ignore my advice then you should at least try to minimise the risk, which is what the rest of this document is about. [1] On macOS it’s possible for your crash reporter to run out of process, just like the Apple crash reporter. However, possible is not the same as easy. In fact, running out of process can make things worse: It prevents you from geting critical state for the crashed process without being tightly bound to OS implementation details. It would be nice if Apple provided APIs for this sort of thing, but that’s currently not the case. Preserve the Apple Crash Report You must ensure that your crash reporter doesn’t disrupt the Apple crash reporter. This is important for three reasons: Some fraction of your crashes will not be caused by your code but by problems in framework code, and accurate Apple crash reports are critical in diagnosing such issues. When dealing with really hard-to-debug problems, you need the more obscure info that’s shown in the Apple crash report. If you’re working with someone from Apple (here on the forums, via a bug report, or a DTS case, or whatever), they’re going to want an accurate Apple crash report. If your crash reporter is disrupting the Apple crash reporter — either preventing it from generating crash reports entirely [1], or distorting those crash reports — that limits how much they can help you. IMPORTANT This is not a theoretical concern. The forums have many threads where I’ve been unable to help folks debug a gnarly problem because their third-party crash reporter didn’t preserve the Apple crash report (see here, here, and here for some examples). To avoid these issues I recommend that you test your crash reporter’s impact on the Apple crash reporter. The basic idea is: Create a program that generates a set of specific crashes. Run through each crash. Verify that your crash reporter produces sensible results. Verify that the Apple crash reporter produces the same results as it does without your crash reporter With regards step 1, your test suite should include: An un-handled language exception thrown by your code An un-handled language exception thrown by the OS (accessing an NSArray out of bounds is an easy way to get this) Various machine exceptions (at a minimum, memory access, illegal instruction, and breakpoint exceptions) Stack overflow Make sure to test all of these cases on both the main thread and a secondary thread. With regards step 4, check that the resulting Apple crash report includes correct values for: The exception info The crashed thread That thread’s state Any application-specific info, and especially the last exception backtrace [1] A particularly pathological behaviour here is to end your crash reporter by calling exit. This completely suppresses the Apple crash report. Some third-party language runtimes ‘helpfully’ include such a crash reporter, which makes it very hard to debug problems that occur within your process but outside of that language. Signals Many third-party crash reporters use UNIX signals to catch the crash. This is a shame because using Mach exception handling, the mechanism used by the Apple crash reporter, is generally a better option. However, there are two reasons to favour UNIX signals over Mach exception handling: On iOS-based platforms your crash reporter must run in-process, and doing in-process Mach exception handling is not feasible. Folks are a lot more familiar with UNIX signals. Mach exception handling, and Mach messaging in general, is pretty darned obscure. If you use UNIX signals for your crash reporter, be aware that this API has some gaping pitfalls. First and foremost, your signal handler can only use async signal safe functions [1]. You can find a list of these functions in sigaction man page [2] [3]. WARNING This list does not include malloc. This means that a crash reporter’s signal handler cannot use Objective-C or Swift, as there’s no way to constrain how those language runtimes allocate memory [4]. That means you’re stuck with C or C++, but even there you have to be careful to comply with this constraint. The Operative: It’s worse than you know. Captain Malcolm Reynolds: It usually is. Many crash reports use functions like backtrace (see its man page) to get a backtrace from their signal handler. There’s two problems with this: backtrace is not an async signal safe function. backtrace uses a naïve algorithm that doesn’t deal well with cross signal handler stack frames [5]. The latter point is particularly worrying, because it hides the identity of the stack frame that triggered the signal. If you’re going to backtrace out of a signal, you must use the crashed thread’s state (accessible via the handlers uap parameter) to start your backtrace. Apropos that, if your crash reporter wants to log the state of the crashed thread, that’s the place to get it. Your signal handler must be prepared to be called by multiple threads. A typical crashing signal (like SIGSEGV) is delivered to the thread that triggered the machine exception. While your signal handler is running on that thread, other threads in your process continue to run. One of these threads could crash, causing it to call your signal handler. It’s a good idea to suspend all threads in your process early in your signal handler. However, there’s no way to completely eliminate this window. Note The need to suspend all the other threads in your process is further evidence that sticking to async signal safe functions is required. An unsafe function might depend on a thread you’ve suspended. A typical crashing signal is delivered on the thread that triggered the machine exception. If the machine exception was caused by a stack overflow, the system won’t have enough stack space to call your signal handler. You can tell the system to switch to an alternative stack (see the discussion of SA_ONSTACK in the sigaction man page) but that isn’t a complete solution (because of the thread issue discussed immediately above). Finally, there’s the question of how to exit from your signal handler. You must not call exit. There’s two problems with doing that: exit is not async signal safe. In fact, exit can run arbitrary code via handlers registered with atexit. If you want to exit the process, call _exit. Exiting the process is a bad idea anyway, because it will prevent the Apple crash reporter from running. This is very poor form. For an explanation as to why, see Preserve the Apple Crash Report (above). A better solution is to unregister your signal handler (set it to SIG_DFL) and then return. This will cause the crashed process to continue execution, crash again, and generate a crash report via the Apple crash reporter. [1] While the common signals caught by a crash reporter are not technically async signals (except SIGABRT), you still have to treat them as async signals because they can occur on any thread at any time. [2] It’s reasonable to extend this list to other routines that are implemented as thin shims on a system call. For example, I have no qualms about calling vm_read (see below) from a signal handler. [3] Be aware, however, that even this list has caveats. See my Async Signal Safe Functions vs Dyld Lazy Binding post for details. [4] I expect that it’ll eventually be possible to write signal handlers in Swift, possibly using some facility that evolves from the the existing, but unsupported, @_noAllocation and @_noLocks attributes. If you’d like to get involved with that effort, I recommend that engage with the Swift Evolution process. [5] Cross signal handler stack frames are pushed on to the stack by the kernel when it runs a signal handler on a thread. As there’s no API to learn about the structure of these frames, there’s no way to backtrace across one of these frames in isolation. I’m happy to go into details but it’s really not relevant to this discussion [6]. If you’re interested, start a new thread with the Debugging tag and we can chat there. [6] (Arg, my footnotes have footnotes!) The exception to this is where your trying to generate a crash report for code running in a signal handler. That’s not easy, and frankly you’re better off avoiding signal handlers in general. Where possible, handle signals via a Dispatch event source. Reading Memory A signal handler must be very careful about the memory it touches, because the contents of that memory might have been corrupted by the crash that triggered the signal. My general rule here is that the signal handler can safely access: Its code Its stack (subject to the constraints discussed earlier) Its arguments Immutable global state In the last point, I’m using immutable to mean immutable after startup. It’s reasonable to set up some global state when the process starts, before installing your signal handler, and then rely on it in your signal handler. Changing any global state after the signal handler is installed is dangerous, and if you need to do that you must be careful to ensure that your signal handler sees consistent state, even though a crash might occur halfway through your change. You can’t protect this global state with a mutex because mutexes are not async signal safe (and even if they were you’d deadlock if the mutex was held by the thread that crashed). You should be able to use atomic operations for this, but atomic operations are notoriously hard to use correctly (if I had a dollar for every time I’ve pointed out to a developer they’re using atomic operations incorrectly, I’d be very badly paid (-: but that’s still a lot of developers!). If your signal handler reads other memory, it must take care to avoid crashing while doing that read. There’s no BSD-level API for this [1], so I recommend that you use vm_read. [1] The traditional UNIX approach for doing this is to install a signal handler to catch any memory access exceptions triggered by the read, but now we’re talking signal handling within a signal handler and that’s just silly. Writing Files If your want to write a crash report from your signal handler, you must use low-level UNIX APIs (open, write, close) because only those low-level APIs are documented to be async signal safe. You must also set up the path in advance because the standard APIs for determining where to write the file (NSFileManager, for example) are not async signal safe. Offline Symbolication Do not attempt to do symbolication from your signal handler. Rather, write enough information to your crash report to support offline symbolication. Specifically: The addresses to symbolicate For each Mach-O image in the process: The image’s path The image’s build UUID [1] The image’s load address You can get most of the Mach-O image information using the APIs in <mach-o/dyld.h> [2]. Be aware, however, that these APIs are not async signal safe. You’ll need to get this information in advance and cache it for your signal handler to record. This is complicated by the fact that the list of Mach-O images can change as you process loads and unloads code. This requires you to share mutable state with your signal handler, which is exactly what I recommend against in Reading Memory. Note You can learn about images loading and unloading using _dyld_register_func_for_add_image and _dyld_register_func_for_remove_image respectively. [1] If you’re unfamiliar with that term, see TN3178 Checking for and resolving build UUID problems and the documents it links to. [2] I believe you’ll need to parse the Mach-O load commands to get the build UUID. What to Include When deciding what to include in a crash report, there’s a three-way balance to be struck: The more information you include, the easier it is to diagnose problems. Some information is hard to obtain, either because there’s no public API to get that information, or because the API is not available to your crash reporter. Some information is so privacy-sensitive that it has no place in a crash report. Apple’s crash reporter strikes its own balance here, and I recommend that you try to include everything that it includes, subject to the limitations described in the second point. Here’s what I’d considered to be a minimal list: Information about the machine exception that triggered the crash For memory access exceptions, the address of the access that triggered the crash Backtraces of all the threads (sometimes the backtrace of a non-crashing thread can yield critical information about the crash) The crashed thread Its thread state A list of Mach-O images, as discussed in the Offline Symbolication section IMPORTANT Make sure you report the thread backtraces in a consistent order. Without that it’s hard to correlate information across crash reports. Revision History 2026-06-30 Updated the note about the CrashReportExtension framework with some critical info about the supported platforms. 2026-06-09 Added a quick note about CrashReportExtension framework to the preamble. 2025-08-25 Added some links to examples of third-party crash reports not preserving the Apple crash report. Added a link to TN3178. Made other minor editorial changes. 2022-05-16 Fixed a broken link. 2021-09-10 Expanded the General Advice section to include pointers to Apple crash report resources, including MetricKit. Split the second half of that section out in to a new Why Is This Impossible? section. Made minor editoral changes. 2021-02-27 Fixed the formatting. Made minor editoral changes. 2019-05-13 Added a reference to my Async Signal Safe Functions vs Dyld Lazy Binding post. 2019-02-15 Expanded the introduction to the Preserve the Apple Crash Report section. 2019-02-14 Clarified the complexities of an out-of-process crash reporter. Added the What to Include section. Enhanced the Signals section to cover reentrancy and stack overflow. Made minor editoral changes. 2019-02-13 Made minor editoral changes. Added a new footnote to the Signals section. 2019-02-12 First posted.
0
0
20k
Jun ’26
Xcode Bug Installed Platforms
Hello, I’m using the latest version of Xcode, 26.6. I’m unable to permanently delete old installed iOS platform versions. I remove them from Xcode settings, and the deletion appears to complete successfully, but after rebooting my Mac they appear again, as if nothing had changed. Do you have any suggestions for how to remove them correctly and permanently?
3
0
168
Jun ’26
xCode crashes after update to 26.5
After updating to Xcode 26.5 Xcode crashes when I try to open my project. Directly before update everything was fine... Not using Beta-Software.. only stable versions What can I do? Will there be an update fixing this bug? `Application Specific Information: abort() called Application Specific Signatures: NSInternalInconsistencyException Application Specific Backtrace 0: 0 CoreFoundation 0x0000000186e711c0 __exceptionPreprocess + 176 1 DVTFoundation 0x000000010578a20c DVTFailureHintExceptionPreprocessor + 388 2 libobjc.A.dylib 0x00000001868fa91c objc_exception_throw + 88 3 Foundation 0x000000018868f498 -[NSFileWrapper regularFileContents] + 436 4 IDEStoreKitCore 0x000000030e002b20 $s15IDEStoreKitCore0aB13ConfigurationC4FileV17configurationData10Foundation0G0Vvg + 440 5 IDEStoreKitCore 0x000000030e001da0 $s15IDEStoreKitCore0aB13ConfigurationC13configuration3forACSo13NSFileWrapperC_tKFZ + 304 6 IDEStoreKitCore 0x000000030e003b0c $s15IDEStoreKitCore0aB13ConfigurationC13configuration2atAC10Foundation3URLV_tKFZ + 148 7 IDEStoreKitEditor 0x000000030e792ecc $s17IDEStoreKitEditor0aB20TextFragmentProviderC12generateSeed3for17completionHandlerySo11DVTFilePathC_ySo07IDETextefH0_pSg_s5Error_pSgtctFZ06$sSo27nefh28_pSgSo7NSErrorCSgIeyByy_ABs5o2_pR8Ieggg_TRAJSo0T0CSgIeyByy_Tf1ncn_nTf4ndg_n + 152 8 IDEStoreKitEditor 0x000000030e7922fc $s17IDEStoreKitEditor0aB20TextFragmentProviderC12generateSeed3for17completionHandlerySo11DVTFilePathC_ySo07IDETextefH0_pSg_s5Error_pSgtctFZTo + 52 9 IDEFoundation 0x000000010c922318 __113+[IDETextFragmentIndex runProvider:forFilePath:explicitFileDataType:initialTimestamp:priority:completionHandler:]_block_invoke + 204 10 DVTFoundation 0x00000001058a0638 __51-[DVTThrottledConcurrentQueue processQueueIfNeeded]_block_invoke + 80 11 DVTFoundation 0x0000000105892bd0 DVT_CALLING_CLIENT_BLOCK + 16 12 DVTFoundation 0x0000000105893548 __DVTDispatchAsync_block_invoke + 152 13 libdispatch.dylib 0x0000000186b8aa28 _dispatch_call_block_and_release + 32 14 libdispatch.dylib 0x0000000186ba44b0 _dispatch_client_callout + 16 15 libdispatch.dylib 0x0000000186b8f1c8 _dispatch_continuation_pop + 596 16 libdispatch.dylib 0x0000000186b8e844 _dispatch_async_redirect_invoke + 580 17 libdispatch.dylib 0x0000000186b9c980 _dispatch_root_queue_drain + 360 18 libdispatch.dylib 0x0000000186b9d120 _dispatch_worker_thread2 + 184 19 libsystem_pthread.dylib 0x0000000186d41e84 _pthread_wqthread + 232 20 libsystem_pthread.dylib 0x0000000186d40c10 start_wqthread + 8`
3
0
212
Jun ’26
XCode - Apple Watch Connectivity
Hi Devs, I'm working with WatchOS for the first time and am having a frustrating time with Xcode to Watch, to say the least. I have a Series 9 dev watch and Xcode does not reliably connect to it. Spending 15-20 min per build/run attempt just trying to get xcode to find and connect to the watch. It WILL sometimes recognize and allow a build to run, the issue is I can't tell any reliable way to establish the connection. It drops after every build and leaves me at square zero. Current solution is some amount of force quitting, reconnecting iPhone to USBC, disconnecting watch to wifi and back on. Devices Window usually reads: Previous preparation error: A connection to this device could not be established.; Timed out while attempting to establish tunnel using negotiated network parameters - swapping to some attempting to connect state that never (reliably resolves). Is this why no one builds for WatchOS? Hoping someone has pro tips on this.
2
2
288
Jun ’26
Unable to enter text in TextField - SwiftUI preview
I'm trying out Xcode 12 (beta) and encountered an issue with TextField when viewing it in a live Preview. Although the view is interactive (scrolling vertically seems to be OK) and a cursor appears in the TextField view when it is clicked on, keyboard input is ignored. The same code works as expected in Xcode 11.5. Simulator in both 11.5 and 12 exhibits expected behaviour. Is this a bug? I know there is an issue with interactivity in Preview with multiple views inside PreviewProvider but I'd assumed this is if you'd added multiple Views to the same body of this struct.
28
3
16k
Jun ’26
Please provide the power of autocompletion similar to VSCode and alike editors
AI agentic coding is great, but it drifts away from the good practices and good code. Sometimes I am writing code while thinking what exactly to write, exploring the architecture solution, the data flow, not the technology, so making a prompt is not the best use case. I am doing iOS development in VSCode since preview version of Copilot launched, the auto-completions that AI provides IS the greatest tool a developer can have Please 🙏 prioritize the unimaginable good auto-completion that only Apple can provide, so that we can auto-complete function implementation, class implementation, multiple lines of comments in a fraction of a second
0
0
80
Jun ’26
Xcode 27's Device Hub doesn't allow you to drag and drop enterprise security certificates.
I know Xcode 27 is in beta but it appears that in Device Hub you can no longer drag and drop enterprise security certificates onto the simulators like you could in Xcode 26 (and earlier) simulators. I did put in a feedback request in (FB23369006) but I was wondering if anyone found a workaround. This hampers testing for enterprise users who don't have a physical device to test on.
1
1
251
Jun ’26
Fixing long build times caused by dependencies to swift-syntax
After adding the Mockable package to a project that already used swift-dependencies and updating to Xcode 26.6, my release/archive builds got ~2 min slower because swift-syntax was being recompiled from source every time. Thorougly investigating and fixing this took about 3 hours and I thought I'd share my findings for the next person encountering such an issue: Findings: I confirmed the prebuilt swift-syntax is used for swift-syntax 603.0.2 in Xcode 26.6 when building a package separately (I suspect dependencies to older versions might cause issues, but didn't fully investigate this) It can be checked if the prebuilt version of swift-syntax is used via the build log. If working correctly/using the prebuild version, swift-syntax isn't mentioned at all. One package resolved to swift-syntax 600.x, this would trigger a build of swift-syntax. After updating the dependencies it worked fine. Even if the version in the xcodeproj resolves to a confirmed-working version of swift-syntax, it seems other packages might trigger the swift-syntax build under the hood. Opened the packages individually and built separately with Build for » Profiling to investigate. In my case, another issue was triggering the problem: The swift-snapshot-testing open source package declared a swift-syntax dependency although it didn't actually use it. That caused swift-syntax being built (not sure why, maybe Xcode thinks it's a non-macro usage of swift-syntax?) Creating a fork of the package and removing the dependency fixed the issue. After both fixes, in the full project, a Product → Clean Build Folder + restart Xcode was required before swift-syntax stopped being rebuilt. See also: Xcode 26 Release Notes — Swift Macros Build Performance:
0
0
87
Jun ’26
Unable to boot iOS 26.5 Simulator — launchd_sim fails to bind session on macOS 26.5.1 + Xcode 26.6
Environment: macOS 26.5.1 (Build 25F80) Xcode 26.6 (Build 17F113) iOS 26.5 Simulator Runtime (Build 23F77) Device: Apple Silicon (arm64) Summary: The iOS 26.5 simulator fails to boot with NSPOSIXErrorDomain Code 4 (Interrupted system call). The underlying error indicates launchd_sim cannot bind to its session, suggesting the CoreSimulator session management is broken in this macOS + Xcode + runtime combination. Steps to Reproduce: Install macOS 26.5.1 and Xcode 26.6 Open Simulator.app or run xcrun simctl boot Attempt to boot any iOS 26.5 simulator device Expected Result: Simulator boots successfully and reaches the Booted state. Actual Result: Unable to boot the Simulator. Domain: NSPOSIXErrorDomain Code: 4 Failure Reason: Interrupted system call Failed to start launchd_sim: could not bind to session, launchd_sim may have crashed or quit responding Domain: com.apple.SimLaunchHostService.RequestError Code: 4 Workaround: Installing an older stable iOS simulator runtime (iOS 17.x or 18.x) and targeting that instead allows simulators to boot normally. Additional Notes: Issue persists after full Mac restart xcrun simctl erase all and xcrun simctl delete all do not resolve it The iOS 26.5 Simulator volume mounts correctly at /Library/Developer/CoreSimulator/Volumes/iOS_23F77 launchd_sim binary is present and properly code-signed
0
0
102
Jun ’26
Apple supported way to create xcodeproject without using XCode IDE or with minimal use of XCode IDE
We need help to structure our project to start using apple standard way to create Xcode project. let me first express how currently we are creating Xcode project. As of today, we are using CMake to generate our xcode project which we can open in XCODE IDE and build/debug/run/etc. XCode IDE can open those project but we notice that some build setting does not seem to have correct value while looking into XCODE IDE but it somehow builds. There are some other issues also. Along with those issues, we also could not share this xcodeproject generated via CMake to AppleDTS support team as Apple does not support project created via some third party tool (like CMake or others). Let me also express why we decided to use CMake at first place to generate Xcode projects. Our project is layered architecture project where in upper layers uses lower layer artifacts. Each layer has its own set of build targets . And each layer can have both C++ and Swift files. And each layer would have most of the compiler flag common, but we could also have compiler flag specific to each layer also. To achieve all these, we have developed our own tool, which basically creates CMakeLists.txt (for project model- all targets, dependency, etc) and CMakePresets.json (for all compiler and linker flags). Now this tool scans through repos/source folders on each layer and then creates these files (CMakeLists.txt and CMakePresets.json). This tool uses inputs to decide compiler/linker/other properties from one centralized location. Which means every developer would use these same input files and thus they all can have same compiler/linker/other properties set consistent. This makes generated build system consistent on all developer machine and it allows confidence of saying if build works on one developer's machine would also work on other developer’s machine and if build does NOT work on one developer's machine, it would NOT work on other developer’s machine also. So, it’s consistent. That was the main reason to use CMake to generate xcode project. So, our internal tools creates meta data for CMake (which is CMakeLists and CMakePresets) and then CMake generates Xcode build system using XCode generator. Now we want to move to xcode native way to create projects but at the same time we also want this consistency that each of my developer would use exact same compiler/linker/other properties. If we ask developer to use XCode IDE to create xcode project, we cannot guarantee that they all will use same compiler/linker/etc flags and thus we would end up having inconsistent behaviour on different developer machines. We need your help to figure out how we can achive this ? We read some ways that we can create some template project and then we can create some .xcconfig files and use them to set target properties but honestly, we are able to stich them together. So please help us directionally on this , how should we proceed ? Basically we need to know how can we have all my developer use same xcodeproject. I was also thinking how would I be setting my CI for apple builds if I have to use XCode IDE to create xcode project and since CI environments are non interactive and it can happen n number of times in day (if I have setup to run sanity for all Pull Requests). Any help/direction on this is highly appreciated.
6
1
252
Jun ’26
Xcode RAM Usage Problem
👋🏻 Hello Apple Developer Community, I’ve recently got the problem with the current Xcode Beta Version and the Preview Feature. Because when I try to load the Preview, the RAM Usage spikes and it’s nearly at the limit on my MacBook (16GB RAM). (Note: This is happening while loading up the Preview) But when I haven’t loaded the Preview Window, the overall RAM Usage of my system is ver low (Note: This is when Xcode has is not loading the Preview) (Note: This is after quitting Xcode for cancelling the load of the Preview) All Pictures are in German, sorry for that ☹️. What are possible problems or solutions against this problem? Have a nice day / evening 😁
Replies
1
Boosts
0
Views
237
Activity
Jul ’26
Shortcuts and App Intents does not work on simulators running iOS 26 or iOS 27
Hello, Shortcuts and App Intents don't work on simulators running iOS 26 or iOS 27. It's working fine on simulators running iOS 18. It makes testing and adopting new technologies difficult. Please check this feedback which contains a video showcasing the issue with a sample code provided by Apple: FB23342158 Regards, Axel
Replies
3
Boosts
2
Views
291
Activity
Jul ’26
Unable to run App Shortcut: App Shortcuts cannot run on iOS Simulator 26.5 through 27.0 beta 2
App Shortcuts cannot be debugged or executed on iOS Simulator runtimes from iOS 26.5 through iOS 27.0 beta 2 when using Xcode 26.5 through Xcode 27 beta 2. When attempting to run an App Shortcut in the Shortcuts app on the simulator, Shortcuts shows the error: Unable to run App Shortcut The simulator console logs the following error: Attempted to fetch Auto Shortcuts, but couldn't find the AppShortcutsProvider This happens even with Apple’s official App Intents sample project, so it does not appear to be specific to a third-party app implementation. Steps to Reproduce Download Apple’s official sample project from: https://developer.apple.com/documentation/appintents/acceleratingappinteractionswithappintents Open the sample project in Xcode 26.5 through Xcode 27 beta 2. Build and run the app on an iOS Simulator using iOS 26.5 through iOS 27.0 beta 2. Open the Shortcuts app in the simulator. Find one of the sample app’s App Shortcuts. Try to run the App Shortcut. Expected Result The App Shortcut should run successfully in the iOS Simulator, allowing App Shortcuts and App Intents to be debugged during development. Actual Result The Shortcuts app displays: Unable to run App Shortcut The simulator console logs: Attempted to fetch Auto Shortcuts, but couldn't find the AppShortcutsProvider The App Shortcut cannot be executed or debugged in the simulator. Reproducibility Reproduces consistently. Tested Configurations Xcode 26.5 with iOS Simulator 26.5 Xcode 27 beta 2 with iOS Simulator 27.0 beta 2
Replies
1
Boosts
0
Views
153
Activity
Jul ’26
Paired Apple Watch never appears in Xcode Devices & Simulators, Developer Mode toggle missing on watchOS
I'm blocked trying to run/debug an app on a physical Apple Watch. The iPhone connects to Xcode perfectly over USB and is fully trusted, but the paired Watch never shows up in Xcode, and because of that the Developer Mode toggle never appears on the watch itself. Environment Mac: MacOS 26.4 Xcode: 26.5 iPhone: iPhone 17, iOS 26.4 — connected to Mac via USB, trusted Apple Watch: Ultra 3, watchOS 26.3 Developer Mode: enabled on iPhone Watch is paired and working normally in the iPhone Watch app What happens In Xcode → Window → Devices and Simulators, only the iPhone ("Brian") shows under Connected, with its installed apps listed correctly. The paired Apple Watch does not appear under it or as a separate entry. On the watch, Settings → Privacy & Security has no Developer Mode item. I understand this only surfaces after Xcode successfully connects to the watch, so I believe the missing Xcode connection is the root cause. When I first connected the iPhone via cable, a Trust prompt did appear on the watch and I accepted it. What I've already tried Enabled Developer Mode on iPhone (toggled off/on, with restarts) Connected iPhone via USB and confirmed Trust on both iPhone and watch Restarted Mac, iPhone, and watch multiple times Confirmed Bluetooth and Wi-Fi are on across all three devices Kept the watch unlocked and on my wrist, close to the iPhone and Mac Despite this, the watch never appears in Xcode and the Developer Mode toggle never surfaces on watchOS. Questions Is this the known Xcode 26 / watchOS 26 tunneling/discovery regression, or is something else going on in my setup? Is there an Apple-supported way to force Xcode to re-discover a paired watch without unpairing it from the iPhone? Has any specific combination of macOS / Xcode / watchOS versions reliably resolved this for anyone? Any guidance appreciated. Happy to file a Feedback Assistant report and share the ID if useful.
Replies
1
Boosts
0
Views
225
Activity
Jun ’26
Could not find library with name ”/usr/lib/swift/libswiftWebKit.dylib“
Canvas Previews (targeting macOS) in both Xcode 16.4 & Xcode 26 fail to load, when the project imports a Swift package that imports and uses WebKit. I'm on macOS 15.5. Tried also to bring minimum targets of both the project and the package to 15.0. I see that there are some work-arounds for iOS simulator but nothing for the Mac. Anyone facing the same problem?
Replies
6
Boosts
0
Views
488
Activity
Jun ’26
Xcode 27: Bugs / Feedbacks
Hi, I have listed below the Feedbacks for Xcode 27, please have a look at it, considerable time was spent on filing these feedbacks, thanks! Environments All of them were tested on the environment: macOS 26.5.1 (25F80) Xcode 27.0 beta (27A5194q) Feedbacks FB23133706 (Git stage tab) FB23132869 (markdown - code block) FB23132403 (markdown - search) FB23078039 (stash - slow / unresponsive) FB23077930 (stash - allow multiselection) FB23055381 (Run destination - Clear recents) FB23041713 (SwiftUI preview - SwiftData) FB23033844 (Bundle ID) FB23033231 (Device Hub - sizes)
Replies
10
Boosts
1
Views
782
Activity
Jun ’26
Unable to sign into sandbox account on simulator / device hub
Hi, I am unable to sign into the sandbox account on the simulator. Settings > Developer > Sandbox Apple Account > Sign in Xcode: 26.6 (17F113) Xcode Simulator: 16.0 (1063.4) I have even tried on Device Hub on Xcode 27. I vaguely remember being able to sign into the simulator using Questions: Is anyone able to sign into Sandbox account on the simulator / device hub? Is there any workaround? Is this a known issue?
Replies
0
Boosts
0
Views
165
Activity
Jun ’26
Implementing Your Own Crash Reporter
I often get questions about third-party crash reporting. These usually show up in one of two contexts: Folks are trying to implement their own crash reporter. Folks have implemented their own crash reporter and are trying to debug a problem based on the report it generated. This is a complex issue and this post is my attempt to untangle some of that complexity. IMPORTANT iOS 27, currently in beta, introduced support for out-of-process crash reporting using the CrashReportExtension framework. I haven’t yet had time to update this post to cover that technology. However, if you’re planning to implement your own crash reporter on iOS, you should start there. (The documentation currently states that this feature is available on macOS 27, also currently in beta, but that’s not true (r. 180425854) and I’ve no info to share as to when that’ll change.) If you have a follow-up question about anything I've raised here, please put it in a new thread with the Debugging tag. IMPORTANT All of the following is my own direct experience. None of it should be considered official DTS policy. If you have a specific question that needs a direct answer — perhaps you’re trying to convince your boss that implementing your own crash reporter is a very bad idea — start a dedicated thread here on the forums and we can discuss the details there. Use whatever subtopic is appropriate for your issue, but make sure to add the Debugging tag so that I see it go by. Share and Enjoy — Quinn “The Eskimo!” @ Developer Technical Support @ Apple let myEmail = "eskimo" + "1" + "@" + "apple.com" Scope First, I can only speak to the technical side of this issue. There are other aspects that are beyond my remit: I don’t work for App Review, and only they can give definitive answers about what will or won’t be allowed on the store. Implementing your own crash reporter has significant privacy implications. IMPORTANT If you implement your own crash reporter, discuss the privacy impact with a lawyer. This post assumes that you are implementing your own crash reporter. A lot of folks use a crash reporter from another third party. From my perspective these are the same thing. If you use a custom crash reporter, you are responsible for its behaviour, both good and bad, regardless of where the actual code came from. Note If you use a crash reporter from another third party, run the tests outlined in Preserve the Apple Crash Report to verify that it’s working well. General Advice I strongly advise against implementing your own crash reporter. It’s very easy to create a basic crash reporter that works well enough to debug simple problems. It’s impossible to implement a good crash reporter, one that’s reliable, binary compatible, and sufficient to debug complex problems. The bulk of this post is a low-level explanation of that impossibility. Rather than attempting the impossible, I recommend that you lean in to Apple’s crash reporter. In recent years it’s acquired some really cool new features: If you’re creating an App Store app, the Xcode organiser gives you easy, interactive access to Apple crash reports. If you’re an enterprise developer, consider switching to Custom App Distribution. This yields all the benefits of App Store distribution without your app being generally available on the store. iOS 14 and macOS 12 report crashes in MetricKit. This is a very cool feature, and I’m surprised by how few people use it effectively. If you previously dismissed Apple crash reports as insufficient, I encourage you to reconsider that decision. Why Is This Impossible? Earlier I said “It’s impossible to implement a good crash reporter”, and I want to explain why I’m confident enough in my conclusions to use that specific word. There are two fundamental problems here: On iOS (and the other iOS-based platforms, watchOS and tvOS) your crash reporter must run inside the crashed process. That means it can never be 100% reliable. If the process is crashing then, by definition, it’s in an undefined state. Attempting to do real work in that state is just asking for problems [1]. To get good results your crash reporter must be intimately tied to system implementation details. These can change from release to release, which invalidates the assumptions made by your crash reporter. This isn’t a problem for the Apple crash reporter because it ships with the system. However, a crash reporter that’s built in to your product is always going to be brittle. I’m speaking from hard-won experience here. I worked for DTS during the PowerPC-to-Intel transition, and saw a lot of folks with custom crash reporters struggle through that process. Still, this post exists because lots of folks ignore this reality, so the subsequent sections contain advice about specific technical issues. WARNING Do not interpret any of the following as encouragement to implement your own crash reporter. I strongly advise against that. However, if you ignore my advice then you should at least try to minimise the risk, which is what the rest of this document is about. [1] On macOS it’s possible for your crash reporter to run out of process, just like the Apple crash reporter. However, possible is not the same as easy. In fact, running out of process can make things worse: It prevents you from geting critical state for the crashed process without being tightly bound to OS implementation details. It would be nice if Apple provided APIs for this sort of thing, but that’s currently not the case. Preserve the Apple Crash Report You must ensure that your crash reporter doesn’t disrupt the Apple crash reporter. This is important for three reasons: Some fraction of your crashes will not be caused by your code but by problems in framework code, and accurate Apple crash reports are critical in diagnosing such issues. When dealing with really hard-to-debug problems, you need the more obscure info that’s shown in the Apple crash report. If you’re working with someone from Apple (here on the forums, via a bug report, or a DTS case, or whatever), they’re going to want an accurate Apple crash report. If your crash reporter is disrupting the Apple crash reporter — either preventing it from generating crash reports entirely [1], or distorting those crash reports — that limits how much they can help you. IMPORTANT This is not a theoretical concern. The forums have many threads where I’ve been unable to help folks debug a gnarly problem because their third-party crash reporter didn’t preserve the Apple crash report (see here, here, and here for some examples). To avoid these issues I recommend that you test your crash reporter’s impact on the Apple crash reporter. The basic idea is: Create a program that generates a set of specific crashes. Run through each crash. Verify that your crash reporter produces sensible results. Verify that the Apple crash reporter produces the same results as it does without your crash reporter With regards step 1, your test suite should include: An un-handled language exception thrown by your code An un-handled language exception thrown by the OS (accessing an NSArray out of bounds is an easy way to get this) Various machine exceptions (at a minimum, memory access, illegal instruction, and breakpoint exceptions) Stack overflow Make sure to test all of these cases on both the main thread and a secondary thread. With regards step 4, check that the resulting Apple crash report includes correct values for: The exception info The crashed thread That thread’s state Any application-specific info, and especially the last exception backtrace [1] A particularly pathological behaviour here is to end your crash reporter by calling exit. This completely suppresses the Apple crash report. Some third-party language runtimes ‘helpfully’ include such a crash reporter, which makes it very hard to debug problems that occur within your process but outside of that language. Signals Many third-party crash reporters use UNIX signals to catch the crash. This is a shame because using Mach exception handling, the mechanism used by the Apple crash reporter, is generally a better option. However, there are two reasons to favour UNIX signals over Mach exception handling: On iOS-based platforms your crash reporter must run in-process, and doing in-process Mach exception handling is not feasible. Folks are a lot more familiar with UNIX signals. Mach exception handling, and Mach messaging in general, is pretty darned obscure. If you use UNIX signals for your crash reporter, be aware that this API has some gaping pitfalls. First and foremost, your signal handler can only use async signal safe functions [1]. You can find a list of these functions in sigaction man page [2] [3]. WARNING This list does not include malloc. This means that a crash reporter’s signal handler cannot use Objective-C or Swift, as there’s no way to constrain how those language runtimes allocate memory [4]. That means you’re stuck with C or C++, but even there you have to be careful to comply with this constraint. The Operative: It’s worse than you know. Captain Malcolm Reynolds: It usually is. Many crash reports use functions like backtrace (see its man page) to get a backtrace from their signal handler. There’s two problems with this: backtrace is not an async signal safe function. backtrace uses a naïve algorithm that doesn’t deal well with cross signal handler stack frames [5]. The latter point is particularly worrying, because it hides the identity of the stack frame that triggered the signal. If you’re going to backtrace out of a signal, you must use the crashed thread’s state (accessible via the handlers uap parameter) to start your backtrace. Apropos that, if your crash reporter wants to log the state of the crashed thread, that’s the place to get it. Your signal handler must be prepared to be called by multiple threads. A typical crashing signal (like SIGSEGV) is delivered to the thread that triggered the machine exception. While your signal handler is running on that thread, other threads in your process continue to run. One of these threads could crash, causing it to call your signal handler. It’s a good idea to suspend all threads in your process early in your signal handler. However, there’s no way to completely eliminate this window. Note The need to suspend all the other threads in your process is further evidence that sticking to async signal safe functions is required. An unsafe function might depend on a thread you’ve suspended. A typical crashing signal is delivered on the thread that triggered the machine exception. If the machine exception was caused by a stack overflow, the system won’t have enough stack space to call your signal handler. You can tell the system to switch to an alternative stack (see the discussion of SA_ONSTACK in the sigaction man page) but that isn’t a complete solution (because of the thread issue discussed immediately above). Finally, there’s the question of how to exit from your signal handler. You must not call exit. There’s two problems with doing that: exit is not async signal safe. In fact, exit can run arbitrary code via handlers registered with atexit. If you want to exit the process, call _exit. Exiting the process is a bad idea anyway, because it will prevent the Apple crash reporter from running. This is very poor form. For an explanation as to why, see Preserve the Apple Crash Report (above). A better solution is to unregister your signal handler (set it to SIG_DFL) and then return. This will cause the crashed process to continue execution, crash again, and generate a crash report via the Apple crash reporter. [1] While the common signals caught by a crash reporter are not technically async signals (except SIGABRT), you still have to treat them as async signals because they can occur on any thread at any time. [2] It’s reasonable to extend this list to other routines that are implemented as thin shims on a system call. For example, I have no qualms about calling vm_read (see below) from a signal handler. [3] Be aware, however, that even this list has caveats. See my Async Signal Safe Functions vs Dyld Lazy Binding post for details. [4] I expect that it’ll eventually be possible to write signal handlers in Swift, possibly using some facility that evolves from the the existing, but unsupported, @_noAllocation and @_noLocks attributes. If you’d like to get involved with that effort, I recommend that engage with the Swift Evolution process. [5] Cross signal handler stack frames are pushed on to the stack by the kernel when it runs a signal handler on a thread. As there’s no API to learn about the structure of these frames, there’s no way to backtrace across one of these frames in isolation. I’m happy to go into details but it’s really not relevant to this discussion [6]. If you’re interested, start a new thread with the Debugging tag and we can chat there. [6] (Arg, my footnotes have footnotes!) The exception to this is where your trying to generate a crash report for code running in a signal handler. That’s not easy, and frankly you’re better off avoiding signal handlers in general. Where possible, handle signals via a Dispatch event source. Reading Memory A signal handler must be very careful about the memory it touches, because the contents of that memory might have been corrupted by the crash that triggered the signal. My general rule here is that the signal handler can safely access: Its code Its stack (subject to the constraints discussed earlier) Its arguments Immutable global state In the last point, I’m using immutable to mean immutable after startup. It’s reasonable to set up some global state when the process starts, before installing your signal handler, and then rely on it in your signal handler. Changing any global state after the signal handler is installed is dangerous, and if you need to do that you must be careful to ensure that your signal handler sees consistent state, even though a crash might occur halfway through your change. You can’t protect this global state with a mutex because mutexes are not async signal safe (and even if they were you’d deadlock if the mutex was held by the thread that crashed). You should be able to use atomic operations for this, but atomic operations are notoriously hard to use correctly (if I had a dollar for every time I’ve pointed out to a developer they’re using atomic operations incorrectly, I’d be very badly paid (-: but that’s still a lot of developers!). If your signal handler reads other memory, it must take care to avoid crashing while doing that read. There’s no BSD-level API for this [1], so I recommend that you use vm_read. [1] The traditional UNIX approach for doing this is to install a signal handler to catch any memory access exceptions triggered by the read, but now we’re talking signal handling within a signal handler and that’s just silly. Writing Files If your want to write a crash report from your signal handler, you must use low-level UNIX APIs (open, write, close) because only those low-level APIs are documented to be async signal safe. You must also set up the path in advance because the standard APIs for determining where to write the file (NSFileManager, for example) are not async signal safe. Offline Symbolication Do not attempt to do symbolication from your signal handler. Rather, write enough information to your crash report to support offline symbolication. Specifically: The addresses to symbolicate For each Mach-O image in the process: The image’s path The image’s build UUID [1] The image’s load address You can get most of the Mach-O image information using the APIs in <mach-o/dyld.h> [2]. Be aware, however, that these APIs are not async signal safe. You’ll need to get this information in advance and cache it for your signal handler to record. This is complicated by the fact that the list of Mach-O images can change as you process loads and unloads code. This requires you to share mutable state with your signal handler, which is exactly what I recommend against in Reading Memory. Note You can learn about images loading and unloading using _dyld_register_func_for_add_image and _dyld_register_func_for_remove_image respectively. [1] If you’re unfamiliar with that term, see TN3178 Checking for and resolving build UUID problems and the documents it links to. [2] I believe you’ll need to parse the Mach-O load commands to get the build UUID. What to Include When deciding what to include in a crash report, there’s a three-way balance to be struck: The more information you include, the easier it is to diagnose problems. Some information is hard to obtain, either because there’s no public API to get that information, or because the API is not available to your crash reporter. Some information is so privacy-sensitive that it has no place in a crash report. Apple’s crash reporter strikes its own balance here, and I recommend that you try to include everything that it includes, subject to the limitations described in the second point. Here’s what I’d considered to be a minimal list: Information about the machine exception that triggered the crash For memory access exceptions, the address of the access that triggered the crash Backtraces of all the threads (sometimes the backtrace of a non-crashing thread can yield critical information about the crash) The crashed thread Its thread state A list of Mach-O images, as discussed in the Offline Symbolication section IMPORTANT Make sure you report the thread backtraces in a consistent order. Without that it’s hard to correlate information across crash reports. Revision History 2026-06-30 Updated the note about the CrashReportExtension framework with some critical info about the supported platforms. 2026-06-09 Added a quick note about CrashReportExtension framework to the preamble. 2025-08-25 Added some links to examples of third-party crash reports not preserving the Apple crash report. Added a link to TN3178. Made other minor editorial changes. 2022-05-16 Fixed a broken link. 2021-09-10 Expanded the General Advice section to include pointers to Apple crash report resources, including MetricKit. Split the second half of that section out in to a new Why Is This Impossible? section. Made minor editoral changes. 2021-02-27 Fixed the formatting. Made minor editoral changes. 2019-05-13 Added a reference to my Async Signal Safe Functions vs Dyld Lazy Binding post. 2019-02-15 Expanded the introduction to the Preserve the Apple Crash Report section. 2019-02-14 Clarified the complexities of an out-of-process crash reporter. Added the What to Include section. Enhanced the Signals section to cover reentrancy and stack overflow. Made minor editoral changes. 2019-02-13 Made minor editoral changes. Added a new footnote to the Signals section. 2019-02-12 First posted.
Replies
0
Boosts
0
Views
20k
Activity
Jun ’26
How to simulate two-finger touches in the Device Hub?
My app relies on two-finger tap for some interactions. This was easy in the old simulator by holding down option while clicking. Is there an equivalent interaction in Device Hub? (Option-click no longer seems to work.) If not, will this be added back in a future beta?
Replies
2
Boosts
1
Views
169
Activity
Jun ’26
Problems using Anthropic Agent in Xcode 27 beta 2
I signed in to Xcode using my Anthropic credentials. When I attempt to start a new conversation the text box is not enabled and I see a message related to Codex..
Replies
1
Boosts
0
Views
135
Activity
Jun ’26
Xcode Bug Installed Platforms
Hello, I’m using the latest version of Xcode, 26.6. I’m unable to permanently delete old installed iOS platform versions. I remove them from Xcode settings, and the deletion appears to complete successfully, but after rebooting my Mac they appear again, as if nothing had changed. Do you have any suggestions for how to remove them correctly and permanently?
Replies
3
Boosts
0
Views
168
Activity
Jun ’26
xCode crashes after update to 26.5
After updating to Xcode 26.5 Xcode crashes when I try to open my project. Directly before update everything was fine... Not using Beta-Software.. only stable versions What can I do? Will there be an update fixing this bug? `Application Specific Information: abort() called Application Specific Signatures: NSInternalInconsistencyException Application Specific Backtrace 0: 0 CoreFoundation 0x0000000186e711c0 __exceptionPreprocess + 176 1 DVTFoundation 0x000000010578a20c DVTFailureHintExceptionPreprocessor + 388 2 libobjc.A.dylib 0x00000001868fa91c objc_exception_throw + 88 3 Foundation 0x000000018868f498 -[NSFileWrapper regularFileContents] + 436 4 IDEStoreKitCore 0x000000030e002b20 $s15IDEStoreKitCore0aB13ConfigurationC4FileV17configurationData10Foundation0G0Vvg + 440 5 IDEStoreKitCore 0x000000030e001da0 $s15IDEStoreKitCore0aB13ConfigurationC13configuration3forACSo13NSFileWrapperC_tKFZ + 304 6 IDEStoreKitCore 0x000000030e003b0c $s15IDEStoreKitCore0aB13ConfigurationC13configuration2atAC10Foundation3URLV_tKFZ + 148 7 IDEStoreKitEditor 0x000000030e792ecc $s17IDEStoreKitEditor0aB20TextFragmentProviderC12generateSeed3for17completionHandlerySo11DVTFilePathC_ySo07IDETextefH0_pSg_s5Error_pSgtctFZ06$sSo27nefh28_pSgSo7NSErrorCSgIeyByy_ABs5o2_pR8Ieggg_TRAJSo0T0CSgIeyByy_Tf1ncn_nTf4ndg_n + 152 8 IDEStoreKitEditor 0x000000030e7922fc $s17IDEStoreKitEditor0aB20TextFragmentProviderC12generateSeed3for17completionHandlerySo11DVTFilePathC_ySo07IDETextefH0_pSg_s5Error_pSgtctFZTo + 52 9 IDEFoundation 0x000000010c922318 __113+[IDETextFragmentIndex runProvider:forFilePath:explicitFileDataType:initialTimestamp:priority:completionHandler:]_block_invoke + 204 10 DVTFoundation 0x00000001058a0638 __51-[DVTThrottledConcurrentQueue processQueueIfNeeded]_block_invoke + 80 11 DVTFoundation 0x0000000105892bd0 DVT_CALLING_CLIENT_BLOCK + 16 12 DVTFoundation 0x0000000105893548 __DVTDispatchAsync_block_invoke + 152 13 libdispatch.dylib 0x0000000186b8aa28 _dispatch_call_block_and_release + 32 14 libdispatch.dylib 0x0000000186ba44b0 _dispatch_client_callout + 16 15 libdispatch.dylib 0x0000000186b8f1c8 _dispatch_continuation_pop + 596 16 libdispatch.dylib 0x0000000186b8e844 _dispatch_async_redirect_invoke + 580 17 libdispatch.dylib 0x0000000186b9c980 _dispatch_root_queue_drain + 360 18 libdispatch.dylib 0x0000000186b9d120 _dispatch_worker_thread2 + 184 19 libsystem_pthread.dylib 0x0000000186d41e84 _pthread_wqthread + 232 20 libsystem_pthread.dylib 0x0000000186d40c10 start_wqthread + 8`
Replies
3
Boosts
0
Views
212
Activity
Jun ’26
XCode - Apple Watch Connectivity
Hi Devs, I'm working with WatchOS for the first time and am having a frustrating time with Xcode to Watch, to say the least. I have a Series 9 dev watch and Xcode does not reliably connect to it. Spending 15-20 min per build/run attempt just trying to get xcode to find and connect to the watch. It WILL sometimes recognize and allow a build to run, the issue is I can't tell any reliable way to establish the connection. It drops after every build and leaves me at square zero. Current solution is some amount of force quitting, reconnecting iPhone to USBC, disconnecting watch to wifi and back on. Devices Window usually reads: Previous preparation error: A connection to this device could not be established.; Timed out while attempting to establish tunnel using negotiated network parameters - swapping to some attempting to connect state that never (reliably resolves). Is this why no one builds for WatchOS? Hoping someone has pro tips on this.
Replies
2
Boosts
2
Views
288
Activity
Jun ’26
Unable to enter text in TextField - SwiftUI preview
I'm trying out Xcode 12 (beta) and encountered an issue with TextField when viewing it in a live Preview. Although the view is interactive (scrolling vertically seems to be OK) and a cursor appears in the TextField view when it is clicked on, keyboard input is ignored. The same code works as expected in Xcode 11.5. Simulator in both 11.5 and 12 exhibits expected behaviour. Is this a bug? I know there is an issue with interactivity in Preview with multiple views inside PreviewProvider but I'd assumed this is if you'd added multiple Views to the same body of this struct.
Replies
28
Boosts
3
Views
16k
Activity
Jun ’26
Please provide the power of autocompletion similar to VSCode and alike editors
AI agentic coding is great, but it drifts away from the good practices and good code. Sometimes I am writing code while thinking what exactly to write, exploring the architecture solution, the data flow, not the technology, so making a prompt is not the best use case. I am doing iOS development in VSCode since preview version of Copilot launched, the auto-completions that AI provides IS the greatest tool a developer can have Please 🙏 prioritize the unimaginable good auto-completion that only Apple can provide, so that we can auto-complete function implementation, class implementation, multiple lines of comments in a fraction of a second
Replies
0
Boosts
0
Views
80
Activity
Jun ’26
Xcode 27's Device Hub doesn't allow you to drag and drop enterprise security certificates.
I know Xcode 27 is in beta but it appears that in Device Hub you can no longer drag and drop enterprise security certificates onto the simulators like you could in Xcode 26 (and earlier) simulators. I did put in a feedback request in (FB23369006) but I was wondering if anyone found a workaround. This hampers testing for enterprise users who don't have a physical device to test on.
Replies
1
Boosts
1
Views
251
Activity
Jun ’26
Fixing long build times caused by dependencies to swift-syntax
After adding the Mockable package to a project that already used swift-dependencies and updating to Xcode 26.6, my release/archive builds got ~2 min slower because swift-syntax was being recompiled from source every time. Thorougly investigating and fixing this took about 3 hours and I thought I'd share my findings for the next person encountering such an issue: Findings: I confirmed the prebuilt swift-syntax is used for swift-syntax 603.0.2 in Xcode 26.6 when building a package separately (I suspect dependencies to older versions might cause issues, but didn't fully investigate this) It can be checked if the prebuilt version of swift-syntax is used via the build log. If working correctly/using the prebuild version, swift-syntax isn't mentioned at all. One package resolved to swift-syntax 600.x, this would trigger a build of swift-syntax. After updating the dependencies it worked fine. Even if the version in the xcodeproj resolves to a confirmed-working version of swift-syntax, it seems other packages might trigger the swift-syntax build under the hood. Opened the packages individually and built separately with Build for » Profiling to investigate. In my case, another issue was triggering the problem: The swift-snapshot-testing open source package declared a swift-syntax dependency although it didn't actually use it. That caused swift-syntax being built (not sure why, maybe Xcode thinks it's a non-macro usage of swift-syntax?) Creating a fork of the package and removing the dependency fixed the issue. After both fixes, in the full project, a Product → Clean Build Folder + restart Xcode was required before swift-syntax stopped being rebuilt. See also: Xcode 26 Release Notes — Swift Macros Build Performance:
Replies
0
Boosts
0
Views
87
Activity
Jun ’26
Unable to boot iOS 26.5 Simulator — launchd_sim fails to bind session on macOS 26.5.1 + Xcode 26.6
Environment: macOS 26.5.1 (Build 25F80) Xcode 26.6 (Build 17F113) iOS 26.5 Simulator Runtime (Build 23F77) Device: Apple Silicon (arm64) Summary: The iOS 26.5 simulator fails to boot with NSPOSIXErrorDomain Code 4 (Interrupted system call). The underlying error indicates launchd_sim cannot bind to its session, suggesting the CoreSimulator session management is broken in this macOS + Xcode + runtime combination. Steps to Reproduce: Install macOS 26.5.1 and Xcode 26.6 Open Simulator.app or run xcrun simctl boot Attempt to boot any iOS 26.5 simulator device Expected Result: Simulator boots successfully and reaches the Booted state. Actual Result: Unable to boot the Simulator. Domain: NSPOSIXErrorDomain Code: 4 Failure Reason: Interrupted system call Failed to start launchd_sim: could not bind to session, launchd_sim may have crashed or quit responding Domain: com.apple.SimLaunchHostService.RequestError Code: 4 Workaround: Installing an older stable iOS simulator runtime (iOS 17.x or 18.x) and targeting that instead allows simulators to boot normally. Additional Notes: Issue persists after full Mac restart xcrun simctl erase all and xcrun simctl delete all do not resolve it The iOS 26.5 Simulator volume mounts correctly at /Library/Developer/CoreSimulator/Volumes/iOS_23F77 launchd_sim binary is present and properly code-signed
Replies
0
Boosts
0
Views
102
Activity
Jun ’26
Apple supported way to create xcodeproject without using XCode IDE or with minimal use of XCode IDE
We need help to structure our project to start using apple standard way to create Xcode project. let me first express how currently we are creating Xcode project. As of today, we are using CMake to generate our xcode project which we can open in XCODE IDE and build/debug/run/etc. XCode IDE can open those project but we notice that some build setting does not seem to have correct value while looking into XCODE IDE but it somehow builds. There are some other issues also. Along with those issues, we also could not share this xcodeproject generated via CMake to AppleDTS support team as Apple does not support project created via some third party tool (like CMake or others). Let me also express why we decided to use CMake at first place to generate Xcode projects. Our project is layered architecture project where in upper layers uses lower layer artifacts. Each layer has its own set of build targets . And each layer can have both C++ and Swift files. And each layer would have most of the compiler flag common, but we could also have compiler flag specific to each layer also. To achieve all these, we have developed our own tool, which basically creates CMakeLists.txt (for project model- all targets, dependency, etc) and CMakePresets.json (for all compiler and linker flags). Now this tool scans through repos/source folders on each layer and then creates these files (CMakeLists.txt and CMakePresets.json). This tool uses inputs to decide compiler/linker/other properties from one centralized location. Which means every developer would use these same input files and thus they all can have same compiler/linker/other properties set consistent. This makes generated build system consistent on all developer machine and it allows confidence of saying if build works on one developer's machine would also work on other developer’s machine and if build does NOT work on one developer's machine, it would NOT work on other developer’s machine also. So, it’s consistent. That was the main reason to use CMake to generate xcode project. So, our internal tools creates meta data for CMake (which is CMakeLists and CMakePresets) and then CMake generates Xcode build system using XCode generator. Now we want to move to xcode native way to create projects but at the same time we also want this consistency that each of my developer would use exact same compiler/linker/other properties. If we ask developer to use XCode IDE to create xcode project, we cannot guarantee that they all will use same compiler/linker/etc flags and thus we would end up having inconsistent behaviour on different developer machines. We need your help to figure out how we can achive this ? We read some ways that we can create some template project and then we can create some .xcconfig files and use them to set target properties but honestly, we are able to stich them together. So please help us directionally on this , how should we proceed ? Basically we need to know how can we have all my developer use same xcodeproject. I was also thinking how would I be setting my CI for apple builds if I have to use XCode IDE to create xcode project and since CI environments are non interactive and it can happen n number of times in day (if I have setup to run sanity for all Pull Requests). Any help/direction on this is highly appreciated.
Replies
6
Boosts
1
Views
252
Activity
Jun ’26
Gemini coding assistant no reply
I set up Gemini in Xcode 27 beta in Settings using an API key from Google AI studio. When I select "New Conversation" and "Gemini" and type "hi" it just spins forever (many minutes) - no reply or error message. Is there any way to figure out what's wrong?
Replies
3
Boosts
2
Views
327
Activity
Jun ’26