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

Xcode Documentation

Posts under Xcode subtopic

Post

Replies

Boosts

Views

Created

A Summary of the WWDC25 Group Lab - Developer Tools
At WWDC25 we launched a new type of Lab event for the developer community - Group Labs. A Group Lab is a panel Q&A designed for a large audience of developers. Group Labs are a unique opportunity for the community to submit questions directly to a panel of Apple engineers and designers. Here are the highlights from the WWDC25 Group Lab for Developer Tools. Will my project codebase be used for training when I use Xcode's intelligent assistant powered by cloud-based models? When using ChatGPT without logging in, your data will not be used to improve any models. If you log in to a ChatGPT account, this is based on your ChatGPT account settings, which allows you to opt-out (it defaults to on). When using Xcode with accounts for other model providers, you should check with the policies of your provider. And finally, at no point will any portion of your codebase be used to train or improve any Apple models. We'd love to make our SwiftUI Previews (and soon, Playgrounds) as snappy as possible. Is there any way to skip certain build steps, such as running linters? It seems the build environment is exactly the same (compared to a debug build), but maybe there's a trick. Starting with Xcode 16, SwiftUI previews use the exact same build artifacts as the regular build. The new Playgrounds support in Xcode 26 uses these build artifacts too. Shell script build phases are the most common thing that introduces extra build time, so as a first step, try turning off all shell script build phases (like linters) to get an idea if that’s the issue. If those build phases add significant time to your build, consider moving some of those phases into asynchronous steps, such as running linters before committing instead of on every build. If you do need a shell script build phase to run during your build, make sure to explicitly define the input and output files, as that is a huge way to improve your build performance. Are we able to provide additional context for the models, like coding standards? Documentation for third party dependencies? Documentation on your own codebase that explains things like architecture and more? In general, Xcode will automatically search for the right context based on the question and the evolving answer, as the model can interact multiple times with your project as it develops an answer. This will automatically pick up the coding style of the code it sees, and can include files that contain architecture comments, etc. Beyond automatic context, you can manually attach other documents, even if they aren't in your project. For example, you could make a file with rules and ideas and attach it, and it will influence the response. We are very aware of other kinds of automatic context like rule files, etc, though Xcode does not support these at this time. Once ChatGPT is enabled for Coding Intelligence in Xcode 26, and I sign into my existing ChatGPT account, will the ChatGPT Coding Intelligence model in Xcode know about chat conversations on Xcode development done previously in the ChatGPT Mac app? Xcode does not use information from other conversations, and conversations started in Xcode are not accessible in the web UI or ChatGPT app. Is there a plan to make SwiftUI views easier to locate and understand in the view hierarchy like UIKit views? SwiftUI uses a declarative paradigm to define your user interface. That allows you to specify what you want, with the system translating that into an efficient representation at runtime. Unlike traditional AppKit and UIKit, seeing the runtime representation of SwiftUI views isn't sufficient in order to understand why it's not doing what you want. This year, we introduced a SwiftUI Instrument that shows why things are happening, like view re-rendering. Is it possible to use the AI chat with ChatGPT Enterprise? My company doesn't allow us to use the general ChatGPT, only the enterprise version they have setup that prevents data from being leaked Yes, Xcode 26 supports logging into any existing ChatGPT account, including enterprise accounts. If that does not meet your needs, you can also setup a local server that implements the popular chat completions REST API to talk to your enterprise account how you need. Now that Icon Composer is here, how does it complement or replace existing vector design tools such as Sketch for icon design? Icon Composer complements your existing vector design tools. You should continue to create your shapes, gradients, and layers in another tool like Sketch, and compose the exported SVG layers in Icon Composer. Once you bring your layers into Icon Composer, you can then use it to influence the translucency, blur, and specular highlights for your icon. What’s one feature or improvement in the new Xcode that you personally think developers will love, but might not immediately discover? Maybe something tucked away or quietly powerful that’s flown under the radar so far? One feature we're particularly excited about is the new power profiler for iOS, which gives you further insights into the energy consumption of your app beyond what was possible with the energy instrument previously. You can learn more about how to use this instrument and how it can help you greatly reduce your apps battery usage in the documentation, as well as the session Profile and optimize power usage in your app. There were also improvements in accessibility this year with Voice Control, where you can naturally speak your Swift code to Xcode, and it understands the Swift syntax as you speak. To see it in action, take a look at the demonstration in What’s new in Xcode 26. We have a software advisory council that is very sensitive to having our private information going to the cloud in any form. What information do you have to help me guide Xcode and Apple Intelligence through the acceptance process? One thing you can do is configure a proxy for your enterprise that implementing the popular Chat Completions API endpoint protocol. When using a model provider via URL, you can use your proxy endpoint to inspect the network traffic for anything that you do not want sent outside of your enterprise, and then forward the traffic through the proxy to your chosen model provider. Are there list of recommended LLMs to use with Xcode via Intelligence/Local? I've tried Gemma3-12B, but.. I hope there are better options? Apple doesn't have a published list of recommended local models. This is a fast-moving space, and so a recommendation would become out of date very quickly as new models are released. We encourage you to try out the local model support in Xcode 26 with models that you find meet your needs, and let us and the community know! (continued below)
1
0
797
Jul ’25
Code Coverage Not Generated in Xcode 26.1 Despite Successful Test Runs
We’re facing an issue with Xcode 26.1 where code coverage is not being generated. All our test cases run and pass successfully, but the .xccovreport / .xccovarchive files are never produced. Code coverage is enabled in the scheme, and this setup used to work correctly in earlier Xcode versions. We are trying to determine whether this is a configuration issue on our end or a possible Xcode 26.1 bug. Is anyone else experiencing the same problem with code coverage in Xcode 26.1? Any insights or workarounds would be appreciated.
1
0
35
1d
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).
2
2
101
2d
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
0
27
2d
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
88
2d
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
33
2d
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.
2
0
52
4d
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
79
4d
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
39
5d
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
18
5d
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?
0
0
51
6d
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
105
1w
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
31
1w
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
0
26
1w
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
36
1w
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
45
1w
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
27
1w
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
34
1w
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
68
1w