I have a Core Image filter in my app that uses Metal. I cannot compile it because it complains that the executable tool metal is not available, but I have installed it in Xcode.
If I go to the "Components" section of Xcode Settings, it shows it as downloaded. And if I run the suggested command, it also shows it as installed. Any advice?
Xcode Version
Version 26.0 beta (17A5241e)
Build Output
Showing All Errors Only
Build target Lessons of project StudyJapanese with configuration Light
RuleScriptExecution /Users/chris/Library/Developer/Xcode/DerivedData/StudyJapanese-glbneyedpsgxhscqueifpekwaofk/Build/Intermediates.noindex/StudyJapanese.build/Light-iphonesimulator/Lessons.build/DerivedSources/OtsuThresholdKernel.ci.air /Users/chris/Code/SerpentiSei/Shared/iOS/CoreImage/OtsuThresholdKernel.ci.metal normal undefined_arch (in target 'Lessons' from project 'StudyJapanese')
cd /Users/chris/Code/SerpentiSei/StudyJapanese
/bin/sh -c xcrun\ metal\ -w\ -c\ -fcikernel\ \"\$\{INPUT_FILE_PATH\}\"\ -o\ \"\$\{SCRIPT_OUTPUT_FILE_0\}\"'
'
error: error: cannot execute tool 'metal' due to missing Metal Toolchain; use: xcodebuild -downloadComponent MetalToolchain
/Users/chris/Code/SerpentiSei/StudyJapanese/error:1:1: cannot execute tool 'metal' due to missing Metal Toolchain; use: xcodebuild -downloadComponent MetalToolchain
Build failed 6/9/25, 8:31 PM 27.1 seconds
Result of xcodebuild -downloadComponent MetalToolchain (after switching Xcode-beta.app with xcode-select)
xcodebuild -downloadComponent MetalToolchain
Beginning asset download...
Downloaded asset to: /System/Library/AssetsV2/com_apple_MobileAsset_MetalToolchain/4d77809b60771042e514cfcf39662c6d1c195f7d.asset/AssetData/Restore/022-19457-035.dmg
Done downloading: Metal Toolchain (17A5241c).
Screenshots from Xcode
Result of "Copy Information"
Metal Toolchain 26.0 [com.apple.MobileAsset.MetalToolchain: 17.0 (17A5241c)] (Installed)
Overview
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Hi — we’re testing our app on iOS 26 and ran into strange behavior with GKLocalPlayer.local.authenticateHandler.
GKLocalPlayer.local.authenticateHandler = { [weak self] viewController, error in
// additional code
}
What happens:
When we assign authenticateHandler on iOS 26 and the user is not signed in to Game Center, the system shows a full-screen Game Center overlay asking the user to sign in.
If the user taps Cancel, nothing further happens — the closure is not invoked again, so we don’t receive an error or any callback. The app never learns whether the auth was cancelled or failed.
In previous iOS versions the closure was called (with viewController / error as appropriate) and the flow worked as expected.
What we tried:
Verified authenticateHandler is being set.
Checked GKLocalPlayer.local.isAuthenticated after the overlay dismisses — it’s unchanged.
Observed system logs: a com.apple.GameOverlayUI scene is created and later removed (so the auth overlay is shown by the system).
Confirmed the same code works on earlier iOS versions. :thinking:
Question:
Has anyone seen authenticateHandler not being invoked on iOS 26 when the Game Center auth overlay is presented? Could this be a behavioral change in iOS 26 (overlay runs in a separate system process), or a bug? Any suggested workarounds to reliably detect that the user cancelled the sign-in (for example: listening for willResignActive / didBecomeActive, watching for a system overlay, or saving/presenting the viewController manually)?
Thanks in advance for any advice — we’d appreciate pointers or suggested diagnostics ?
Several app developers are struggling with the inability to provide a separate app icons that looks nice on older macOS versions while at the same time provide Icon Composer icons that look great on macOS Tahoe 26. An ability to provide separate icons is super important to those who have app icons that follow the curvature of the default icon borders (as the corner rounding radius is different for Sequia and Tahoe). Take a look at this for example:
https://github.com/ghostty-org/ghostty/issues/7564#issuecomment-3042061547
Question: Is there a definitive/recommended way to address this issue? How can a developer add a glass icon variant that looks good on Tahoe and provide a bitmap icon for older macOS versions?
Some background info:
Prior to Xcode 26 beta 4, one could add an App Icon to Assets to be used as app icon for legacy macOS versions (Sequia and older) and use a new Icon Composer icon (placed in the project root) for macOS Tahoe 26. Enabling "Include all app icon assets" under target settings ensured that older macOS versions would use the old app icons while Tahoe the new Icon Composer glass one.
Since Xcode beta 4 this technique no longer works. Xcode instead insists on populating Assets.car with Icon Composer generated variants, disregarding the App Icon provided in Assets. Although the App Icon in Assets makes its way to a .incs file in the app bundle's Contents/Resources folder, but that is not used by macOS anymore and is there for some compatibility purposes. The Assets.car file (which matters) only contains the variants generated by Icon Composer and does not contain the png icons provided in the Assets.
ChatGPT in Xcode 26.1 is super slow for me. What used to complete in a batter f seconds is now taking tens of minutes.
Context: M2 Pro MBP, Xcode 26.1, macOS 26.1. CPU stays under 50% while ChatGPT returns. Using the minimal setting. Tried restarting, have verified I have nothing running Electron, no other apps are running.
ChatGPT returns fast for the displayed content but the preview window where it renders code per line takes a few seconds per line.
We use SwiftUI's .tabViewBottomAccessory in our iOS apps for displaying an Audio MiniPlayer View (like in the Apple Music App).
TabView(selection: $viewModel.selectedTab) {
// Tabs here
}
.tabViewBottomAccessory {
if viewModel.showAudioMiniPlayer {
MiniPlayerView()
}
}
The Problem
This code works perfectly on iOS 26.0. When 'viewModel.showAudioMiniPlayer' is 'false', the accessory is completely hidden.
However, on iOS 26.1 (23B5059e), when 'viewModel.showAudioMiniPlayer' is 'false', the MiniPlayerView disappears, but an empty container remains, leaving a blank space above the tab bar.
Is this a known Bug in iOS 26.1 and are there any effective workarounds or should I just wait until Apple fixed it?
~5% of our users when downloading the iOS application from the Apple Store for the first time are unable to enrol a Passkey and experience an error saying the application is not associated with [DOMAIN].
The error message thrown by the iOS credentials API is
"The operation couldn't be completed. Application with identifier [APPID] is not associated with domain [DOMAIN]"
We have raised this via the developer support portal with case id: 102315543678
Question:
Why does the AASA file fail to fetch on app install and is there anything that can be done to force the app to fetch the file?
Can this bug be looked at urgently as it is impacting security critical functionality?
Other Debugging Observations
We have confirmed that our AASA file is correctly formatted and hosted on the Apple CDN. Under normal circumstances the association is created on install and Passkey enrolment works as intended.
We have observed that when customers uninstall/reinstall the app this often, but not always, resolves the issue. We also know this issue can resolve itself overtime without any intervention.
We have ruled out network (e.g VPN) issues and have reproduced the issue across a number of different network configurations.
We have ruled out the Keychain provider and have reproduced it across a variety of different providers and combinations of.
We observed this across multiple versions of the iOS operating system and iPhone hardware including the latest hardware and iOS version.
When I submit the app to TestFlight beta review I get the error show on UI. (I filled all filed info in Beta Infomation)
There was an error processing your request. Please try again later
I was inspected Safari to see the detailed error and I got the below error.
Failed to load resource: the server responded with a status of 422 ()
and the detailed javascript error
componentStack: undefined
errorCode: undefined
message: "API Response Error: TF_BETA_APP_REVIEW_RESPONSE"
stackTrace: "status code: 422 --- api correlation key: NZEKCTWMNANXDZVTRD3V4GNE3U"
Anyone can tell me the problem and how to fix it.
Many Thanks.
I'm trying to handle the serverRecordChanged return code you get in CKError when you have a conflict and your using the savePolicy of ifServerRecordUnchanged.
According to the CKError.Code.serverRecordChanged documentation, I should be receiving all three records that I need to do a 3-way merge. The problem is that the ancestorRecord (CKRecordChangedErrorAncestorRecordKey can also be used to look it up in the userInfo) doesn't actually contain a record. It only contains the record metadata.
Is there something I need to be doing to get the full ancestorRecord in the CKError?
If not is it possible to query iCloud for the ancestorRecord? Given that iCloud has the change history (as I understand it), then it is theoretically possible. I just don't know how to do it if it is possible.
Are 3-way merges even possible? The design of the serverRecordChanged looks like that is the intent, but I can't see how to do it with the data that CloudKit is providing.
A few months ago I tested App Clips with my app, but I don't plan to add them for now. The problem is that now I can't select a build in App Store Connect that does not contain an App Clip, and I receive the following error:
"An error has occurred. Try again later."
I've inspected the HTTP response to get more information about the error, and I got this:
{
"errors" : [ {
"id" : "xxxxxxxxxxxxxxxxxxxxxxxx",
"status" : "409",
"code" : "ENTITY_ERROR.RELATIONSHIP.UNKNOWN",
"title" : "The provided entity includes an unknown relationship",
"detail" : "'appClipDefaultExperiences' is not a relationship on the resource 'appStoreVersions'",
"source" : {
"pointer" : "/data/relationships/appClipDefaultExperiences"
}
} ]
}
Does anybody know how to completely disable App Clips for one app without having to generate a new identifier?
Thank you so much and have a great day/night!
Aniol.
Topic:
App Store Distribution & Marketing
SubTopic:
App Store Connect
Tags:
App Store Connect
App Clips
Hi,
I have an application published in the Marketplace.
I made certain updates to the app.
I did my tests.No problem.
I did my tests via Testflight.
There is no problem I encountered.
But my app update request was returned by app review.
The answer i got from them ;
"Specifically, our login attempt displayed loading indefinitely; we were unable to access the app features and functionality."
Here are the ways that I tried and the app worked successfully.
Connect from America using VPN.No problem, it works.
I connected from using IPV6.No problem, it works.
I tried with simulator.No problem, it works.
I tried real device.No problem , it works.
I tried testflight.No problem, it works.
I tired version 15.2 and earlier.No problem , it works.
I have no idea why apple staff are getting this error.
Has anyone encountered such a problem before? What solutions would you suggest? I'm waiting for your help.
Topic:
App Store Distribution & Marketing
SubTopic:
General
Tags:
App Review
App Store
TestFlight
Debugging
Unknown error during Developer Program Enrollment
I've been attempting to enroll in the Apple Developer Program since mid-October 2025, but I consistently receive an "Unknown Error - Please try again" dialog
Topic:
Community
SubTopic:
Apple Developers
On macOS 26.1 (25B78) I can't give Full Disk Access to sshd-keygen-wrapper. Now my Jenkins jobs do not work because they do not have the permission to execute the necessary scripts. Until macOS 26.1 everything worked fine. I restarted the machine several times and tried to give access from Settings -> Privacy & Security -> Full Disk Access but it just does not work. I tried logging with ssh on the machine and executing a script but again nothing happened.
I am unable to download the iOS 26.1 Simulator Runtime through Xcode 26.1 on macOS 26.1 (Build 25B78).
Issue Details:
When attempting to download via Xcode Settings → Platforms, the download fails with error code 41 (DVTDownloadableErrorDomain) and error code 60 (MADownloadCannotConnectToHost)
The error message states: "Failed fetching catalog for assetType (com.apple.MobileAsset.iOSSimulatorRuntime), serverParameters ({RequestedBuild = 23B80;})"
I receive HTTP 403 Forbidden when accessing mesu.apple.com/assets/
Steps Attempted:
Downloaded via Xcode Settings → Component → iOS 26.1 Simulator
Tried command line: xcodebuild -downloadPlatform iOS
Searched https://developer.apple.com/download/all/ - iOS 26.1 Simulator Runtime not listed
Tested with different networks (home WiFi, VPN, mobile hotspot)
Disabled proxy settings
Flushed DNS cache
All attempts result in the same error.
Important Notes:
Xcode 26.1 shows iOS Simulator SDK 26.1 (Build 23B77) is available
However, Xcode attempts to download Build 23B80, which appears unavailable
I experienced a similar issue previously with Xcode 16.4 requesting iOS 18.4 Simulator Runtime, which was also unavailable for download
Impact:
Without the iOS 26.1 Simulator Runtime, I cannot develop or test iOS applications. macOS 26.1 requires Xcode 26.1, which in turn requires iOS 26.1 runtime, leaving me unable to perform any iOS development work.
Questions:
Is iOS 26.1 Simulator Runtime (Build 23B80) officially released?
Is there a direct download link available?
Should Xcode 26.1 be requesting Build 23B77 instead of 23B80?
Is there any account restriction preventing me from downloading newer simulator runtimes?
System Information:
macOS: 26.1 (Build 25B78)
Xcode: 26.1 (Build 17B55)
Error description:
Download failed.
Domain: DVTDownloadableErrorDomain
Code: 41
User Info: {
DVTErrorCreationDateKey = "2025-11-10 15:38:07 +0000";
}
Download failed.
Domain: DVTDownloadableErrorDomain
Code: 41
Failed fetching catalog for assetType (com.apple.MobileAsset.iOSSimulatorRuntime), serverParameters ({
RequestedBuild = 23B80;
})
Domain: DVTDownloadsUtilitiesErrorDomain
Code: -1
Download failed due to not being able to connect to the host. (Catalog download for com.apple.MobileAsset.iOSSimulatorRuntime)
Domain: com.apple.MobileAssetError.Download
Code: 60
User Info: {
checkNetwork = 1;
}
Topic:
Developer Tools & Services
SubTopic:
Xcode
We use call directory extension in one of our applications, we notice that call id is truncated on IOS 18.
Example: "Grady GmbH" instead of "GRADY ARCHIE,
PRICEWATERHOUSECOOPER GMBH"
We notice also if we have calls in the history then the caller id is shown correctly.
Issue only on IOS 18.
Topic:
App & System Services
SubTopic:
General
In my app, I am using geofencing to perform an action when the user enter or leaves a specified location. The geofencing (CLMonitor) is active permanently, and should work across multiple app sessions or after the device is restarted. It should also work after the app was minimized or terminated. This worked perfectly with iOS 17 and prior, but with iOS 18, things changed. As soon as iOS 18 dropped, users were informing me that the app does no longer perform the entry/exit action reliably (without me making any changes to the app). Most of the times, events are missed entirely. Sometimes, after the user opens or resumes the app, duplicate events are delivered and/or events with the current time instead of the correct time of entry/exit.
I am making sure that the app has the "Always" location permission before geofencing is enabled
The gefocence radius is between 20 and 500m, but even with the max. radius specified, the geofencing is unreliable
For the same user and geofence, the entry/exit event is delivered occasionally, but not always
I am currently not using CLLocationManager.allowsBackgroundLocationUpdates (even though it's documented as "Apps that receive location updates when running in the background must include the UIBackgroundModes key (with the location value) in their app’s Info.plist file") because it wasn't necessary on iOS 17 and in my tests, using it didn't yield any improvements
In my search for what could have caused this change, I found this WWDC video about location authorization: . It appears that with iOS 18, it is now required to have an active CLServiceSession to ensure that location updates are delivered to my app. Even though the video is long (and I've watched it multiple times), some things are still unclear. For example, the docs state:
If your app actively receives and processes location updates and terminates, it should restart those APIs upon launch in order to continue receiving updates.
Also, in the video it is stated that:
... So your job, ..., is to make sure that your process launch logic knows what features it has been tasked with pursuing, and re-takes session objects...
But on the other hand it's also said that:
you can only start holding one (a CLServiceSession) when your app is in the foreground
and also
... CLMonitor.events won’t yield results when it is not in use, unless a session which was started in the foreground, ....
To summarize my questions, for the geofencing to work as described above:
when exactly do I need to create a CLServiceSession if the app is launched into the backgorund? Immediately in the applicationDidFinishLaunching method, even though the app is still in the background (applicationState is background)? Or later on, when the app is opened again by the user, e.g. in applicationDidBecomeActive (and applicationState is active)?
do I need to specify the background mode capability as noted in the Handling location updates in the background article?
do I need to create a CLBackgroundActivitySession as noted in the Handling location updates in the background article?
does it matter, which of the four initializer methods I am using to create the CLServiceSession (with CLServiceSessionAuthorizationRequirementAlways)?
does it matter if I specify NSLocationRequireExplicitServiceSession in the Info.plist or not when I already do ensure that the app has the "Always" location permission when the feature is being enabled
Does a CLServiceSession last indefinitely and should it only be invalidated once the user disables the feature?
I just submitted a feedback for this (FB9662125) but in the spirit of “share and enjoy”…
The cool new Generate Info.plist File feature in Xcode 13 crashes if you try to put an NSLocationTemporaryUsageDescriptionDictionary in your Info.plist file. Here’s a simple repro scenario:
Create a minimal iOS app (no Core Data, no tests)
Go to target settings → Info tab → Custom iOS Target Properties
Click the (+) button on any row to begin inserting a new row
Select Privacy - Location Temporary Usage Description Dictionary
Click somewhere else or press Return to commit the selection
Xcode crashes immediately
More generally, it seems that Xcode crashes any time it tries to regenerate your Info.plist file if it contains an NSLocationTemporaryUsageDescriptionDictionary, even if (for example) you manually pasted that dictionary into the file earlier. In that case, merely tapping the (+) button in step 3 above is enough to crash it.
My MBP M1 Pro gets really hot. iOS 26.1 Simulator in Xcode 26.1 makes ReportCrash process run at 60-160% of CPU shows Activity Monitor.
MacOS 26.1. I've reported this via Feedback Assistant: FB20918609.
Is there a way to quit this process permanently? When I Force Quit this it opens again immediately. Only way to stop it is to quit Simulator. But then again, I need to use the Simulator.
I'm working on an API client for a REST service that uses a custom token-based authentiation scheme. The app hits a specificed authentication endpoint with a username and password, said endpoint returns a token that's good for X amount of time, and the app passes that token along with every subsequent request. When that token expires, we start over.Most literature out there tells me to manually set the Authorization header on my request, but official Apple documentation discourages this, as that header is meant to be 'owned' by the built-in HTTP loading system. That said, official documentation on the 'correct' way to do this is shockingly lacking, and the standard didReceiveChallenge callbacks seem better suited for non-custom Basic/Digest/etc authentication schemes. One thought I had was registering my own URLProtocol subclass to handle our custom flow. However, while I haven't had a chance to sit down and take a crack at that yet, my understanding from skimming these forums is that it's suffering from some bit-rot right now, so it 'might' (?) not be the best choice. That, and it's also not clear to me whether the rules around the Authorization header change when a custom URLProtocol is in play.So, community (paging eskimo in particular!), what's the correct way for me to go about this?
I am using the sample app from:
https://developer.apple.com/videos/play/wwdc2025/277/?time=763
I installed this on an Iphone 15 Pro with iOS 26 beta 1. I was able to get good transcription with it. The app did crash sometimes when transcribing and I was going to post here with the details. I then installed iOS beta 2 and uninstalled the sample app. Now every time I try to run the sample app on the 15 Pro I get this message:
SpeechAnalyzer: Input loop ending with error: Error Domain=SFSpeechErrorDomain Code=10 "Cannot use modules with unallocated locales [en_US (fixed en_US)]" UserInfo={NSLocalizedDescription=Cannot use modules with unallocated locales [en_US (fixed en_US)]}
I can't continue our our work towards using SpeechAnalyzer now with this error.
I have set breakpoints on all the catch handlers and it doesn't catch this error. My phone region is "United States"
Simply opening Simulator app (26.0) causes high CPU usage on macOS Tahoe (26.1).
ReportCrash process usage is very high throughout and causes the system to heat up pretty soon.
Looking into Console app for the logs found MercuryPosterExtension process is keep on crashing. (Check under Crash Reports)
simctl Diagnose
https://download.developer.apple.com/OS_X/OS_X_Logs/simctl_Diagnose_Logging_Instructions.pdf
Share the Simulator Diagnose report while reporting, Thanks.
I have raised a ticket/feedback with Apple. I request all of you to raise one too so this gets fixed soon.
Apple Feedback Assistant - FB20985249