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

Xcode Documentation

Posts under Xcode subtopic

Post

Replies

Boosts

Views

Created

When trying to run SwiftUI previews, it fails with "SimulatorShutdownUnexpectedlyError - Simulator was shutdown during an update"
My main app target builds fine and can run on Simulator without issue. Whenever I try to run a Preview, I get this error: == DATE: Monday, November 3, 2025 at 2:52:23 PM Pacific Standard Time 2025-11-03T22:52:23Z == PREVIEW UPDATE ERROR: SimulatorShutdownUnexpectedlyError: Simulator was shutdown during an update Simulator [F85A5AF1-F52C-4662-AFCD-762F87AF537D] failed to boot and may have crashed. This seems like it started happening after updating to MacOS 26. I've tried reinstalling all Simulators, tried on Xcode 26, deleted derived data, restarted Xcode and my Mac several times. What other troubleshooting steps can I take?
3
1
92
Nov ’25
How can I test a QuickLook Preview Extension using Xcode?
I didn't really find anything in Apple docs on how to debug my extension using Xcode (so not saying it doesn't exist). I found a current Stack post on it, with several devs all stuck. In 2024 someone said run the Preview Extension, select Finder as the test app, then in a Finder window select a file of the correct type and tap space. Nothin happens when I do this (I get the file icon showing). Suggestions most welcome!
1
0
76
Nov ’25
Simulators (iOS 26.1) clean takes up to 15min every time
We have the following step before running any tests on CI machine: xcrun simctl shutdown all && xcrun simctl erase all It was working perfectly before Xcode 26.1. On Beta 3 it was doing it for 15 min every time. When updated to RC1, the tests with cached build are fast (clean goes up to 10 sec), but the package tests clean is still going up to 15 min every time. We did xcrun simctl runtime dyld_shared_cache update --all as advised but it's helping only temporarily. Is this going to be fixed in the official release?
2
1
215
Nov ’25
How do I run an arbitrary subprocess from an Xcode extension?
I'd like to start a subprocess from an Xcode extension. My prototype performCommandWithInvocation method looks like this: - (void)performCommandWithInvocation:(XCSourceEditorCommandInvocation *)invocation completionHandler:(void (^)(NSError * _Nullable nilOrError))completionHandler { NSTask*task= [[NSTask alloc]init]; [task setExecutableURL:[NSURL fileURLWithPath:@"/bin/sh"]]; //option A: [task setArguments:@[@"-c",@"echo hello from sh"]]; //option B: [task setArguments:@[@"-c",@"/usr/bin/python3 -c 'print(\"hello from python3\")'"]]; [task launch]; [task waitUntilExit]; int status=[task terminationStatus]; printf("status: %d\n",status); completionHandler(nil); } So there's two options there: option A, or option B. (Uncomment to taste.) Option A does work. /bin/sh starts, and runs echo, and it prints hello to its stdout. I was foolish enough to let this convince me that this whole thing might be a goer. Option B does not work. I get an error: xcrun error: cannot be used with in an App Sandbox. Which is annoying, as virtually all of the scripts I want to run are written in Python, and I'd quite like this to be an option. How do I fix this? I tried removing the App Sandbox settings from my extension, but then Xcode refused to load it. I added Read/Write permissions to all the File Access settings in the App Sandbox section, even though most of them sounded irrelevant, but no improvement. Then I ticked every tick box I could find. My extension can debug, it can JIT, library validation is off, it can use the camera and access my photos and read the audio and my contacts and open sockets in any direction it wants and goodness knows what else. But it seems it still can't run python. How do I make this work? --Tom
0
0
66
Nov ’25
XCode26 and Icon Composer woes
I'm having a lot of trouble getting my icon working with XCode26 and Icon Composer. <TL;DR> The icon sucks </TL:DR> Why does it suck? 4 main issues plague me when I compare the new icon with the existing icon. The colors are washed out. I can't have a transparent background. The size of the icon is wrong. I can't use the old icon on pre-Tahoe macs. It's Tahoe or bust! Here's a comparison between the two icons: If I add any Liquid Glass effects to the icon, it just looks bad. Any more of a gradient behind the image makes the image fade out. Adding specular highlights just throws a ring around the upper and lower sections that doesn't seem to fulfill any purpose. Blur doesn't seem to do anything. And I can't get rid of the background at all. It must be there. The biggest problem is the size. The new icon doesn't just look smaller, it is smaller! I measured the width and the new icon is 19.5% smaller. I did this by setting the finder view to 128x128, grabbing the screen shot, and using Acorn to measure the width from the left red edge to the right blue edge. The icns file is 256 pixels across which makes sense as I'm on a 4K monitor at 2x resolution. The icon file is 206 pixels. Doing the same with the finder set to 256x256 shows the same reduction. When I look at Icon Composer, it's showing me that the icon is fitting in perfectly with the guidelines. The graphic artist I hired years ago did a great job! So somehow there is a border being added to the icon file that shrinks the image down, and I can't get rid of it nor make the icon bigger. So I'm stuck. I've tried the various tricks to get both the icns and icon files to be added to the build such that pre-Tahoe macs see the old icon, and it either breaks on Tahoe or breaks on the pre-Tahoe. I can't get both. I don't think there's a solution to this, I'm just documenting my frustrations. The Mac was fine before this, why change something that works?
3
0
113
Nov ’25
Can an IP address manually be entered into Xcode to wirelessly connect to an iOS device?
I often use a Wi-Fi network where: Whatever mechanism Xcode uses to automatically discover a previously paired iOS device seems to be blocked (the Devices and Simulators window shows "Browsing on the local area network for [iPhone]" and never proceeds), but I can connect to the iOS device from my Mac if I know its IP address, such as by pinging it The same hardware/software configuration works with wireless Xcode connections on a different Wi-Fi network. Thus I'm wondering if there's any functionality that allows the IP address to be manually entered into Xcode to avoid needing to connect a cable from my Mac to my iPhone during development. Searching around seems to suggest this existed at some point in the past but I can no longer find this in a current version of Xcode. Or if there are any other workarounds, although I can't modify the network itself as it's not my network.
2
0
274
Oct ’25
Xcode subscription test
Hey, is it possible to test with an Xcode test build if the subscription notifications are correctly being sent to the backend? Currently nothing appears on my backend after subscribing. For some reason i can also subscribe multiple times to the same product. It looks like nothing is being saved anywhere which is why I also can't cancel a test subscription. All of this was fairly easy and possible when setting up the google play version of our app.
1
0
83
Oct ’25
Xcode 26 CompileMetalFile failed
"EnableLiveAssetServerV2-com.apple.MobileAsset.MetalToolchain" = on; ProductName: macOS ProductVersion: 26.0.1 BuildVersion: 25A362 The MetalToolchain is installed, however I keep getting error that MetalToolchain cannot be found by the Xcode "Command CompileMetalFile failed with a nonzero exit code" error: error: cannot execute tool 'metal' due to missing Metal Toolchain; use: xcodebuild -downloadComponent MetalToolchain ❯ xcodebuild -downloadComponent MetalToolchain 2025-10-31 11:18:29.004 xcodebuild[6605:45524] IDEDownloadableMetalToolchainCoordinator: Failed to remount the Metal Toolchain: The file “com.apple.MobileAsset.MetalToolchain-v17.1.324.0.k9JmEp” couldn’t be opened because you don’t have permission to view it. Beginning asset download... 2025-10-31 11:18:29.212 xcodebuild[6605:45523] IDEDownloadableMetalToolchainCoordinator: Failed to remount the Metal Toolchain: The file “com.apple.MobileAsset.MetalToolchain-v17.1.324.0.k9JmEp” couldn’t be opened because you don’t have permission to view it. Downloaded asset to: /System/Library/AssetsV2/com_apple_MobileAsset_MetalToolchain/4ab058bc1c53034b8c0a9baca6fba2d2b78bb965.asset/AssetData/Restore/022-17211-415.dmg Done downloading: Metal Toolchain 17A324.
5
2
449
Oct ’25
Clicking on warning to open a file (from script)
I'm running a swift script that is emitting warning lines like this /Users/work/Documents/QuGame/QuGame/BoardTurnView.swift:1:1: warning: [dead-code] Debug-only symbol static SimpleTurn.== infix(SimpleTurn, SimpleTurn) -> Swift.Bool /Users/work/Documents/QuGame/QuGame/DataNotifications+PreviewData.swift:1:1: warning: [dead-code] Debug-only symbol DataNotifications.(addConversation)(to: QUBoardModel, local: GKPlayer, opponent: GKPlayer, texts: [Swift.String]) -> () /Users/work/Documents/QuGame/QuGame/DataNotifications+PreviewData.swift:1:1: warning: [dead-code] Debug-only symbol DataNotifications.loadBlankBoard() -> () These are correctly formatted for Xcode to detect the filename, line and columns. ` Showing Recent Issues [dead-code] Debug-only symbol static SimpleTurn.== infix(SimpleTurn, SimpleTurn) -> Swift.Bool [dead-code] Debug-only symbol DataNotifications.(addConversation)(to: QUBoardModel, local: GKPlayer, opponent: GKPlayer, texts: [Swift.String]) -> () [dead-code] Debug-only symbol DataNotifications.loadBlankBoard() -> () However, when the script is run as part of the post-actions, Xcode doesn't support clicking on the warning to take you to the file. I can map from the .o to the .swift by hunting the project directory (not-sandboxed) If I run the script as part of the Run Script Phase, I cannot back track to find the fully qualified location of the file as I'm sandboxed. All I have is BoardTurnView.o, DataNotiications+PreviewData.o etc. Anyone got any suggestions?
0
1
77
Oct ’25
Chooser from Open Quickly missing in Xcode 26?
This whole time I was convinced that Apple just re-bound my favorite keyboard shortcut to something else in Xcode 26 and I just needed to find it and re-bind it, but it looks like they've gotten rid of it altogether and I'm losing my mind. For many years, selecting a type in the Open Quickly menu (Shift-Command-O) and hitting Shift-Option-Enter would bring up a chooser that would let you move a cursor around and select which open pane to open the file in (or create a new pane.) It was so useful and made working in Xcode so fast and it really seems like it's gone for good. Has this behaviour been changed? I don't see it mentioned in "What's New in Xcode 26?"
1
1
64
Oct ’25
XCode problem
Right now, I am trying the tutorial for SwiftUI from the Apple Developer Program inside of Xcode, but I encountered a problem. Inside of the selectable canvas mode in Xcode, I wanted to command-control-click the element (in this case, a text) to bring up the editing popover and select "Show SwiftUI Inspector." For some reason, on the popover menu, the only option was "Embed." I only wanted the menu point Show SwiftUI Inspector, and I also tried the shortcut Ctrl+Option, but nothing worked. Now is there another method to get to this menu? Or can you help me with that? Noah
1
3
105
Oct ’25
Communication with Apple failed
‘Your team has no devices from which to generate a provisioning profile. Connect a device to use or manually add device IDs in Certificates, Identifiers & Profiles. https://developer.apple.com/account/ Xcode couldn't find any tvOS App Development provisioning profiles matching ’ I followed the instructions and created it manually, but it still doesn't work. Why is that? I remember it used to be created automatically and take effect right away.
3
0
130
Oct ’25
ToolbarItem with .hidden() or .opacity(0) leaves a visible frame when built with Xcode 26 (worked fine in Xcode 16.4)
In Xcode 16.4, I could hide a ToolbarItem simply by applying .hidden() or .opacity(0), and the button disappeared completely — including its touch area and layout space. However, when I build the same code with Xcode 26, the button visually disappears but its frame and tap area remain, as if the ToolbarItem were still present but invisible. This causes an empty tappable area to remain in the toolbar. Here’s a simplified example: .toolbar { ToolbarItem(placement: .topBarLeading) { Button("Back") { // action } .opacity(isSelectionMode ? 0 : 1) // or .hidden() – both produce the same issue } ToolbarItem(placement: .principal) { Text("Title") } ToolbarItem(placement: .topBarTrailing) { Button("Select") { isSelectionMode.toggle() } } } Expected behavior (Xcode 16.4):  When isSelectionMode becomes true, the Back button disappears completely and its space in the toolbar is released. Actual behavior (Xcode 26):  The Back button becomes invisible, but its tappable area and layout spacing remain, leaving an empty spot in the toolbar. To work around this, I tried conditionally including the ToolbarItem only when isSelectionMode == false, like this: @ToolbarContentBuilder private var toolbarLeadingContent: some ToolbarContent { if !isSelectionMode { ToolbarItem(placement: .topBarLeading) { Button("Back") { } } } } However, this approach fails to build when the minimum deployment target is iOS 15, showing the compiler error: 'buildIf' is only available in iOS 16.0 or newer I understand that @ToolbarContentBuilder relies on buildIf internally for conditional branches, which explains the limitation, but this means there’s currently no iOS 15–compatible way to completely remove a ToolbarItem at runtime. So my questions are: Is the layout change in Xcode 26 an intentional behavior change in SwiftUI? What’s the correct way to fully remove a ToolbarItem on iOS 15–compatible projects without using buildIf?
0
0
81
Oct ’25
Xcode 26.1 RC issue
I'm seeing a lot of unexpected CPU usage when running the iOS 26.1 simulator. Looks like a "MercuryPosterExtension" is crashing over and over, which then causes the "ReportCrash" process to run, presumably to create the crash report. Doesn't happen on device, nor on iOS 26.0 simulator. I suspect MercuryPoster is related to wallpaper. I also don't see any wallpaper background in my simulator. Few lines from the stack trace: Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 libxpc.dylib 0x18011defc _xpc_api_misuse + 88 1 libxpc.dylib 0x18012e16c _xpc_shmem_create_with_prot.cold.1 + 24 2 libxpc.dylib 0x180113a70 _xpc_shmem_create_with_prot + 276 3 MTLSimDriver 0x23795ed48 -[MTLSimDevice newBufferWithLength:options:pointer:copyBytes:deallocator:] + 260 4 MercuryPosterExtension 0x10081d21c 0x100758000 + 807452 13 PosterKit 0x240d003d8 -[PRRenderer scene:willConnectToSession:options:] + 648 14 UIKitCore 0x1856bcf18 +[UIScene _sceneForFBSScene:create:withSession:connectionOptions:] + 956
30
30
3.9k
Oct ’25
Xcode26.1 compile error: cannot execute tool 'metal' due to missing Metal Toolchain
When I use Xcode26.1 or Xcode26.0.1 compile my project, Xcode failed with error error: cannot execute tool 'metal' due to missing Metal Toolchain; use: xcodebuild -downloadComponent MetalToolchain. I search around and found this is a known issue and fixed in Xcode26, but I get this error in latter versions. I tried all the methods in documents(https://developer.apple.com/documentation/xcode-release-notes/xcode-26-release-notes) to intall Metal component, but it still compile error with the same error. I also delete Xcode and all related components restart computer and reinstall Xcode26.1, it's not work also. macOS version: 26.0.1 (25A362) Xcode version: 26.1 MetalToolchain version: 17.0 (17B54)]
1
0
156
Oct ’25
CompileAssetCatalogVariant failed with nonzero exit code.
I'm running in a very very very weird error. I have a large asset catalog, consisting of about 2700 assets for 1.19GB of size. I can successfully build and run my project with both release and debug scheme, when a real device or simulator is selected. However, whenever I select Any iOS device (arm64), about 80ish seconds in the build process, the building fails with the following output: CoreUI: Error: unable to add asset to store *** Terminating app due to uncaught exception 'IBPlatformToolFailureException', reason: 'The tool closed the connection (AssetCatalogSimulatorAgent) What I tried and failed: Cleaning DerivedData and restarting PC Building the same project on three different devices, each with a different version of XCode. All failed. running sudo killall -9 com.apple.CoreSimulator.CoreSimulatorService Scanning for duplicate image files, found none. Scanning for duplicate .imageset folders in different folders, found none. Scanning for images that declared a different format than theirs, eg .webp renamed as .png, and found none. Creating an empty Hello World project, and just adding my asset catalog. Build fails for Any iOS device, succeeds for simulator or physical device. Uninstalling and reinstalling XCode command line tools. Manually compiling via actools. Changed "Embed Assets Pack in Product Bundle" from No to Yes. I don't have any .svg file in my assets. What I tried and failed but gives more insight: Now the only thing that I was able to come up with was deleting folders to narrow down where the problem was. So I found that there is a 700MB folder called T, containing T1, T2, ..., T6. Eventually managed to narrow down even more to T3, T4, T6. I created a distinct .xcassets catalog for each subfolder and tried to compile individually with actools, along with assets.xcassets (the main one). Here's the thing: T3.xcassets + assets.xcassets compiles T4.xcassets + assets.xcassets compiles T6.xcassets + assets.xcassets compiles T3.xcassets + T4.xcassets + assets.xcassets compiles. T3.xcassets + T6.xcassets + assets.xcassets compiles. T4.xcassets + T6.xcassets + assets.xcassets compiles. T3.xcassets + T4.xcassets + T6.xcassets + assets.xcassets crashes with CoreUI: Error: unable to add asset to store. I've been stuck for days now and can't deploy my finished app I worked on for the last three years because of this.
6
0
261
Oct ’25
Regarding the Deployment Targets setting for Xcode 26
Our project plans to upgrade Xcode from 16.2 to Xcode 26. We’ve noticed that the information on https://developer.apple.com/support/xcode/ states that the Deployment Targets for Xcode 26 supports iOS 15–26.1. However, the Deployment Targets for our current project is set to iOS 13. Does this mean that we must set the project’s Deployment Targets to iOS 15 or higher if we want to upgrade to Xcode 26? Can we still set the Deployment Targets to iOS 13? If we upgrade to Xcode 26 and set the Deployment Targets to iOS 13, will there be any problems?
2
0
157
Oct ’25