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

Posts under Xcode tag

200 Posts

Post

Replies

Boosts

Views

Activity

Resolving a "Simulator runtime is not available" error
Some Macs recently received a macOS system update which disabled the simulator runtimes used by Xcode 15, including the simulators for iOS, tvOS, watchOS, and visionOS. If your Mac received this update, you will receive the following error message and will be unable to use the simulator: The com.apple.CoreSimulator.SimRuntime.iOS-17-2 simulator runtime is not available. Domain: com.apple.CoreSimulator.SimError Code: 401 Failure Reason: runtime profile not found using "System" match policy Recovery Suggestion: Download the com.apple.CoreSimulator.SimRuntime.iOS-17-2 simulator runtime from the Xcode To resume using the simulator, please reboot your Mac. After rebooting, check Xcode Preferences → Platforms to ensure that the simulator runtime you would like to use is still installed. If it is missing, use the Get button to download it again. The Xcode 15.3 Release Notes are also updated with this information.
0
0
10k
May ’24
SwiftUI confirmationDialog in List inside .sheet is no longer anchored to the originating row on iOS 27 beta
Area SwiftUI → Presentation / ConfirmationDialog Summary After building with Xcode 27 beta, confirmationDialog presented from a row inside a List that is embedded in a .sheet is no longer anchored to the row that triggered it. Instead, the dialog is displayed near the top of the sheet when the sheet is partially expanded, or in the center of the screen when the sheet occupies the full height. This behavior is reproducible across all tested Xcode 27 beta releases and iOS 27 beta releases (Beta 1, Beta 2, and Beta 3). Steps to Reproduce Present a SwiftUI .sheet. Place a List inside the sheet. Add a confirmationDialog to each list row. Trigger the dialog from a swipe action on any row. Observe the position where the confirmation dialog appears. A minimal reproducible sample project is attached. Expected Result The confirmationDialog should be visually associated with the row that triggered it, as it behaved in previous Xcode and iOS releases. The dialog should appear anchored to the selected list row (or as close as the platform allows), providing clear contextual feedback to the user about which item is being acted upon. Actual Result The dialog is no longer associated with the selected row. When the sheet is not fully expanded, the dialog appears near the top area of the sheet, seemingly positioned relative to the sheet itself rather than the triggering row. When the sheet is expanded to full height, the dialog appears in the center of the screen. As a result, the relationship between the selected item and the confirmation dialog is lost, creating a confusing user experience. Regression Yes. The same implementation behaved correctly in previous Xcode and iOS versions. The issue first appeared after upgrading to Xcode 27 beta and remains present in all tested iOS 27 beta releases (Beta 1–3). Impact This is a significant UX regression for existing applications that rely on contextual confirmation dialogs within lists presented inside sheets. Applications that already have production users cannot easily redesign their interaction model to compensate for this behavior change. The previous behavior provided clear context about which list item was being acted upon, while the current behavior makes that association unclear. Configuration Xcode 27 Beta (all tested beta versions) iOS 27 Beta 1 iOS 27 Beta 2 iOS 27 Beta 3 Reproduced on physical devices Reproduced using the attached minimal sample project Attachments Minimal reproducible sample project. Screenshot showing expected behavior (prior implementation). Screenshot showing current behavior on iOS 27 Beta 3. Screen recording demonstrating the regression. struct ContentView: View { @State private var sheetIsPresented = false @State private var itemPendingDeletion: Int? = nil var array = Array(0...100) var body: some View { VStack { Text("Hello, world!") Button("Show List") { sheetIsPresented = true } } .sheet(isPresented: $sheetIsPresented) { List { ForEach(array, id: \.self) { value in ListRow(for: value) .confirmationDialog("Delete?", isPresented: Binding( get: { itemPendingDeletion == value }, set: { isPresented in if !isPresented { itemPendingDeletion = nil } } ) ) { Button { } label: { Text("Delete") } } .swipeActions(edge: .trailing) { Button { itemPendingDeletion = value } label: { Image(systemName: "trash") .foregroundStyle(.red) } } } .listRowInsets(EdgeInsets()) .listRowBackground(Color.clear) } .listStyle(.inset) .contentMargins(16, for: .scrollContent) .presentationDetents([.fraction(1), .fraction(0.9)]) } } @ViewBuilder private func ListRow(for value: Int) -> some View { Text("\(value)") .foregroundStyle(.primary) .padding(.vertical) .frame(maxWidth: .infinity) .background( RoundedRectangle(cornerRadius: 26, style: .continuous) ) .padding(.vertical, 2) } } #Preview { ContentView() } Xcode 27(Beta 1,2,3) Xcode 26.5
0
0
27
16h
Mac Catalyst app built with Xcode 27 beta 3 crashes at launch on macOS 26.5.1 — dyld "Symbol not found: _UIFontTextStyleBody" expected in AppKit
My Mac Catalyst app (distributed via TestFlight) crashes instantly at launch — before main() — on macOS 26.5.1 (25F80) when archived with Xcode 27 beta 3. The same code archived with Xcode 26.5 (GA) launches fine. Crash excerpt: Termination Reason: Namespace DYLD, Code 4, Symbol missing Symbol not found: _UIFontTextStyleBody Referenced from: <...> /Applications/Paku.app/Contents/MacOS/Paku Expected in: <...> /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (terminated at launch; ignore backtrace) What appears to be happening The symbol comes from completely ordinary UIKit code — e.g. UIFont.preferredFont(forTextStyle: .body). When linking with the Xcode 27 beta 3 SDK, the two-level namespace bind for _UIFontTextStyleBody in my binary points at AppKit, i.e. the beta SDK's AppKit.tbd declares (re-exports) the UIKit text-style constants for Catalyst. But the shipping OS doesn't provide that: on macOS 26.5.1, _UIFontTextStyleBody is absent from both the installed AppKit binary (checked with dyld_info -exports /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit) and the Xcode 26.5 GA SDK's AppKit.tbd. So any binary linked against the beta SDK hard-binds the symbol to AppKit and then fatally fails to bind on current GA macOS — a 100%-reproducible launch crash for every user not on the macOS 27 beta. Steps to reproduce Mac Catalyst target that uses any UIFont.TextStyle constant (e.g. .preferredFont(forTextStyle: .body)). Archive with Xcode 27 beta 3 and distribute via TestFlight. Launch on macOS 26.5.1 → immediate dyld abort with the report above. Questions Is this a known issue with the macOS 27 beta SDK's AppKit re-export list? It looks like these UIKit constants are being moved/re-exported through AppKit in the 27 cycle, but without availability/weak-linking info that would let binaries back-deploy to macOS 26. Is the intended behavior that Catalyst apps built with the 27 beta SDK simply can't run on macOS 26? If so, should App Store Connect / TestFlight have rejected or flagged the upload?
0
0
17
17h
SwiftUI confirmationDialog in List inside .sheet is no longer anchored to the originating row on iOS 27 beta
Area SwiftUI → Presentation / ConfirmationDialog Summary After building with Xcode 27 beta, confirmationDialog presented from a row inside a List that is embedded in a .sheet is no longer anchored to the row that triggered it. Instead, the dialog is displayed near the top of the sheet when the sheet is partially expanded, or in the center of the screen when the sheet occupies the full height. This behavior is reproducible across all tested Xcode 27 beta releases and iOS 27 beta releases (Beta 1, Beta 2, and Beta 3). Steps to Reproduce Present a SwiftUI .sheet. Place a List inside the sheet. Add a confirmationDialog to each list row. Trigger the dialog from a swipe action on any row. Observe the position where the confirmation dialog appears. A minimal reproducible sample project is attached. Expected Result The confirmationDialog should be visually associated with the row that triggered it, as it behaved in previous Xcode and iOS releases. The dialog should appear anchored to the selected list row (or as close as the platform allows), providing clear contextual feedback to the user about which item is being acted upon. Actual Result The dialog is no longer associated with the selected row. When the sheet is not fully expanded, the dialog appears near the top area of the sheet, seemingly positioned relative to the sheet itself rather than the triggering row. When the sheet is expanded to full height, the dialog appears in the center of the screen. As a result, the relationship between the selected item and the confirmation dialog is lost, creating a confusing user experience. Regression Yes. The same implementation behaved correctly in previous Xcode and iOS versions. The issue first appeared after upgrading to Xcode 27 beta and remains present in all tested iOS 27 beta releases (Beta 1–3). Impact This is a significant UX regression for existing applications that rely on contextual confirmation dialogs within lists presented inside sheets. Applications that already have production users cannot easily redesign their interaction model to compensate for this behavior change. The previous behavior provided clear context about which list item was being acted upon, while the current behavior makes that association unclear. Configuration Xcode 27 Beta (all tested beta versions) iOS 27 Beta 1 iOS 27 Beta 2 iOS 27 Beta 3 Reproduced on physical devices Reproduced using the attached minimal sample project Attachments Minimal reproducible sample project. Screenshot showing expected behavior (prior implementation). Screenshot showing current behavior on iOS 27 Beta 3. Screen recording demonstrating the regression. struct ContentView: View { @State private var sheetIsPresented = false @State private var itemPendingDeletion: Int? = nil var array = Array(0...100) var body: some View { VStack { Text("Hello, world!") Button("Show List") { sheetIsPresented = true } } .sheet(isPresented: $sheetIsPresented) { List { ForEach(array, id: \.self) { value in ListRow(for: value) .confirmationDialog("Delete?", isPresented: Binding( get: { itemPendingDeletion == value }, set: { isPresented in if !isPresented { itemPendingDeletion = nil } } ) ) { Button { } label: { Text("Delete") } } .swipeActions(edge: .trailing) { Button { itemPendingDeletion = value } label: { Image(systemName: "trash") .foregroundStyle(.red) } } } .listRowInsets(EdgeInsets()) .listRowBackground(Color.clear) } .listStyle(.inset) .contentMargins(16, for: .scrollContent) .presentationDetents([.fraction(1), .fraction(0.9)]) } } @ViewBuilder private func ListRow(for value: Int) -> some View { Text("\(value)") .foregroundStyle(.primary) .padding(.vertical) .frame(maxWidth: .infinity) .background( RoundedRectangle(cornerRadius: 26, style: .continuous) ) .padding(.vertical, 2) } } #Preview { ContentView() } Xcode 27(Beta 1,2,3) Xcode 26.5
0
0
17
17h
Xcode 26 – "Manage Game Progress" not showing achievements/leaderboards on macOS
Hello, When testing GameKit "Manage Game Progress" in Xcode 26: On iOS devices, achievements, leaderboards, and party code data display and work correctly. On macOS devices, none of these data appear in "Manage Game Progress." Is this a known issue with macOS GameKit, or is there a limitation compared to iOS? If it is not a bug, is there any additional configuration needed to make achievements and leaderboards visible on macOS? I also included the GameKit bundle in my macOS app and enabled Enable Debug Mode in GameKit Configuration in the scheme options. Thank you.
4
1
881
18h
Xcode 26.4: IBOutlets/IBActions gutter circles missing — cannot connect storyboard to code (works in 26.3)
I’m seeing a regression in Xcode 26.4 where Interface Builder will not allow connecting IBOutlets or IBActions. Symptoms: The usual gutter circle/dot does not appear next to IBOutlet / IBAction in the code editor Because of this, I cannot: drag from storyboard → code drag from code → storyboard The class is valid and already connected to the storyboard (existing outlets work) Assistant Editor opens the correct view controller file Important: The exact same project, unchanged, works perfectly in Xcode 26.3. I can create and connect outlets/actions normally there. ⸻ Environment Xcode: 26.4 macOS: 26.4 Mac Mini M4 Pro 64G Ram Project: Objective-C UIKit app using Storyboards This is a long-running, ObjC, project (not newly created) ⸻ What I’ve already tried To rule out the usual suspects: Verified View Controller Custom Class is correctly set in Identity Inspector Verified files are in the correct Target Membership Verified outlets are declared correctly in the .h file: @property (weak, nonatomic) IBOutlet UILabel *exampleLabel; Opened correct file manually (not relying on Automatic Assistant) Tried both: storyboard → code drag code → storyboard drag Tried using Connections Inspector Clean Build Folder Deleted entire DerivedData Restarted Xcode Updated macOS to 26.4 Ran: sudo xcodebuild -runFirstLaunch Confirmed required platform components installed Reopened project fresh ⸻ Observations In Xcode 26.4 the outlet “connection circles” are completely missing In Xcode 26.3 they appear immediately for the same code Existing connections still function at runtime — this is purely an Interface Builder issue ⸻ Question The gutter circles appearance has always been flaky in Xcode over the 13+ years I've been using it but now with 26.4 they have completely disappeared. Has anyone else seen this in Xcode 26.4, or found a workaround? At this point it looks like a regression in Interface Builder, but I haven’t found any mention of it yet.
32
12
3.7k
1d
Xcode 27: DeviceHub working with simctl DeviceSets
Hello, I am wondering if DeviceHub will include support at some point for Simulator Device Sets (usually created via simctl)? While I can still start Simulators from a DeviceSet via simctl still with Xcode 27, it doesn’t launch in the DeviceHub, I simply see the headless Simulator running (which I can see this in ActivityMonitor). So it looks like any Simulators not created with DeviceHub won’t run/render in DeviceHub? Usually with the Simulator.app I can run: $ open -a Simulator.app --args -DeviceSetPath /Volumes/Simulators/26.1.0/CustomDeviceSet and then the Simulator app opens with the Device Set list and I then can run simulators I pre-prepared from the Simulator.app. If I try the same command with DeivceHub: $ open -a DeviceHub.app --args -DeviceSetPath /Volumes/Simulators/26.1.0/CustomDeviceSet While It does start the DeviceHub app it doesn't do anything with the DeviceSetPath argument. I would expect to see the devices from the device set directory to show up in the DeviceHub UI list if it were honored. Thanks!
0
0
49
1d
Xcode 27 incorrectly links a Catalyst binary, _UIFontTextStyleCallout Expected in AppKit
I have a personal iOS project that I also compile for macOS with Catalyst. When built with Xcode 26.x, everything is linked correctly. When built with Xcode 27 betas, the following runtime error occurs: Termination Reason: Namespace DYLD, Code 4, Symbol missing Symbol not found: _UIFontTextStyleCallout Referenced from: <046ED276-F81A-31B4-82FF-6DC82E9041BC> /Applications/Photo Library.app/Contents/MacOS/Photo Library Expected in: <298B64F6-9BC0-3BFB-BE72-EBDC2BE0FF19> /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit Any assistance? Thanks
5
0
172
1d
Xcode 26.6 immediately terminates with SIGKILL (Code Signature Invalid) during SDK initialization on Apple Silicon (M4)
I'm experiencing a reproducible issue that completely blocks Xcode on an Apple Silicon Mac. Environment • MacBook Air (M4) • macOS 26.5.2 (25F84) • Xcode 26.6 (17F113) • Also reproduced with Xcode 26.5 (17F42) Issue Xcode terminates immediately before the main window appears. Instruments also terminates immediately. The command: xcodebuild -version works normally. However, any command that requires SDK initialization immediately terminates, for example: xcodebuild -showsdks The process is killed instantly. Crash reports consistently show: SIGKILL (Code Signature Invalid) Termination Reason: Namespace CODESIGNING, Code 2, Invalid Page The crash occurs during dyld page authentication: dyld4::fixupPageAuth64() What I have already tried • Reinstalled Xcode • Reinstalled macOS • Reinstalled Command Line Tools • Reinstalled Rosetta • Tested in Safe Mode • Tested with a newly created macOS user • Removed caches and DerivedData • Verified Xcode signatures The behavior is identical in every case. Interestingly, xcodebuild -version succeeds, but every SDK-related command is killed immediately, suggesting the failure occurs during SDK/framework initialization rather than Xcode startup itself. I have already submitted: Feedback Assistant: FB23586800 DTS Case: 20879405 Has anyone else seen the same issue on Apple Silicon (especially M4)? Any known workaround or confirmation that this may be a macOS 26.5.x / Xcode 26.5–26.6 regression would be greatly appreciated.
1
0
50
1d
Instruments 27.0 beta crashes (EXC_BREAKPOINT in InstrumentsPlugIn modelers) every time a recording is stopped
Environment: macOS 27.0 beta (26A5368g) Xcode 27 beta — Instruments 27.0 (64578.226), build 27A5209h MacBook Pro (M1, 2020), 16 GB — MacBookPro17,1 Target: physical iPhone running an iOS app (on-device LLM inference benchmarking) Summary: Instruments crashes reproducibly with EXC_BREAKPOINT (SIGTRAP) shortly after I stop a recording. Recording itself works — the crash occurs during the post-stop analysis phase, while the trace is being processed. This has happened multiple times today with different templates (Time Profiler, and a custom document with Power Profiler / os_signpost / Thermal State). Steps to reproduce: Open Instruments 27.0 beta, choose Time Profiler (or a document containing Power Profiler + os_signpost) Target a physical iPhone and an installed app Record for a short period, then press Stop Instruments crashes while analyzing/importing the trace Crash details: The crashing thread is always on the dispatch queue com.apple.dt.frame.activity, inside InstrumentsPlugIn transformer/modeler code. In one report the crashing frame is: Thread 10 Crashed:: Dispatch queue: com.apple.dt.frame.activity 0 InstrumentsPlugIn NetworkConnectionStatsModeling.__receiveRow(cursor:writer:referenceManager:) + 920 1 InstrumentsPlugIn TransformerExecutionUnit.run(yieldBlock:) + 92 2 InstrumentsPlugIn specialized TransformerHostingModeler.populateOutputTables(_:usingObserverations:parameters:checkToYieldBlock:) + 2344 Exception Type: EXC_BREAKPOINT (SIGTRAP), esr 0xf2000001 (Breakpoint) brk 1 At crash time, sibling worker threads on the same queue were executing SystemPowerImpactModeling and ProcessSubsystemImpactModeling transformers, so the failure appears to be in the modeling pipeline that runs when the recording is finalized. Incident identifiers from two occurrences today: D6D2467F-8553-487C-A291-EC30C0D2846F (14:13 IST) 55017CAB-5345-4865-9695-36228B B80AA4A (18:20 IST) Filed via Feedback Assistant as FBXXXXXXXX with full crash logs and sysdiagnose attached. Questions: Is this a known issue in the current Instruments 27.0 beta? Is there a recommended workaround to record and analyze traces until a fix ships — e.g., recording headlessly with xctrace and opening the .trace in a late r build? Happy to provide the .trace files or additional diagnostics. Thanks!
4
0
138
2d
Orphaned 9GB Simulator Runtime in /System/Library/AssetsV2 - Cannot Delete (SIP protected)
I have an orphaned asset folder taking up 9.13GB located at: /System/Library/AssetsV2/com_apple_MobileAsset_iOSSimulatorRuntime/c0d3fd05106683ba0b3680d4d1afec65f098d700.asset It contains SimulatorRuntimeAsset version 18.5 (Build 22F77). Active Version: My current Xcode setup is using version 26.2 (Build 23C54). I checked the plist files in the directory and found what seems to be the cause of the issue: The "Never Collected" Flag: The Info.plist inside the orphaned asset folder explicitly sets the garbage collection behavior to "NeverCollected": <key>__AssetDefaultGarbageCollectionBehavior</key> <string>NeverCollected</string> The Catalog Mismatch: The master catalog file (com_apple_MobileAsset_iOSSimulatorRuntime.xml) in the parent directory only lists the new version (26.2). Because the old version (18.5) is missing from this XML, Xcode and mobileassetd seem to have lost track of it entirely. What I Have Tried (All Failed) Xcode Components: The version 18.5 does not appear in Settings -> Components, so I cannot delete it via the GUI. Simctl: xcrun simctl list runtimes does not list this version. Running xcrun simctl runtime delete 22F77 fails with: "No runtime disk images or bundles found matching '22F77'." Manual Deletion: sudo rm -rf [path] fails with "Operation not permitted", presumably because /System/Library/AssetsV2 is SIP-protected. Third-party Tools: Apps like DevCleaner do not detect this runtime (likely because they only scan ~/Library or /Library, not /System/Library). Has anyone found a way to force the system (perhaps via mobileassetd or a specific xcrun flag) to re-evaluate this folder and respect a deletion request? I am trying to avoid booting into Recovery Mode just to delete a cache file. Any insights on how AssetsV2 handles these "orphaned" files would be appreciated.
25
10
3.4k
2d
SKTestSession.buyProduct(identifier: options:) throws error
Hi, Overview I am trying to write a unit test case to buy a storekit product. SKTestSession.buyProduct(identifier: options:) throws the error StoreKit.StoreKitError.notEntitled Testcase Code @Test func example() async throws { let session = try SKTestSession(configurationFileNamed: "VehicleStore") session.disableDialogs = true session.clearTransactions() do { let transaction = try await session.buyProduct(identifier: "nonconsumable.car", options: []) print(transaction) } catch { // Throws StoreKit.StoreKitError.notEntitled print("Error: \(error)") } } Storekit configuration file Note In-App purchases capability is added StoreKit configuration file is used in testcase Environment: macOS 26.5.2 (25F84) Xcode 26.6 (17F113)
3
0
153
4d
CoreSimulator runtime registry becomes inconsistent after upgrading to macOS 27 beta 2: simctl list runtimes reports an old runtime that cannot be deleted
Environment • macOS 27 beta 2 • Xcode 27 beta • Apple Silicon Mac Summary After upgrading to macOS 27 beta 2 and Xcode 27 beta, an old iOS 18.5 simulator runtime remains registered internally but cannot be removed. There appears to be an inconsistency between different CoreSimulator commands. Observed Behavior xcrun simctl runtime list only reports the current runtime: == Disk Images == -- iOS -- iOS 26.1 (23B86) - 0753590B-CF3F-4944-899E-4F70698DB87C (Ready) Total Disk Images: 1 (7.8G) However, xcrun simctl list runtimes -j still reports an additional runtime: identifier: com.apple.CoreSimulator.SimRuntime.iOS-18-5 SimulatorVersion: 18.5 Build: 22F77 bundlePath: /Library/Developer/CoreSimulator/Volumes/iOS_22F77/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 18.5.simruntime runtimeRoot: /Library/Developer/CoreSimulator/Volumes/iOS_22F77/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 18.5.simruntime/Contents/Resources/RuntimeRoot The runtime is reported as: "isAvailable": true The runtime no longer appears anywhere in Xcode. Attempting to remove it using the documented command fails: xcrun simctl runtime delete 22F77 Output: No runtime disk images or bundles found matching '22F77'. No matching images found to delete Using the runtime identifier also fails. The corresponding MobileAsset still exists: /System/Library/AssetsV2/com_apple_MobileAsset_iOSSimulatorRuntime/ It contains: c0d3fd05106683ba0b3680d4d1afec65f098d700.asset Its Info.plist contains: SimulatorVersion = 18.5 Build = 22F77 Another asset exists for the current runtime: SimulatorVersion = 26.1 Build = 23B86 The directory /Library/Developer/CoreSimulator/Volumes/iOS_22F77 exists as an empty directory. It appears to become active only when CoreSimulator queries the runtime. The runtime asset is no longer referenced by /System/Library/AssetsV2/com_apple_MobileAsset_iOSSimulatorRuntime/com_apple_MobileAsset_iOSSimulatorRuntime.xml Expected Result After upgrading Xcode/macOS: • old runtimes should either be removable through xcrun simctl runtime delete or • they should no longer remain registered if Xcode has already removed them. Actual Result Different CoreSimulator commands report different runtime states. simctl runtime list only reports iOS 26.1. simctl list runtimes -j still reports iOS 18.5 as available. The old runtime cannot be deleted using the official command. The MobileAsset remains on disk and occupies storage, but there appears to be no supported method to remove it. Notes This looks like CoreSimulator's runtime registry and the runtime deletion mechanism have become inconsistent after upgrading to macOS 27 beta 2 and Xcode 27 beta.
0
0
82
5d
LLMs within Xcode - Why can't the model within an agent be selected but can within chat?
If I use the Claude Code agent within Xcode 27 beta 2, it defaults to Opus 4.8, but that burns through tokens too quickly so I'd like to switch it to Opus 4.7 or Sonnet, but there's no way to change that anywhere in Xcode that I can see? Also, if I use Chat, rather than the agent, then Xcode lets you select models, however for Claude it only offers Sonnet 4.5. Why? Why not 4.6 at least? Where are these limitations coming from? It's not from Claude so it must be Xcode Why are these limitations present?
1
0
80
5d
Xcode 27 and build SDKs
Please help me understand how build SDKs work in Xcode 27. Let's say I have an older app that uses UIDesignRequiresCompatibility. When I a) select an iOS 26 Simulator in Xcode 27 and press "play" (build an run), the app shows up in design compatibility mode. b) select an iOS 27 Simulator in Xcode 27 and press "play" (build an run), the app shows up ignoring design compatibility mode. My questions: Does that mean a) is using iOS 26 as build SDK and b) is using iOS 27 as build SDK? What would happen if running an app built using iOS 26 build SDK on iOS 27? What would happen if running an app built using iOS 27 build SDK on iOS 26? How can 2. and 3. be done with the simulator? When I submit to App Store Connect, which build SDK is used?
1
0
62
6d
Archived apps crash before main() after strip -S -T corrupts dyld chained fixups (FB23528109, Xcode 26.3-27.0b2)
We root-caused a launch crash that only affects ARCHIVED builds (Run/Debug works, simulator works) and filed it as FB23528109. Posting the details here because the crash signatures are hard to search for and other teams are likely to hit this as they adopt Swift 6.3 toolchains. SYMPTOM The archived app crashes before main() on device, on every launch. Depending on which orphaned pointer gets read first, the crash looks like one of these: EXC_BREAKPOINT, "pointer authentication trap DA", inside swift_conformsToProtocolMaybeInstantiateSuperclasses / _searchConformancesByMangledTypeName (often with a Firebase or other +load frame below it; that frame is just the first conformance scan at launch, not the cause) EXC_BAD_ACCESS KERN_INVALID_ADDRESS at a small, raw unslid address (e.g. 0xc118), inside dyld: resolveRebase <- objc_visitor::forEachClass <- dyld4::PrebuiltObjC::make Debug builds, simulator builds and Xcode Run builds are all fine, because the corruption happens in the Strip build phase, which only runs for Archive/install builds. ROOT CAUSE (two defects combine) strip -S -T (what Xcode runs on embedded frameworks during Archive when STRIP_SWIFT_SYMBOLS = YES) corrupts dyld chained fixups. When strip removes a Swift weak-definition symbol that has a GOT bind, it converts the bind into a rebase to the local definition (correct) but writes the converted entry with next = 0 (incorrect). That terminates the 16 KB page's fixup chain early, and every fixup after the converted slot in the same page is orphaned: dyld never processes it, so raw chain-encoding bytes get read as pointers at launch. The bug is present in every strip we tested: Xcode 26.3, 26.4, 26.4.1, 26.5, 26.6 and 27.0 beta 2. strip -S and strip -S -x (without -T) do not corrupt. Starting with Swift 6.3.0 (Xcode 26.4.0), the compiler emits the trigger pattern for ordinary code: cross-module references to a non-final class's stored-property accessors become weak-def-coalesce binds (Swift 6.2.4 emits none). So apps that embed a multi-module Swift dynamic framework (e.g. an SPM package built as one dynamic framework) started getting corrupted by their own default Archive pipeline when they moved past Xcode 26.3. HOW TO CHECK IF YOU ARE AFFECTED Compare the fixups of a framework binary inside your archive against a Run build of the same code: xcrun dyld_info -fixups YourApp.app/Frameworks/YourKit.framework/YourKit If fixups that exist in the Run build are missing after the archive's strip step (in particular __got slots and anything after them in the same 16 KB page), you are affected. Also: any GOT bind of a Swift ($s...) symbol in the pre-strip binary is a red flag. WORKAROUND Set STRIP_SWIFT_SYMBOLS = NO (optionally STRIP_STYLE = non-global, i.e. strip -S -x, which kept the size cost to about +4% for us). Important: if the affected framework is a Swift package product, these must be passed as xcodebuild command-line overrides (e.g. xcodebuild ... STRIP_SWIFT_SYMBOLS=NO STRIP_STYLE=non-global); xcconfig files do not apply to package targets. REPRO FB23528109 contains a complete minimal reproducer (4 small C files + 1 trivial Swift file, no proprietary code): a 30-second CLI script whose host binary segfaults through an orphaned pointer, and a default-settings Xcode project whose Run build works while its archived build crashes pre-main on device, identically for archives produced by Xcode 26.3.0, 26.4.0 and 26.6 (crash logs for each attached in the FB). Happy to share more details from the investigation if anyone is debugging the same signatures.
1
0
94
6d
Xcode 27 Agent is impossible to work with.
Working with Agents in Xcode 27 is a nightmare right now. Every conversation opens in a new window, so you don't see the code you and the agent are working on. You have to go back and forward between the code file and the conversation tab to get the names of data types or functions you need to ask the agent to work on, or to see exactly what you need to ask or how to explain it to the agent. We need the conversation and the code to be side by side to be able to work on the code and provide the right instructions, as we do in Xcode 26. The current interface just completely ruins any reasonable workflow, unless you are vibe coding, which I don't recommend. Let me know if there is a way to open the conversation on one side and code files on the other, or PLEASE change it back of what it was before or I will have to keep working on Xcode 26 and miss all the new features. Thanks
7
2
421
6d
Why is Xcode Cloud archiving failing?
I'm trying to build an Xcode Cloud workflow, but I keep getting this error. At first it just said I had to accept a license agreement, which I did, but it still didn't work after. I had recently added a new branch to the connected GitHub repository and committed to it so that I can have a beta branch separate from the main one. The only error that happens is when archiving. I am using Xcode 27 beta.
0
0
112
1w
Resolving a "Simulator runtime is not available" error
Some Macs recently received a macOS system update which disabled the simulator runtimes used by Xcode 15, including the simulators for iOS, tvOS, watchOS, and visionOS. If your Mac received this update, you will receive the following error message and will be unable to use the simulator: The com.apple.CoreSimulator.SimRuntime.iOS-17-2 simulator runtime is not available. Domain: com.apple.CoreSimulator.SimError Code: 401 Failure Reason: runtime profile not found using "System" match policy Recovery Suggestion: Download the com.apple.CoreSimulator.SimRuntime.iOS-17-2 simulator runtime from the Xcode To resume using the simulator, please reboot your Mac. After rebooting, check Xcode Preferences → Platforms to ensure that the simulator runtime you would like to use is still installed. If it is missing, use the Get button to download it again. The Xcode 15.3 Release Notes are also updated with this information.
Replies
0
Boosts
0
Views
10k
Activity
May ’24
SwiftUI confirmationDialog in List inside .sheet is no longer anchored to the originating row on iOS 27 beta
Area SwiftUI → Presentation / ConfirmationDialog Summary After building with Xcode 27 beta, confirmationDialog presented from a row inside a List that is embedded in a .sheet is no longer anchored to the row that triggered it. Instead, the dialog is displayed near the top of the sheet when the sheet is partially expanded, or in the center of the screen when the sheet occupies the full height. This behavior is reproducible across all tested Xcode 27 beta releases and iOS 27 beta releases (Beta 1, Beta 2, and Beta 3). Steps to Reproduce Present a SwiftUI .sheet. Place a List inside the sheet. Add a confirmationDialog to each list row. Trigger the dialog from a swipe action on any row. Observe the position where the confirmation dialog appears. A minimal reproducible sample project is attached. Expected Result The confirmationDialog should be visually associated with the row that triggered it, as it behaved in previous Xcode and iOS releases. The dialog should appear anchored to the selected list row (or as close as the platform allows), providing clear contextual feedback to the user about which item is being acted upon. Actual Result The dialog is no longer associated with the selected row. When the sheet is not fully expanded, the dialog appears near the top area of the sheet, seemingly positioned relative to the sheet itself rather than the triggering row. When the sheet is expanded to full height, the dialog appears in the center of the screen. As a result, the relationship between the selected item and the confirmation dialog is lost, creating a confusing user experience. Regression Yes. The same implementation behaved correctly in previous Xcode and iOS versions. The issue first appeared after upgrading to Xcode 27 beta and remains present in all tested iOS 27 beta releases (Beta 1–3). Impact This is a significant UX regression for existing applications that rely on contextual confirmation dialogs within lists presented inside sheets. Applications that already have production users cannot easily redesign their interaction model to compensate for this behavior change. The previous behavior provided clear context about which list item was being acted upon, while the current behavior makes that association unclear. Configuration Xcode 27 Beta (all tested beta versions) iOS 27 Beta 1 iOS 27 Beta 2 iOS 27 Beta 3 Reproduced on physical devices Reproduced using the attached minimal sample project Attachments Minimal reproducible sample project. Screenshot showing expected behavior (prior implementation). Screenshot showing current behavior on iOS 27 Beta 3. Screen recording demonstrating the regression. struct ContentView: View { @State private var sheetIsPresented = false @State private var itemPendingDeletion: Int? = nil var array = Array(0...100) var body: some View { VStack { Text("Hello, world!") Button("Show List") { sheetIsPresented = true } } .sheet(isPresented: $sheetIsPresented) { List { ForEach(array, id: \.self) { value in ListRow(for: value) .confirmationDialog("Delete?", isPresented: Binding( get: { itemPendingDeletion == value }, set: { isPresented in if !isPresented { itemPendingDeletion = nil } } ) ) { Button { } label: { Text("Delete") } } .swipeActions(edge: .trailing) { Button { itemPendingDeletion = value } label: { Image(systemName: "trash") .foregroundStyle(.red) } } } .listRowInsets(EdgeInsets()) .listRowBackground(Color.clear) } .listStyle(.inset) .contentMargins(16, for: .scrollContent) .presentationDetents([.fraction(1), .fraction(0.9)]) } } @ViewBuilder private func ListRow(for value: Int) -> some View { Text("\(value)") .foregroundStyle(.primary) .padding(.vertical) .frame(maxWidth: .infinity) .background( RoundedRectangle(cornerRadius: 26, style: .continuous) ) .padding(.vertical, 2) } } #Preview { ContentView() } Xcode 27(Beta 1,2,3) Xcode 26.5
Replies
0
Boosts
0
Views
27
Activity
16h
Mac Catalyst app built with Xcode 27 beta 3 crashes at launch on macOS 26.5.1 — dyld "Symbol not found: _UIFontTextStyleBody" expected in AppKit
My Mac Catalyst app (distributed via TestFlight) crashes instantly at launch — before main() — on macOS 26.5.1 (25F80) when archived with Xcode 27 beta 3. The same code archived with Xcode 26.5 (GA) launches fine. Crash excerpt: Termination Reason: Namespace DYLD, Code 4, Symbol missing Symbol not found: _UIFontTextStyleBody Referenced from: <...> /Applications/Paku.app/Contents/MacOS/Paku Expected in: <...> /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (terminated at launch; ignore backtrace) What appears to be happening The symbol comes from completely ordinary UIKit code — e.g. UIFont.preferredFont(forTextStyle: .body). When linking with the Xcode 27 beta 3 SDK, the two-level namespace bind for _UIFontTextStyleBody in my binary points at AppKit, i.e. the beta SDK's AppKit.tbd declares (re-exports) the UIKit text-style constants for Catalyst. But the shipping OS doesn't provide that: on macOS 26.5.1, _UIFontTextStyleBody is absent from both the installed AppKit binary (checked with dyld_info -exports /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit) and the Xcode 26.5 GA SDK's AppKit.tbd. So any binary linked against the beta SDK hard-binds the symbol to AppKit and then fatally fails to bind on current GA macOS — a 100%-reproducible launch crash for every user not on the macOS 27 beta. Steps to reproduce Mac Catalyst target that uses any UIFont.TextStyle constant (e.g. .preferredFont(forTextStyle: .body)). Archive with Xcode 27 beta 3 and distribute via TestFlight. Launch on macOS 26.5.1 → immediate dyld abort with the report above. Questions Is this a known issue with the macOS 27 beta SDK's AppKit re-export list? It looks like these UIKit constants are being moved/re-exported through AppKit in the 27 cycle, but without availability/weak-linking info that would let binaries back-deploy to macOS 26. Is the intended behavior that Catalyst apps built with the 27 beta SDK simply can't run on macOS 26? If so, should App Store Connect / TestFlight have rejected or flagged the upload?
Replies
0
Boosts
0
Views
17
Activity
17h
SwiftUI confirmationDialog in List inside .sheet is no longer anchored to the originating row on iOS 27 beta
Area SwiftUI → Presentation / ConfirmationDialog Summary After building with Xcode 27 beta, confirmationDialog presented from a row inside a List that is embedded in a .sheet is no longer anchored to the row that triggered it. Instead, the dialog is displayed near the top of the sheet when the sheet is partially expanded, or in the center of the screen when the sheet occupies the full height. This behavior is reproducible across all tested Xcode 27 beta releases and iOS 27 beta releases (Beta 1, Beta 2, and Beta 3). Steps to Reproduce Present a SwiftUI .sheet. Place a List inside the sheet. Add a confirmationDialog to each list row. Trigger the dialog from a swipe action on any row. Observe the position where the confirmation dialog appears. A minimal reproducible sample project is attached. Expected Result The confirmationDialog should be visually associated with the row that triggered it, as it behaved in previous Xcode and iOS releases. The dialog should appear anchored to the selected list row (or as close as the platform allows), providing clear contextual feedback to the user about which item is being acted upon. Actual Result The dialog is no longer associated with the selected row. When the sheet is not fully expanded, the dialog appears near the top area of the sheet, seemingly positioned relative to the sheet itself rather than the triggering row. When the sheet is expanded to full height, the dialog appears in the center of the screen. As a result, the relationship between the selected item and the confirmation dialog is lost, creating a confusing user experience. Regression Yes. The same implementation behaved correctly in previous Xcode and iOS versions. The issue first appeared after upgrading to Xcode 27 beta and remains present in all tested iOS 27 beta releases (Beta 1–3). Impact This is a significant UX regression for existing applications that rely on contextual confirmation dialogs within lists presented inside sheets. Applications that already have production users cannot easily redesign their interaction model to compensate for this behavior change. The previous behavior provided clear context about which list item was being acted upon, while the current behavior makes that association unclear. Configuration Xcode 27 Beta (all tested beta versions) iOS 27 Beta 1 iOS 27 Beta 2 iOS 27 Beta 3 Reproduced on physical devices Reproduced using the attached minimal sample project Attachments Minimal reproducible sample project. Screenshot showing expected behavior (prior implementation). Screenshot showing current behavior on iOS 27 Beta 3. Screen recording demonstrating the regression. struct ContentView: View { @State private var sheetIsPresented = false @State private var itemPendingDeletion: Int? = nil var array = Array(0...100) var body: some View { VStack { Text("Hello, world!") Button("Show List") { sheetIsPresented = true } } .sheet(isPresented: $sheetIsPresented) { List { ForEach(array, id: \.self) { value in ListRow(for: value) .confirmationDialog("Delete?", isPresented: Binding( get: { itemPendingDeletion == value }, set: { isPresented in if !isPresented { itemPendingDeletion = nil } } ) ) { Button { } label: { Text("Delete") } } .swipeActions(edge: .trailing) { Button { itemPendingDeletion = value } label: { Image(systemName: "trash") .foregroundStyle(.red) } } } .listRowInsets(EdgeInsets()) .listRowBackground(Color.clear) } .listStyle(.inset) .contentMargins(16, for: .scrollContent) .presentationDetents([.fraction(1), .fraction(0.9)]) } } @ViewBuilder private func ListRow(for value: Int) -> some View { Text("\(value)") .foregroundStyle(.primary) .padding(.vertical) .frame(maxWidth: .infinity) .background( RoundedRectangle(cornerRadius: 26, style: .continuous) ) .padding(.vertical, 2) } } #Preview { ContentView() } Xcode 27(Beta 1,2,3) Xcode 26.5
Replies
0
Boosts
0
Views
17
Activity
17h
Xcode 26 – "Manage Game Progress" not showing achievements/leaderboards on macOS
Hello, When testing GameKit "Manage Game Progress" in Xcode 26: On iOS devices, achievements, leaderboards, and party code data display and work correctly. On macOS devices, none of these data appear in "Manage Game Progress." Is this a known issue with macOS GameKit, or is there a limitation compared to iOS? If it is not a bug, is there any additional configuration needed to make achievements and leaderboards visible on macOS? I also included the GameKit bundle in my macOS app and enabled Enable Debug Mode in GameKit Configuration in the scheme options. Thank you.
Replies
4
Boosts
1
Views
881
Activity
18h
Can't sign in to Claude in Xcode 27 Intelligence Chat
It is not possible to log into my Claude account in Xcode 27 beta 1 for the coding intelligence chat. When I click "Sign In," the browser opens, I authorize, the browser closes, and that's it. Nothing happens. Xcode does not recognize the login. I'm on MacOS 26.4.1 (25E253) and using Xcode 27.0 beta (27A5194q)
Replies
3
Boosts
1
Views
168
Activity
19h
Xcode Codex login fails on Safari 27 (Beta 3)
When trying to log into the Codex Plugin from Xcode, on the auth.openai.com site I can not progress. No option will progress from that page. Not: Continue with eMail Continue with Microsoft Continue with Apple Continue with Google Continue with phone number Is this a Safari (27.0, 22625.1.22.11.4) issue, or an OpenAI issue?
Replies
0
Boosts
0
Views
15
Activity
1d
Xcode 26.4: IBOutlets/IBActions gutter circles missing — cannot connect storyboard to code (works in 26.3)
I’m seeing a regression in Xcode 26.4 where Interface Builder will not allow connecting IBOutlets or IBActions. Symptoms: The usual gutter circle/dot does not appear next to IBOutlet / IBAction in the code editor Because of this, I cannot: drag from storyboard → code drag from code → storyboard The class is valid and already connected to the storyboard (existing outlets work) Assistant Editor opens the correct view controller file Important: The exact same project, unchanged, works perfectly in Xcode 26.3. I can create and connect outlets/actions normally there. ⸻ Environment Xcode: 26.4 macOS: 26.4 Mac Mini M4 Pro 64G Ram Project: Objective-C UIKit app using Storyboards This is a long-running, ObjC, project (not newly created) ⸻ What I’ve already tried To rule out the usual suspects: Verified View Controller Custom Class is correctly set in Identity Inspector Verified files are in the correct Target Membership Verified outlets are declared correctly in the .h file: @property (weak, nonatomic) IBOutlet UILabel *exampleLabel; Opened correct file manually (not relying on Automatic Assistant) Tried both: storyboard → code drag code → storyboard drag Tried using Connections Inspector Clean Build Folder Deleted entire DerivedData Restarted Xcode Updated macOS to 26.4 Ran: sudo xcodebuild -runFirstLaunch Confirmed required platform components installed Reopened project fresh ⸻ Observations In Xcode 26.4 the outlet “connection circles” are completely missing In Xcode 26.3 they appear immediately for the same code Existing connections still function at runtime — this is purely an Interface Builder issue ⸻ Question The gutter circles appearance has always been flaky in Xcode over the 13+ years I've been using it but now with 26.4 they have completely disappeared. Has anyone else seen this in Xcode 26.4, or found a workaround? At this point it looks like a regression in Interface Builder, but I haven’t found any mention of it yet.
Replies
32
Boosts
12
Views
3.7k
Activity
1d
Xcode 27: DeviceHub working with simctl DeviceSets
Hello, I am wondering if DeviceHub will include support at some point for Simulator Device Sets (usually created via simctl)? While I can still start Simulators from a DeviceSet via simctl still with Xcode 27, it doesn’t launch in the DeviceHub, I simply see the headless Simulator running (which I can see this in ActivityMonitor). So it looks like any Simulators not created with DeviceHub won’t run/render in DeviceHub? Usually with the Simulator.app I can run: $ open -a Simulator.app --args -DeviceSetPath /Volumes/Simulators/26.1.0/CustomDeviceSet and then the Simulator app opens with the Device Set list and I then can run simulators I pre-prepared from the Simulator.app. If I try the same command with DeivceHub: $ open -a DeviceHub.app --args -DeviceSetPath /Volumes/Simulators/26.1.0/CustomDeviceSet While It does start the DeviceHub app it doesn't do anything with the DeviceSetPath argument. I would expect to see the devices from the device set directory to show up in the DeviceHub UI list if it were honored. Thanks!
Replies
0
Boosts
0
Views
49
Activity
1d
Xcode 27 incorrectly links a Catalyst binary, _UIFontTextStyleCallout Expected in AppKit
I have a personal iOS project that I also compile for macOS with Catalyst. When built with Xcode 26.x, everything is linked correctly. When built with Xcode 27 betas, the following runtime error occurs: Termination Reason: Namespace DYLD, Code 4, Symbol missing Symbol not found: _UIFontTextStyleCallout Referenced from: <046ED276-F81A-31B4-82FF-6DC82E9041BC> /Applications/Photo Library.app/Contents/MacOS/Photo Library Expected in: <298B64F6-9BC0-3BFB-BE72-EBDC2BE0FF19> /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit Any assistance? Thanks
Replies
5
Boosts
0
Views
172
Activity
1d
Xcode 26.6 immediately terminates with SIGKILL (Code Signature Invalid) during SDK initialization on Apple Silicon (M4)
I'm experiencing a reproducible issue that completely blocks Xcode on an Apple Silicon Mac. Environment • MacBook Air (M4) • macOS 26.5.2 (25F84) • Xcode 26.6 (17F113) • Also reproduced with Xcode 26.5 (17F42) Issue Xcode terminates immediately before the main window appears. Instruments also terminates immediately. The command: xcodebuild -version works normally. However, any command that requires SDK initialization immediately terminates, for example: xcodebuild -showsdks The process is killed instantly. Crash reports consistently show: SIGKILL (Code Signature Invalid) Termination Reason: Namespace CODESIGNING, Code 2, Invalid Page The crash occurs during dyld page authentication: dyld4::fixupPageAuth64() What I have already tried • Reinstalled Xcode • Reinstalled macOS • Reinstalled Command Line Tools • Reinstalled Rosetta • Tested in Safe Mode • Tested with a newly created macOS user • Removed caches and DerivedData • Verified Xcode signatures The behavior is identical in every case. Interestingly, xcodebuild -version succeeds, but every SDK-related command is killed immediately, suggesting the failure occurs during SDK/framework initialization rather than Xcode startup itself. I have already submitted: Feedback Assistant: FB23586800 DTS Case: 20879405 Has anyone else seen the same issue on Apple Silicon (especially M4)? Any known workaround or confirmation that this may be a macOS 26.5.x / Xcode 26.5–26.6 regression would be greatly appreciated.
Replies
1
Boosts
0
Views
50
Activity
1d
Instruments 27.0 beta crashes (EXC_BREAKPOINT in InstrumentsPlugIn modelers) every time a recording is stopped
Environment: macOS 27.0 beta (26A5368g) Xcode 27 beta — Instruments 27.0 (64578.226), build 27A5209h MacBook Pro (M1, 2020), 16 GB — MacBookPro17,1 Target: physical iPhone running an iOS app (on-device LLM inference benchmarking) Summary: Instruments crashes reproducibly with EXC_BREAKPOINT (SIGTRAP) shortly after I stop a recording. Recording itself works — the crash occurs during the post-stop analysis phase, while the trace is being processed. This has happened multiple times today with different templates (Time Profiler, and a custom document with Power Profiler / os_signpost / Thermal State). Steps to reproduce: Open Instruments 27.0 beta, choose Time Profiler (or a document containing Power Profiler + os_signpost) Target a physical iPhone and an installed app Record for a short period, then press Stop Instruments crashes while analyzing/importing the trace Crash details: The crashing thread is always on the dispatch queue com.apple.dt.frame.activity, inside InstrumentsPlugIn transformer/modeler code. In one report the crashing frame is: Thread 10 Crashed:: Dispatch queue: com.apple.dt.frame.activity 0 InstrumentsPlugIn NetworkConnectionStatsModeling.__receiveRow(cursor:writer:referenceManager:) + 920 1 InstrumentsPlugIn TransformerExecutionUnit.run(yieldBlock:) + 92 2 InstrumentsPlugIn specialized TransformerHostingModeler.populateOutputTables(_:usingObserverations:parameters:checkToYieldBlock:) + 2344 Exception Type: EXC_BREAKPOINT (SIGTRAP), esr 0xf2000001 (Breakpoint) brk 1 At crash time, sibling worker threads on the same queue were executing SystemPowerImpactModeling and ProcessSubsystemImpactModeling transformers, so the failure appears to be in the modeling pipeline that runs when the recording is finalized. Incident identifiers from two occurrences today: D6D2467F-8553-487C-A291-EC30C0D2846F (14:13 IST) 55017CAB-5345-4865-9695-36228B B80AA4A (18:20 IST) Filed via Feedback Assistant as FBXXXXXXXX with full crash logs and sysdiagnose attached. Questions: Is this a known issue in the current Instruments 27.0 beta? Is there a recommended workaround to record and analyze traces until a fix ships — e.g., recording headlessly with xctrace and opening the .trace in a late r build? Happy to provide the .trace files or additional diagnostics. Thanks!
Replies
4
Boosts
0
Views
138
Activity
2d
Orphaned 9GB Simulator Runtime in /System/Library/AssetsV2 - Cannot Delete (SIP protected)
I have an orphaned asset folder taking up 9.13GB located at: /System/Library/AssetsV2/com_apple_MobileAsset_iOSSimulatorRuntime/c0d3fd05106683ba0b3680d4d1afec65f098d700.asset It contains SimulatorRuntimeAsset version 18.5 (Build 22F77). Active Version: My current Xcode setup is using version 26.2 (Build 23C54). I checked the plist files in the directory and found what seems to be the cause of the issue: The "Never Collected" Flag: The Info.plist inside the orphaned asset folder explicitly sets the garbage collection behavior to "NeverCollected": <key>__AssetDefaultGarbageCollectionBehavior</key> <string>NeverCollected</string> The Catalog Mismatch: The master catalog file (com_apple_MobileAsset_iOSSimulatorRuntime.xml) in the parent directory only lists the new version (26.2). Because the old version (18.5) is missing from this XML, Xcode and mobileassetd seem to have lost track of it entirely. What I Have Tried (All Failed) Xcode Components: The version 18.5 does not appear in Settings -> Components, so I cannot delete it via the GUI. Simctl: xcrun simctl list runtimes does not list this version. Running xcrun simctl runtime delete 22F77 fails with: "No runtime disk images or bundles found matching '22F77'." Manual Deletion: sudo rm -rf [path] fails with "Operation not permitted", presumably because /System/Library/AssetsV2 is SIP-protected. Third-party Tools: Apps like DevCleaner do not detect this runtime (likely because they only scan ~/Library or /Library, not /System/Library). Has anyone found a way to force the system (perhaps via mobileassetd or a specific xcrun flag) to re-evaluate this folder and respect a deletion request? I am trying to avoid booting into Recovery Mode just to delete a cache file. Any insights on how AssetsV2 handles these "orphaned" files would be appreciated.
Replies
25
Boosts
10
Views
3.4k
Activity
2d
SKTestSession.buyProduct(identifier: options:) throws error
Hi, Overview I am trying to write a unit test case to buy a storekit product. SKTestSession.buyProduct(identifier: options:) throws the error StoreKit.StoreKitError.notEntitled Testcase Code @Test func example() async throws { let session = try SKTestSession(configurationFileNamed: "VehicleStore") session.disableDialogs = true session.clearTransactions() do { let transaction = try await session.buyProduct(identifier: "nonconsumable.car", options: []) print(transaction) } catch { // Throws StoreKit.StoreKitError.notEntitled print("Error: \(error)") } } Storekit configuration file Note In-App purchases capability is added StoreKit configuration file is used in testcase Environment: macOS 26.5.2 (25F84) Xcode 26.6 (17F113)
Replies
3
Boosts
0
Views
153
Activity
4d
CoreSimulator runtime registry becomes inconsistent after upgrading to macOS 27 beta 2: simctl list runtimes reports an old runtime that cannot be deleted
Environment • macOS 27 beta 2 • Xcode 27 beta • Apple Silicon Mac Summary After upgrading to macOS 27 beta 2 and Xcode 27 beta, an old iOS 18.5 simulator runtime remains registered internally but cannot be removed. There appears to be an inconsistency between different CoreSimulator commands. Observed Behavior xcrun simctl runtime list only reports the current runtime: == Disk Images == -- iOS -- iOS 26.1 (23B86) - 0753590B-CF3F-4944-899E-4F70698DB87C (Ready) Total Disk Images: 1 (7.8G) However, xcrun simctl list runtimes -j still reports an additional runtime: identifier: com.apple.CoreSimulator.SimRuntime.iOS-18-5 SimulatorVersion: 18.5 Build: 22F77 bundlePath: /Library/Developer/CoreSimulator/Volumes/iOS_22F77/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 18.5.simruntime runtimeRoot: /Library/Developer/CoreSimulator/Volumes/iOS_22F77/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 18.5.simruntime/Contents/Resources/RuntimeRoot The runtime is reported as: "isAvailable": true The runtime no longer appears anywhere in Xcode. Attempting to remove it using the documented command fails: xcrun simctl runtime delete 22F77 Output: No runtime disk images or bundles found matching '22F77'. No matching images found to delete Using the runtime identifier also fails. The corresponding MobileAsset still exists: /System/Library/AssetsV2/com_apple_MobileAsset_iOSSimulatorRuntime/ It contains: c0d3fd05106683ba0b3680d4d1afec65f098d700.asset Its Info.plist contains: SimulatorVersion = 18.5 Build = 22F77 Another asset exists for the current runtime: SimulatorVersion = 26.1 Build = 23B86 The directory /Library/Developer/CoreSimulator/Volumes/iOS_22F77 exists as an empty directory. It appears to become active only when CoreSimulator queries the runtime. The runtime asset is no longer referenced by /System/Library/AssetsV2/com_apple_MobileAsset_iOSSimulatorRuntime/com_apple_MobileAsset_iOSSimulatorRuntime.xml Expected Result After upgrading Xcode/macOS: • old runtimes should either be removable through xcrun simctl runtime delete or • they should no longer remain registered if Xcode has already removed them. Actual Result Different CoreSimulator commands report different runtime states. simctl runtime list only reports iOS 26.1. simctl list runtimes -j still reports iOS 18.5 as available. The old runtime cannot be deleted using the official command. The MobileAsset remains on disk and occupies storage, but there appears to be no supported method to remove it. Notes This looks like CoreSimulator's runtime registry and the runtime deletion mechanism have become inconsistent after upgrading to macOS 27 beta 2 and Xcode 27 beta.
Replies
0
Boosts
0
Views
82
Activity
5d
LLMs within Xcode - Why can't the model within an agent be selected but can within chat?
If I use the Claude Code agent within Xcode 27 beta 2, it defaults to Opus 4.8, but that burns through tokens too quickly so I'd like to switch it to Opus 4.7 or Sonnet, but there's no way to change that anywhere in Xcode that I can see? Also, if I use Chat, rather than the agent, then Xcode lets you select models, however for Claude it only offers Sonnet 4.5. Why? Why not 4.6 at least? Where are these limitations coming from? It's not from Claude so it must be Xcode Why are these limitations present?
Replies
1
Boosts
0
Views
80
Activity
5d
App Startup with Debugger in Xcode 26 is slow
My app start up has became horrid. It takes 1 minute to open SQLlite database for my rust core. Impossible to work... I have Address Sanitizer, Thread Perf Checker and Thread Sanitizer disabled...
Replies
26
Boosts
6
Views
2.8k
Activity
6d
Xcode 27 and build SDKs
Please help me understand how build SDKs work in Xcode 27. Let's say I have an older app that uses UIDesignRequiresCompatibility. When I a) select an iOS 26 Simulator in Xcode 27 and press "play" (build an run), the app shows up in design compatibility mode. b) select an iOS 27 Simulator in Xcode 27 and press "play" (build an run), the app shows up ignoring design compatibility mode. My questions: Does that mean a) is using iOS 26 as build SDK and b) is using iOS 27 as build SDK? What would happen if running an app built using iOS 26 build SDK on iOS 27? What would happen if running an app built using iOS 27 build SDK on iOS 26? How can 2. and 3. be done with the simulator? When I submit to App Store Connect, which build SDK is used?
Replies
1
Boosts
0
Views
62
Activity
6d
Archived apps crash before main() after strip -S -T corrupts dyld chained fixups (FB23528109, Xcode 26.3-27.0b2)
We root-caused a launch crash that only affects ARCHIVED builds (Run/Debug works, simulator works) and filed it as FB23528109. Posting the details here because the crash signatures are hard to search for and other teams are likely to hit this as they adopt Swift 6.3 toolchains. SYMPTOM The archived app crashes before main() on device, on every launch. Depending on which orphaned pointer gets read first, the crash looks like one of these: EXC_BREAKPOINT, "pointer authentication trap DA", inside swift_conformsToProtocolMaybeInstantiateSuperclasses / _searchConformancesByMangledTypeName (often with a Firebase or other +load frame below it; that frame is just the first conformance scan at launch, not the cause) EXC_BAD_ACCESS KERN_INVALID_ADDRESS at a small, raw unslid address (e.g. 0xc118), inside dyld: resolveRebase <- objc_visitor::forEachClass <- dyld4::PrebuiltObjC::make Debug builds, simulator builds and Xcode Run builds are all fine, because the corruption happens in the Strip build phase, which only runs for Archive/install builds. ROOT CAUSE (two defects combine) strip -S -T (what Xcode runs on embedded frameworks during Archive when STRIP_SWIFT_SYMBOLS = YES) corrupts dyld chained fixups. When strip removes a Swift weak-definition symbol that has a GOT bind, it converts the bind into a rebase to the local definition (correct) but writes the converted entry with next = 0 (incorrect). That terminates the 16 KB page's fixup chain early, and every fixup after the converted slot in the same page is orphaned: dyld never processes it, so raw chain-encoding bytes get read as pointers at launch. The bug is present in every strip we tested: Xcode 26.3, 26.4, 26.4.1, 26.5, 26.6 and 27.0 beta 2. strip -S and strip -S -x (without -T) do not corrupt. Starting with Swift 6.3.0 (Xcode 26.4.0), the compiler emits the trigger pattern for ordinary code: cross-module references to a non-final class's stored-property accessors become weak-def-coalesce binds (Swift 6.2.4 emits none). So apps that embed a multi-module Swift dynamic framework (e.g. an SPM package built as one dynamic framework) started getting corrupted by their own default Archive pipeline when they moved past Xcode 26.3. HOW TO CHECK IF YOU ARE AFFECTED Compare the fixups of a framework binary inside your archive against a Run build of the same code: xcrun dyld_info -fixups YourApp.app/Frameworks/YourKit.framework/YourKit If fixups that exist in the Run build are missing after the archive's strip step (in particular __got slots and anything after them in the same 16 KB page), you are affected. Also: any GOT bind of a Swift ($s...) symbol in the pre-strip binary is a red flag. WORKAROUND Set STRIP_SWIFT_SYMBOLS = NO (optionally STRIP_STYLE = non-global, i.e. strip -S -x, which kept the size cost to about +4% for us). Important: if the affected framework is a Swift package product, these must be passed as xcodebuild command-line overrides (e.g. xcodebuild ... STRIP_SWIFT_SYMBOLS=NO STRIP_STYLE=non-global); xcconfig files do not apply to package targets. REPRO FB23528109 contains a complete minimal reproducer (4 small C files + 1 trivial Swift file, no proprietary code): a 30-second CLI script whose host binary segfaults through an orphaned pointer, and a default-settings Xcode project whose Run build works while its archived build crashes pre-main on device, identically for archives produced by Xcode 26.3.0, 26.4.0 and 26.6 (crash logs for each attached in the FB). Happy to share more details from the investigation if anyone is debugging the same signatures.
Replies
1
Boosts
0
Views
94
Activity
6d
Xcode 27 Agent is impossible to work with.
Working with Agents in Xcode 27 is a nightmare right now. Every conversation opens in a new window, so you don't see the code you and the agent are working on. You have to go back and forward between the code file and the conversation tab to get the names of data types or functions you need to ask the agent to work on, or to see exactly what you need to ask or how to explain it to the agent. We need the conversation and the code to be side by side to be able to work on the code and provide the right instructions, as we do in Xcode 26. The current interface just completely ruins any reasonable workflow, unless you are vibe coding, which I don't recommend. Let me know if there is a way to open the conversation on one side and code files on the other, or PLEASE change it back of what it was before or I will have to keep working on Xcode 26 and miss all the new features. Thanks
Replies
7
Boosts
2
Views
421
Activity
6d
Why is Xcode Cloud archiving failing?
I'm trying to build an Xcode Cloud workflow, but I keep getting this error. At first it just said I had to accept a license agreement, which I did, but it still didn't work after. I had recently added a new branch to the connected GitHub repository and committed to it so that I can have a beta branch separate from the main one. The only error that happens is when archiving. I am using Xcode 27 beta.
Replies
0
Boosts
0
Views
112
Activity
1w