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

Xcode Documentation

Posts under Xcode subtopic

Post

Replies

Boosts

Views

Activity

Error Simulator Download Simulator IOS 18.2 22C5142a
I can't install Simulator 18.2 I reinstalled sometimes Xcode y always return this erro Download failed. Domain: DVTDownloadableErrorDomain Code: 41 User Info: { DVTErrorCreationDateKey = "2025-02-15 15:41:39 +0000"; } Download failed. Domain: DVTDownloadableErrorDomain Code: 41 Failed fetching catalog for assetType (com.apple.MobileAsset.appleTVOSSimulatorRuntime), serverParameters ({ RequestedBuild = 22K5148a; }) Domain: DVTDownloadsUtilitiesErrorDomain Code: -1 Download failed due to a bad URL. (Catalog download for com.apple.MobileAsset.appleTVOSSimulatorRuntime) Domain: com.apple.MobileAssetError.Download Code: 49 User Info: { checkConfiguration = 1; } System Information macOS Version 15.2 (Build 24C101) Xcode 16.2 (23504) (Build 16C5023f) Timestamp: 2025-02-15T09:41:39-06:00
6
0
2.0k
Mar ’25
Which extension use
Hi, I want to block incoming calls using my backend server, like the unwantend sms using message filter extension. I saw that Call Directory Extension can block numbers, but you need update the list, is not in real time. I was reading the Live Caller ID Look up extension documentation, and it seems that with this extension is possible send the number to backend and retrieve a value to know if the call should be block or not. Am I right? Or is not possible this feature with this extension? Thanks!
0
1
292
Mar ’25
Question with Message Filter Extension
Hi. I created a Message Filter Extension target to filter spam sms messages, deferring the request to my backend. The extension makes the call and send this payload: POST /server-endpoint HTTP/1.1 Accept: */* Content-Type: application/json; charset=utf-8 Content-Length: 148 { "_version": 1, "query": { "sender": "14085550001", "message": { "text": "This is a message" } }, "app": { "version": "1.1" } } My question is, is possible modify this payload to send the "receiver" number (is possible get the receiver number in this extension?), or use an identifier, to let my backend know which user number the filter was applied to. I think is impossible because the extension makes the call and create the payload, and I don't see anything in docs to add other prop, but there's other way to know the "receiver" number of the sms? Thanks:)
1
0
369
Mar ’25
Can't install any apps on my new iPhone 16 Pro with iOS 18 from XCode
Error message: Previous preparation error: The developer disk image could not be mounted on this device.; Error mounting image: 0xe800010f (kAMDMobileImageMounterPersonalizedBundleMissingVariantError: The bundle image is missing the requested variant for this device.) I had no issues previously with my iPhone 13 Pro running iOS 18 and my XCode 15. Now, after switching to the iPhone 16 Pro, it won't work. I've tried restarting my phone several times, quitting XCode, removing and readding developer mode—nothing quite works.
24
29
32k
Mar ’25
Can't archive app due to icon error.
I'm developing a companion watch app for an already existing iOS app, and everything seems to be working fine compiling it for the simulator, however when I try to archive it so I can make it available on TestFlight XCode throws the error "The stickers icon set or app icon set named "AppIcon" did not have any applicable content" even though the app icon is in the assets. The icon works and appears fine under the Simulator but I can't seem to archive it, even after renaming it to something else.
3
0
401
Mar ’25
Xcode 16 „forgetting“ package in subfolder to root package
Xcode 16 seems to „forget“ a swift package within a subfolder of a root package after restart or shut-down. I have the following project structure, which also resembles the directory structure on disc: MyPackage - Package.swift - README.md - Sources - MyPackage - Tests - MyPackageTests - Tools - MyGenerator // <- after restart this folder is not visible in the Xcode project navigator - Package.swift - Sources - main.swift - Tests MyGenerator is a standalone package which is used during development of MyPackage to generate source code files for MyPackage based on text file input. Essentially an executable target script which I can run within its folder with: swift run MyGenerator someInputFile.txt MyPackage does NOT use MyGenerator as a dependency, nor do I want this tool listed as a dependency in MyPackage Package.swift file. Yet MyGenerator is part of the same Git repo, as it documents the changes to the tool on how to generate source code for MyPackage. Both packages are developed in tandem. MyGenerator itself defines dependencies in its Package.swift file, which are unrelated to the functionality of MyPackage. After restart of Xcode or even just a longer shut-down period the MyGenerator subfolder is not visible in the Xcode project navigator, the /Tools folder is empty. I have to manually add the sub package via Add files to "MyPackage" -> Move files to destination every time. How can I solve that Xcode remembers the sub package unter /Tools? Edit: I am using Xcode 16.2
0
0
247
Mar ’25
Weather Authentication Failed
I'm pretty new on this platform and also developing IOS mobile apps. I've been struggling for using the data of the api weather kit apple. I have an acount of apple developer, downloaded the certificate... i follow all the necessaries steps in the portal and also in my project and i keep having this error message when i try to use it. I don't know what else should i do for having working it. I would absolutely appreciate that someone could help me with this. Thank you very much!!!!! Encountered an error when fetching weather data subset; location=<+41.38268070,+2.17702390> +/- 0.00m (speed -1.00 mps / course -1.00) @ 2/3/25, 22:54:03 Central European Standard Time, error=WeatherDaemon.WDSJWTAuthenticatorServiceListener.Errors 2 Error Domain=WeatherDaemon.WDSJWTAuthenticatorServiceListener.Errors Code=2 "(null)"
0
1
236
Mar ’25
devicectl copy directory recursively
I can use devicectl to copy single files from a device fine using: xcrun devicectl --verbose device copy from --user mobile --domain-identifier <BUNDLE_ID> --domain-type appDataContainer --device <DEVICE_ID> --source Documents/Screenshots/0001.png --destination Screeshots/0001.png but when there are many files this can get pretty slow. Is there a way of recursively copying an entire directory? I've tried this: xcrun devicectl --verbose device copy from --user mobile --domain-identifier <BUNDLE_ID> --domain-type appDataContainer --device <DEVICE_ID> --source Documents/Screenshots --destination Screeshots but nothing is transferred and it times out eventually with the error: ERROR: The specified file could not be transferred. (com.apple.dt.CoreDeviceError error 7000 (0x1B58)) ERROR: The operation couldn’t be completed. The file service client failed to read data from the network socket because we timed out when waiting for data to become available. (NSPOSIXErrorDomain error 60 (0x3C)) NSLocalizedFailureReason = The file service client failed to read data from the network socket because we timed out when waiting for data to become available. Xcode itself can do it with the "download container..." option, but I'd like to be able to automate it.
0
1
241
Mar ’25
Fresh Project Using Insecure APIs (_sscanf, _strlen, _fopen, malloc) in Binary
Hello Apple Developer Community, I recently created a fresh project with: No dependencies No additional written code After generating the iOS build, I navigated to the build folder: cd build/ios/iphoneos/Runner.app Then, I ran the following commands to inspect the binary: otool -Iv Runner | grep -w _strlen otool -Iv Runner | grep -w _malloc Surprisingly, I received positive results, meaning these functions are present in the binary. My Questions: Why is a fresh Flutter project (with no extra dependencies) including these APIs in the binary?
1
0
243
Mar ’25
Adding ‘Test diamonds’ to Xcode with a macro
I'm currently writing a macro which outputs Swift Testing code: // Macro code ... @MainActor @SnapshotSuite struct MySuite { func makeView() -&gt; some View { Text("a view") } } which expands to... // Expanded macro code ... @MainActor @Suite struct _GeneratedSnapshotSuite { @MainActor @Test(.tags(.snapshots)) func assertSnapshotMakeView() async throws { let generator = SnapshotGenerator( testName: "makeView", traits: [ .theme(.all), .sizes(devices: .iPhoneX, fitting: .widthAndHeight), .record(false), ], configuration: .none, makeValue: { MySuite().makeView() }, fileID: #fileID, filePath: #filePath, line: 108, column: 5 ) await __assertSnapshot(generator: generator) } } In short, this macro creates snapshot tests from a function. This all works but I'm finding a couple of limitations, potentially with how Macros are expanded in Swift. Xcode diamonds are not visible The snapshots tag isn't discovered There are a couple of things worth noting though: The suites and tests are discovered in Xcode's Test Navigator each time Xcode runs tests (cmd + u) - although they need to rerun to be updated. I manually add a @Suite in my code as well as my @SnapshotSuite to all of the suites. (The tags never seem to be available though) Couple of questions on this: Is this a known issue? Are there any workarounds? I do wonder if there's a workaround for showing the diamonds with XCTest APIs such as: https://github.com/swiftlang/swift-corelibs-xctest/tree/main https://developer.apple.com/documentation/xctest
1
0
302
Mar ’25
Not Sandbox App, Working on SMAppService as root
I am currently developing a No-Sandbox application. What I want to achieve is to use AuthorizationCopyRights in a No-Sandbox application to elevate to root, then register SMAppService.daemon after elevation, and finally call the registered daemon from within the No-Sandbox application. Implementation Details Here is the Plist that I am registering with SMAppService: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.example.agent</string> <key>BundleProgram</key> <string>/usr/local/bin/test</string> <key>ProgramArguments</key> <array> <string>/usr/local/bin/test</string> <string>login</string> </array> <key>RunAtLoad</key> <true/> </dict> </plist> Code that successfully performs privilege escalation (a helper tool popup appears) private func registerSMAppServiceDaemon() -> Bool { let service = SMAppService.daemon(plistName: "com.example.plist") do { try service.register() print("Successfully registered \(service)") return true } catch { print("Unable to register \(error)") return false } } private func levelUpRoot() -> Bool { var authRef: AuthorizationRef? let status = AuthorizationCreate(nil, nil, [], &authRef) if status != errAuthorizationSuccess { return false } let rightName = kSMRightBlessPrivilegedHelper return rightName.withCString { cStringName -> Bool in var authItem = AuthorizationItem( name: cStringName, valueLength: 0, value: nil, flags: 0 ) return withUnsafeMutablePointer(to: &authItem) { authItemPointer -> Bool in var authRights = AuthorizationRights(count: 1, items: authItemPointer) let authFlags: AuthorizationFlags = [.interactionAllowed, .preAuthorize, .extendRights] let status = AuthorizationCopyRights(authRef!, &authRights, nil, authFlags, nil) if status == errAuthorizationSuccess { if !registerSMAppServiceDaemon() { return false } return true } return false } } } Error Details Unable to register Error Domain=SMAppServiceErrorDomain Code=1 "Operation not permitted" UserInfo={NSLocalizedFailureReason=Operation not permitted} The likely cause of this error is that /usr/local/bin/test is being bundled. However, based on my understanding, since this is a non-sandboxed application, the binary should be accessible as long as it is run as root. Trying post as mentioned in the response, placing the test binary under Contents/Resources/ allows SMAppService to successfully register it. However, executing the binary results in a different error. Here is the plist at that time. <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.example.agent</string> <key>BundleProgram</key> <string>Contents/Resources/test</string> <key>ProgramArguments</key> <array> <string>Contents/Resources/test</string> <string>login</string> </array> <key>RunAtLoad</key> <true/> </dict> </plist> Here is the function at that time. private func executeBin() { let bundle = Bundle.main if let binaryPath = bundle.path(forResource: "test", ofType: nil) { print(binaryPath) let task = Process() task.executableURL = URL(fileURLWithPath: binaryPath) task.arguments = ["login"] let pipe = Pipe() task.standardOutput = pipe task.standardError = pipe do { try task.run() let outputData = pipe.fileHandleForReading.readDataToEndOfFile() if let output = String(data: outputData, encoding: .utf8) { print("Binary output: \(output)") } task.waitUntilExit() if task.terminationStatus == 0 { print("Binary executed successfully") } else { print("Binary execution failed with status: \(task.terminationStatus)") } } catch { print("Error executing binary: \(error)") } } else { print("Binary not found in the app bundle") } } Executed After Error Binary output: Binary execution failed with status: 5 Are there any other ways to execute a specific binary as root when using AuthorizationCopyRights? For example, by preparing a Helper Tool?
1
0
354
Mar ’25
Fresh Project Using Insecure APIs (_sscanf, _strlen, _fopen, malloc) in Binary
Hello Apple Developer Community, I recently created a fresh project with: No dependencies No additional written code After generating the iOS build, I navigated to the build folder:"build/ios/iphoneos/Runner.app" Then, I ran the following otool commands to inspect the binary: otool -Iv Runner | grep -w _strlen otool -Iv Runner | grep -w _malloc Surprisingly, I received positive results, meaning these functions are present in the binary. My Questions: Why is a fresh project (with no extra dependencies & No additional written code) including these APIs in the binary?
2
0
285
Mar ’25
Still possible to use XCode for local MacOS development without a bundle identifier?
I have used XCode for decades as my default C/C++ programming IDE. I write code that I run locally on my Mac, via "Sign to run locally". Typically this has always "just worked". I am now using MacOS 14.7 Sonoma, and I suddenly find I cannot run my code projects because I cannot dynamically load unsigned libraries. "not valid for use in process: library load disallowed by system policy" BUT - it appears that to allow my local MacOS code to bypass this requires I have a bundle identifier to modify entitlements. Which in turn requires a developer account which I don't have. Is this all correct? Is there any way to have code run locally and use dynamic libraries as I've done previously? Any advice is much appreciated.
2
0
372
Mar ’25
xcrun devicectl not work as expected in Apple TV
What I want? I expect to use xcrun devicectl device process launch --device <uuid> <bundle-identifier> --payload-url <URL> to launch my app and pass the specified URL as I usually do in iPhone. What I do? Let's say the app A which I'm developing. I try to use UIApplication.open(:options:completionHandler:) in another app to open the app A with registered schema. And whether app A is cold launch or background resumption, app A can go foreground with receiving URL. If I use xcrun devicectl as above described, app A can still be opened. However, app A can't receive URL which I pass through --payload-url option. That's different from in iOS. BTW: I as well try YouTube with UIApplication.open and xcrun devicectl, the former way work, the latter way not work.
0
0
191
Mar ’25
Unable to Sign in to Apple ID in Xcode – Credentials Not Recognized
Hi everyone, I am experiencing an issue where I am unable to sign in to my Apple ID within Xcode. Even after updating my password and ensuring that all my credentials are correct, I continue to receive an "Incorrect username or password" error. However, I can successfully log in to Apple Developer Portal, iCloud, and Apple ID settings using the same credentials. Steps I've Taken to Resolve the Issue: Updated Software I have updated macOS Sequoia and Xcode to the latest versions. I have also verified that my Apple Developer certificates are up to date. Tried Resetting Authentication in macOS I removed all related entries for Xcode, Apple ID, and Developer from Keychain Access. Logged out of my Apple ID from System Settings and restarted my Mac. Logged back in and retried signing in to Xcode. Checked Authentication & Security Settings I verified that two-factor authentication (2FA) is enabled. Tried appending the verification code directly to the password when logging into Xcode. Checked Xcode Developer Directory Ran sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer Verified using xcode-select -p, which correctly pointed to the Xcode Developer directory. Tried Resetting Developer Tools Removed and reinstalled Command Line Tools (xcode-select --install). Accepted the Xcode license agreement (sudo xcodebuild -license). Reinstalled Xcode Completely uninstalled Xcode using sudo rm -rf /Applications/Xcode.app and reinstalled it from the Mac App Store. Problem Summary: Xcode does not recognize my Apple ID credentials, despite them being correct. I can successfully log in to Apple’s web services, but not to Xcode. I have already attempted multiple fixes, including resetting keychain entries, reinstalling Xcode, and verifying system configurations. I would appreciate your guidance on resolving this issue, as I need access to my Apple Developer account within Xcode to continue working on my app. Thank you for your support.
1
0
475
Mar ’25
"Reveal in Project Navigator" Shortcut Stopped Working
Today after I apparently fat fingered/misclicked/misdragged something in Xcode, the short cut for "Reveal in Project Navigator" (cmd+shift+J) stopped working for me. I don't have any custom shortcut bindings and the other shortcuts still work, as far as I can tell. I've deleted and re-installed Xcode; I've run defaults delete com.apple.dt.Xcode to no avail. I'd really like this shortcut back as it's probably my second or third most used one :(
1
0
249
Mar ’25
testSession.setSimulatedError(.purchase(.invalidQuantity), forAPI: .purchase)
I am trying to test this simulated Error. The issue is, I can't get this to trigger through the simulatedError function. Error will always end up as an unknown error Example code snippet: @available(iOS 17.0, *) func testPurchase_InvalidQuantity() async throws { // Arrange testSession.clearTransactions() testSession.resetToDefaultState() let productID = "consumable_1" try await testSession.setSimulatedError(.purchase(.invalidQuantity), forAPI: .purchase) guard let product = await fetchProduct(identifier: productID) else { XCTFail("Failed to fetch test product") return } let option = Product.PurchaseOption.quantity(4) let result = await manager.purchase(product: product, options: option) switch result { case .success: XCTFail("Expected failure due to invalid quantity") case .failure(let error): print("Received error: \(error.localizedDescription)") switch error { case .purchaseError(let purchaseError): XCTAssertEqual(purchaseError.code, StoreKitPurchaseError.invalidQuantity.code) default: XCTFail("Unexpected error: \(error)") } } } In the above code snippet, I have an Unexpected Error. But if i remove try await testSession.setSimulatedError(.purchase(.invalidQuantity), forAPI: .purchase) I will receive a XCTFail in the success of my result. So when I set the quantity to a -1, only then can I correctly receive an invalidQuantity. Does anyone know why the try await testSession.setSimulatedError(.purchase(.invalidQuantity), forAPI: .purchase) would fail to work as directed? I have tests for all the generic errors for loadProducts API and the simulatedError works great for them
1
0
390
Mar ’25
xCode 16.2 (16C5032a): dev account cannot be saved
xCode 16.2 deletes the dev account ... Steps: Open the xCode 16.2 (16C5032a) Open xCode -> Settings -> Accounts Make sure there are no accounts added Add some dev account using an AppleID Make sure the added account is presented in the accounts list Exit xCode and re-launch it Open xCode -> Settings -> Accounts Check the list of dev accounts ... Actual results: The list of accounts is empty, and the "No accounts" text is presented. Expected result: The previously added account is in service
2
0
261
Mar ’25