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).
Xcode
RSS for tagBuild, test, and submit your app using Xcode, Apple's integrated development environment.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Created
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
Topic:
Developer Tools & Services
SubTopic:
Xcode
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
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!
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.
Topic:
Developer Tools & Services
SubTopic:
Xcode
Tags:
Reality Composer
RealityKit
Reality Composer Pro
visionOS
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.
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.
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
Topic:
Developer Tools & Services
SubTopic:
Xcode
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?
Topic:
Developer Tools & Services
SubTopic:
Xcode
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
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.
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 }
Topic:
Developer Tools & Services
SubTopic:
Xcode
Xcode 26.2 RC has been out for over 24 hours and it's still not possible to submit apps.
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
Topic:
Developer Tools & Services
SubTopic:
Xcode
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.
Topic:
Developer Tools & Services
SubTopic:
Xcode
If I am using reverse-geocode to a state to determine if the State is Texas then how can I test this?
Topic:
Developer Tools & Services
SubTopic:
Xcode
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.
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
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 !
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