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

Xcode Documentation

Posts under Xcode subtopic

Post

Replies

Boosts

Views

Created

XCTFail immediately aborts the test in Xcode 26 — no retry on failure
Hi, I’m seeing an unexpected change in how XCTFail behaves in UI tests after updating Xcode. I use the following helper method: `func waitForExistance(file: StaticString, line: UInt) -> Self { if !(element.exists || element.waitForExistence(timeout: Configuration.current.predicateTimeout)) { XCTFail("couldn't find element: \(element) after \(Configuration.current.predicateTimeout) seconds", file: file, line: line) return self } else { return self } }` In Xcode 16.4, this worked as expected: – when an element wasn’t found, XCTFail was triggered, but the test continued running, allowing my retry logic to execute. After updating to Xcode 26.1 / 26.2 - the test now immediately aborts after XCTFail, without executing the next retry. The logs show: `t = 113.22s Tear Down t = 113.22s Terminate com.viessmann.care:81789 *** Assertion failure in -[UITests.Tests _caughtUnhandledDeveloperExceptionPermittingControlFlowInterruptions:caughtInterruptionException:whileExecutingBlock:], XCTestCase+IssueHandling.m:273 Test Case '-[UITests.Tests test_case]' failed (114.323 seconds). Flushing outgoing messages to the IDE with timeout 600.00s Received confirmation that IDE processed remaining outgoing messages` It looks like XCTFail in Xcode 26 is now treated as an unhandled developer exception, which stops the test execution immediately, even when it’s called inside a helper method. This was not the case in earlier versions. My questions: Is this a regression in XCTest? Or an intentional change in how XCTFail behaves in newer Xcode versions? Should failures now be reported differently (e.g., using record(.init(type: .assertionFailure, …))) if I want to continue the test instead of aborting it? I would like to restore the previous behavior where the failure is logged without terminating the entire test, so my retry mechanism can still run. Has anyone else run into this after upgrading? Thanks in advance! If you’d like, I can also add recommended workarounds that actually work with Xcode 16.4 (e.g., replacing XCTFail with a non-terminating issue record).
3
3
423
Dec ’25
Xcode 26 cannot run app on simulator, as well as unit test
Hi, When running unit test or app on simulator, it got process crashed mostly of the case, it works fine on the same project, like in Xcode 16.x. Look at the crash report, it randomly crashed when loading libraries, like 2 events attached below... My mac is M3 macbook pro, mac OS is 15.7.2 Anyone know how to sort it out, it is really annoying, can only use device for debug now. Thx... 0x1c693f000 - 0x1c6944fff com.apple.TelephonyUIFramework.axbundle (1.0) <c877fa21-e6e7-31d9-98df-5837e2a98628> /Volumes/VOLUME/*/TelephonyUIFramework 0x1c6b17000 - 0x1c6b18fff com.apple.EmojiKit.axbundle (1.0) <49e64e22-eacd-38a0-af32-fe8834f53170> /Volumes/VOLUME/*/EmojiKit 0x1d7e90000 - 0x1d7eb3fff com.apple.PassKitUI.axbundle (1.0) <caeeabe5-17b1-3d16-8d52-1f7bb5f631f0> /Volumes/VOLUME/*/PassKitUI 0x1d835f000 - 0x1d8388fff com.apple.PhotosUICore.axbundle (1.0) <3476e3ea-772e-3dea-a3f3-a9baed307eeb> /Volumes/VOLUME/*/PhotosUICore 0x1d828f000 - 0x1d82a9fff com.apple.EventKitUIFramework.axbundle (1.0) <a91493a9-7b40-3df0-884d-7954b0dbb89b> /Volumes/VOLUME/*/EventKitUIFramework 0x1c6b30000 - 0x1c6b85fff com.apple.dyld.dyld-framework (*) <c8a41039-7c9c-324a-9770-736b63001f33> /Volumes/VOLUME/*/Dyld.framework/Dyld 0x0 - 0xffffffffffffffff ??? (*) <00000000-0000-0000-0000-000000000000> ??? Error Formulating Crash Report: dyld_process_snapshot_get_shared_cache failed RIP register does not match crashing frame (0x0 vs 0x7FF7FFF34A6C) EOF or this one: 0x10ad57000 - 0x10ad5efff libBacktraceRecording.dylib (*) <1083d13e-5185-3883-bedf-ec633b9aa76f> /Volumes/VOLUME/*/libBacktraceRecording.dylib 0x10ad7a000 - 0x10ad7cfff libLogRedirect.dylib (*) <a174f56a-c354-33bf-a458-d2e8582d3ae9> /Volumes/VOLUME/*/libLogRedirect.dylib 0x102751000 - 0x102755fff com.velobank.dev (25.11.0) <4ecd00ef-c3fc-3353-ace5-05c9ce42bae9> /Users/USER/Library/Developer/CoreSimulator/Devices/2F963721-D9A1-4CBF-A906-4646612795E1/data/Containers/Bundle/Application/FBA0FA3E-093F-48C5-8069-542F8949779D/ios_example.app/ios_example 0x0 - 0xffffffffffffffff ??? (*) <00000000-0000-0000-0000-000000000000> ??? Error Formulating Crash Report: dyld_process_snapshot_get_shared_cache failed RIP register does not match crashing frame (0x0 vs 0x10276AAE0) EOF
0
1
48
Dec ’25
Metal toolchain compilation error after migration to MacOS 26 and XCode 26.1
Hello. I migrated yesterday two machines from OS15 to OS26 (same Ram; M1Max chip). On the first one, a MBP, everything is allright, and my old Metal projects can compile and run, even with MacOS12 as a destination. On the second computer (MacStudio) I got a compile "error: cannot execute tool 'metal' due to missing Metal Toolchain; use: xcodebuild -downloadComponent MetalToolchain". I spent hours on many forums and tried all proposed solutions and still get the same error. Any idea? Thanks
2
0
127
Dec ’25
SPM Traits not working correctly with multiple targets in same Xcode workspace (App + App Clip)
Hi, I've just migrated to Swift Tools 6.2 and package traits, and I'm encountering an issue when using traits with multiple targets in the same Xcode workspace. Setup: Main iOS app target App Clip target Both consume the same local packages (e.g., UIComponents) What I'm trying to achieve: Main app imports packages without the COMPACT_BUILD trait App Clip imports packages with the COMPACT_BUILD trait enabled Package configuration (simplified): // UIComponents/Package.swift let package = Package( name: "UIComponents", platforms: [.iOS(.v18)], traits: [ .trait(name: "COMPACT_BUILD", description: "Minimal build for App Clips"), ], // ... targets: [ .target( name: "UIComponents", dependencies: [...], swiftSettings: [ .define("COMPACT_BUILD", .when(traits: ["COMPACT_BUILD"])), ] ), ] ) In the code: #if COMPACT_BUILD // Excluded from App Clip #endif The consumer packages: Main app's package imports without trait: .package(path: "../UIComponents") App Clip's package imports with trait: .package(path: "../UIComponents", traits: ["COMPACT_BUILD"]) The problem: When building the main app target, the COMPACT_BUILD compiler condition is unexpectedly active — even though the main app's dependency chain never enables that trait. It seems like the trait enabled by the App Clip target is "leaking" into the main app build. I confirmed this by adding #error("COMPACT_BUILD is active") — it triggers when building the main app, which shouldn't happen. If I disable the App Clip target from the build scheme, the main app builds correctly with COMPACT_BUILD not defined. I am also able to build the App Clip separately. Environment: Xcode 26.2 swift-tools-version: 6.2 iOS 26.2 Questions: Is this expected behavior with Xcode's SPM integration? Are traits resolved workspace-wide rather than per-target? Is there a workaround to have different trait configurations for different targets consuming the same package? Or do I need to fall back to separate package targets (e.g., UIComponents and UIComponentsCompact) to achieve this? Any guidance would be appreciated. Thanks!
0
0
89
Dec ’25
Help: Compiled Timeline Issues
I have developed a fun living diorama world using Reality Composer Pro and XCode. Everything is as it should be, and it looks/works great ... until it does not. If I seem to make any change to any of the 10 timelines that I am using (all on the same scene, no nested scenes), running the app in simulator, device, and via testflight throws errors around compiled timelines, leading to the black screen of death. Every time I clean and run, the timelines in questions might change. Its very frustrating and impossible to track down. Heres are some examples. AssetLoadRequest failed because asset failed to load '/ (3661553931319769725 Timeline (RealityFileAsset)URL/file:///var/containers/Bundle/Application/F4408256-6014-4264-9E4B-F74AEF0EDE53/SantasVillage.app/RealityKitContent_RealityKitContent.bundle/RealityKitContent.reality/Timeline_779.compiledtimeline)' (failed to register asset) Asset / (13631856135570808851 AnimationLibraryAsset (RealityFileAsset)URL/file:///var/containers/Bundle/Application/F4408256-6014-4264-9E4B-F74AEF0EDE53/SantasVillage.app/RealityKitContent_RealityKitContent.bundle/RealityKitContent.reality/AnimationLibraryAsset_1.compiledanimationlibraryasset) failure: failed to register asset Asset 10430065658338454790 AnimationScene (RealityFileAsset)URL/file:///var/containers/Bundle/Application/F4408256-6014-4264-9E4B-F74AEF0EDE53/SantasVillage.app/RealityKitContent_RealityKitContent.bundle/RealityKitContent.reality/AnimationScene_14.compiledanimationscene failure: failed to register asset I went with recommended fixes of closing RCP > Clean Build Folder > Delete Derrived Date (multiple ways) > Re-Open Xcode > Reset Package Cache > Re-Open RCP via XCode > Make a Change > Save > Clean Build Folder Again > Run. Sometimes it works. Most times it does not. I then found my own little work-around, but its not always working as is literally costing me days of wasted time messing around with this. I will DISABLE all timelines, do the above clean method, rerun with no timelines, and it resolves. Then, turn on timelines ONE BY ONE and run until I get another error. Then, rebuild that timeline and nothing else. This is not sustainable. There must be some better way to do this? Or, perhaps I am doing something wrong? Please help if you can.
3
0
251
Dec ’25
Build keeps failing with PhaseScriptExecution error
I have a Unity AR project that I want to build for iOS. The build in Unity succeeds just fine, but when it opens in XCode, whatever I do, it keeps showing this error in GameAssembly: "Command PhaseScriptExecution failed with a nonzero exit code". This error also doesn't open when choosing "Reveal in Log". I have added the IL2CPP package in the Unity version, deleted and reentered scenes and no issue on Unity's side. On XCode I signed in with my developer account, tried deleting derived data, made a clean build and still the issue persists.
1
0
106
Dec ’25
XCode will not allow access to Code Commit
I'm really sick of Apple and their BS kickbacks they get from github and the other source control outfits restricting what source control packages we can use inside of XCode. We have used Code Commit with AWS for YEARS! We are not switching but apple's Xcode will not allow us to add it as an account. We used to be able to use it, but Apple took away the GIT account setup so now you have to use one of their kickback outfits. This is complete BS Apple. Even AWS realized how important Code Commit is and made it available to everyone again and pledged full support going forward. How about you get off your collective sixes and do the same. I'd like an explanation on why you took away the one feature that allows us to use what works for us.
0
0
69
Dec ’25
Reminders app developer tutorial console warning: ... The existing content view does not support the new configuration
Hi, I am working through the https://developer.apple.com/tutorials/app-dev-training/editing-reminders The app runs as described, but in the Xcode 26.1.1 console, I get numerous warnings that say: Warning: You are setting a new content configuration to a cell that has an existing content configuration, but the existing content view does not support the new configuration. This means the existing content view must be replaced with a new content view created from the new configuration, instead of updating the existing content view directly, which is expensive. Use separate registrations or reuse identifiers for different types of cells to avoid this. Make a symbolic breakpoint at UIContentConfigurationAlertForReplacedContentView to catch this in the debugger. Does this app need to be updated for Xcode 26, or are there settings in Xcode 26 that I need to make to get rid of these warnings? Thanks
0
0
34
Dec ’25
Xcode crashes on launch
I have Mac mini intel, and updated top Sequia 15.7.2 and updated Xcode to 26 and now it crashes on launch. I uninstalled and reinstalled and still crashes. I uninstalled and installed Xcode 16.4 and that crashes on launch also. I've looked all over for help but cannot find anything. Can anyone please help me with this?
1
0
83
Dec ’25
Stale TBD Files Cause Runtime Crash When Framework Changes from Dynamic to Static
Stale TBD Files Cause Runtime Crash When Framework Changes from Dynamic to Static Summary When using EAGER_LINKING=YES, Xcode generates TBD files for dynamic frameworks. When a framework changes from dynamic to static, Xcode doesn't remove the stale TBD, causing dyld: Library not loaded crash at runtime. Environment Xcode 16.4 (16F6), macOS Darwin 24.6.0, iOS Simulator 18.5 Steps to Reproduce Project Structure: MainApp (EAGER_LINKING=YES) ProjectA/SharedLib (dynamic, mh_dylib) ProjectB/SharedLib (static, staticlib) Steps: Build with ProjectA (dynamic framework) → TBD created in EagerLinkingTBDs Switch workspace to ProjectB (static framework) without cleaning DerivedData Build again → BUILD SUCCEEDED Run app → CRASH: dyld: Library not loaded Root Cause Xcode adds -F EagerLinkingTBDs before -F Build/Products: -F/.../EagerLinkingTBDs/Debug-iphonesimulator ← checked FIRST -F/.../Build/Products/Debug-iphonesimulator ← checked SECOND The linker finds the stale TBD first and treats the framework as dynamic, even though the actual binary is now static. Evidence # SharedLib is static $ file SharedLib.framework/SharedLib current ar archive random library # But stale TBD still exists $ ls EagerLinkingTBDs/.../SharedLib.framework/ SharedLib.tbd ← STALE! # MainApp incorrectly references dynamic library $ otool -L MainApp.app/MainApp.debug.dylib | grep SharedLib @rpath/SharedLib.framework/SharedLib ← WRONG! Attempted Workarounds (All Failed) Workaround Result FRAMEWORK_SEARCH_PATHS = "$(BUILT_PRODUCTS_DIR)" "$(inherited)" Xcode still adds EagerLinkingTBDs first EAGER_LINKING = YES on static framework Build failure - empty TBD OTHER_LDFLAGS modifications Linker still uses TBD Expected Behavior When a framework changes from dynamic to static, Xcode should remove the stale TBD file from EagerLinkingTBDs. Suggested Fix Remove TBD files when building static library targets Track MACH_O_TYPE changes and invalidate TBD files accordingly
0
0
128
Dec ’25
Enabling xcode project for CI/CD
Hello All, I am new to apple ecosystem. We have a xcode project whose code is scattered across different repos. We are trying setup CI/CD for this Xcode project to get build so that we could know build issue. Clone/Update all repos – which I can do via some script Generate xcode projects from sources synced in step 1. This is where we want your help. How should we approach this? What apple suggest for this ? In this step we don't want to use any third part tool (like CMake) to generate Xcode projects. Build targets to know build errors – This we can easily do via xcodebuild command line tool. Please share you input/thought on this. Your input is highly appreciated.
0
0
72
Dec ’25
xcodebuild failed without clear reason
Hello, I got a weird issue with xcodebuild, the tool gives the error that requested device could not be found but I already add it. The issue is solved if I remove the -scheme (and deveriedDataPath. Do you have any idea what is wrong with the parameter or it is the xcodebuild error itself? haiphan@MacMini MetalTest % xcodebuild -project MetalTest.xcodeproj -destination 'platform=macOS,name=Any Mac' -scheme MetalTest Command line invocation: /Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -project MetalTest.xcodeproj -destination "platform=macOS,name=Any Mac" -scheme MetalTest 2025-12-05 12:18:25.594 xcodebuild[17581:2982049] Writing error result bundle to /var/folders/x7/rmx20t393rx49t6gyx3fh_vdmz2lm8/T/ResultBundle_2025-05-12_12-18-0025.xcresult xcodebuild: error: Unable to find a device matching the provided destination specifier: { platform:macOS, name:Any Mac } The requested device could not be found because no available devices matched the request. Available destinations for the "MetalTest" scheme: { platform:macOS, arch:arm64, id:00006020-000E29861AE8C01E, name:My Mac } { platform:macOS, arch:x86_64, id:00006020-000E29861AE8C01E, name:My Mac } { platform:macOS, name:Any Mac }
0
1
38
Dec ’25
Xcode not updating recent projects
My Xcode does not show my Recent projects for a while now. I have different projects on my Mac that I open using Xcode and it can't remember the recent ones and never shows it. Does anyone know how to fix that? I've tried to clean caches, restart the Mac, download the Xcode again... MacOs: Tahoe 26.1 Xcode: 26.1.1
1
0
67
Dec ’25
Xcode and Anthropic: usage limits
Hi, I have been using Claude with Xcode 26.1.1 and it was working fine till a couple of days ago, when it started giving me an error message on every query: "Message from Anthropic: This request would exceed your account's rate limit. Please try again later." I am on the Pro model, and I can use the Claude.ai website just fine. The usage limits on the website show I've used only 11% of the weekly limit, and 4% of the 'current session'. So I'm wondering if this is an Xcode bug / issue, and if there is a workaround. I have restarted Xcode, restarted the Mac, logged out of Anthropic and logged back in, tried Xcode 26.2 beta as well, but no luck.
0
0
71
Dec ’25
Shortcut to wrap selected lines in a #if/#endif
I'm looking for a way to make the following possible in Xcode (26.0 or later): I select one or more lines of code. I then enter a hotkey (or select a menu item) that results in adding the line: #ifdef SOME_MACRO before the selection and adding the line: #endif after the selection. Example: Start with the following lines of code: BOOL x = NO; int y = 4; NSString *str = @"Hello"; If I then highlight the int y = 4; line and use the proper hotkey or menu, the result would be: BOOL x = NO; #ifdef SOME_MACRO int y = 4; #endif NSString *str = @"Hello"; Is something like this possible in Xcode? I looked at code snippets but that doesn't seem to support wrapping existing code. I looked at the Xcode Settings under Editor and Shortcuts and didn't see a way to add such a custom shortcut.
0
0
46
Dec ’25
Error in validating binary for the iPad multitasking
When I try to validate my app I get the following error: Invalid bundle. Because your app supports Multitasking on iPad, you need to include the LaunchScreen.storyboard launch storyboard file in your com.augmentedReality.virtualTags bundle. Use UlLaunchScreen instead if the app's MinimumOSVersion is 14 or higher and you prefer to configure the launch screen without storyboards. For details, see: https:// developer.apple.com/documentation/bundleresources/information_property_list/ uilaunchstoryboardname (ID: 236f630a-a014-48e8-910a-77d9c0ff6f51) What should I do to fix it? In the previous Xcode version and on another app it did not appear. MacBook Pro M5, Tahow 26.1, Xcode 26.1.1
1
0
98
Dec ’25
Xcode is a mess!
After having used Obj-C and C++ for years, I recently (~6 months) moved to Swift, which is hard for me but most often sends less obscure error messages (not always). My trouble is 1- why is it soooooo long (sometimes up to 20s - that's horrible) to get an object's variables accessible in the debugger? 2- In Xcode 16 why is it no longer possible to arrange my files as I did before (organised into folders from within Xcode - horrible when you get a bigger and bigger project)? 3- Why has it become impossible to see the retention cycles and retaining objects from with the memoryGraph (it's worth ~nothing) now !
2
0
102
Dec ’25
macOS Simulator
Currently Xcode has iOS simulators that allow easily testing apps on older versions of iOS. It would be helpful if there was also a macOS simulator for testing apps on older versions of macOS. FB21229682 https://github.com/feedback-assistant/reports/issues/724
0
1
197
Dec ’25