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

Xcode Documentation

Posts under Xcode subtopic

Post

Replies

Boosts

Views

Activity

Xcode 16.4 fails to build swift packages.
After updating to Xcode 16.4, Package resolution fails with some cryptic errors. Each package fails with the following message Showing Recent Errors Only <unknown>:0: warning: legacy driver is now deprecated; consider avoiding specifying '-disallow-use-new-driver' <module-includes>:200:9: note: in file included from <module-includes>:200: 198 | #import "mach/mach_traps.h" 199 | #import "mach/mach_types.h" 200 | #import "mach/mach_vm.h" | `- note: in file included from <module-includes>:200: 201 | #import "mach/mach_voucher.h" 202 | #import "mach/mach_voucher_types.h" /Applications/Xcode-16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/usr/include/mach/mach_vm.h:436:2: error: unknown type name 'mach_vm_offset_list_t'; did you mean 'mach_vm_offset_t'? 434 | ( 435 | vm_map_t target, 436 | mach_vm_offset_list_t in_pointer_list, | `- error: unknown type name 'mach_vm_offset_list_t'; did you mean 'mach_vm_offset_t'? 437 | mach_msg_type_number_t in_pointer_listCnt, 438 | mach_vm_offset_list_t out_pointer_list, /Applications/Xcode-16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/usr/include/mach/arm/vm_types.h:108:33: note: 'mach_vm_offset_t' declared here 106 | 107 | typedef uint64_t mach_vm_address_t __kernel_ptr_semantics; 108 | typedef uint64_t mach_vm_offset_t __kernel_ptr_semantics; | `- note: 'mach_vm_offset_t' declared here 109 | typedef uint64_t mach_vm_size_t; 110 | <module-includes>:200:9: note: in file included from <module-includes>:200: 198 | #import "mach/mach_traps.h" 199 | #import "mach/mach_types.h" 200 | #import "mach/mach_vm.h" | `- note: in file included from <module-includes>:200: 201 | #import "mach/mach_voucher.h" 202 | #import "mach/mach_voucher_types.h" <unknown>:0: error: could not build Objective-C module 'Darwin' /Applications/Xcode-16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/usr/include/mach/mach_vm.h:438:2: error: unknown type name 'mach_vm_offset_list_t'; did you mean 'mach_vm_offset_t'? 436 | mach_vm_offset_list_t in_pointer_list, 437 | mach_msg_type_number_t in_pointer_listCnt, 438 | mach_vm_offset_list_t out_pointer_list, | `- error: unknown type name 'mach_vm_offset_list_t'; did you mean 'mach_vm_offset_t'? 439 | mach_msg_type_number_t *out_pointer_listCnt 440 | ); /Applications/Xcode-16.4.0.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.4.sdk/usr/include/mach/arm/vm_types.h:108:33: note: 'mach_vm_offset_t' declared here 106 | 107 | typedef uint64_t mach_vm_address_t __kernel_ptr_semantics; 108 | typedef uint64_t mach_vm_offset_t __kernel_ptr_semantics; | `- note: 'mach_vm_offset_t' declared here 109 | typedef uint64_t mach_vm_size_t; 110 | /Users/paulwilliamson/Developer/ios-app/Packages/Modules/ModalAdvert/Package.swift:4:8: error: failed to build module 'PackageDescription' for importation due to the errors above; the textual interface may be broken by project issues or a compiler bug 2 | // The swift-tools-version declares the minimum version of Swift required to build this package. 3 | 4 | import PackageDescription | `- error: failed to build module 'PackageDescription' for importation due to the errors above; the textual interface may be broken by project issues or a compiler bug 5 | 6 | let package = Package( We don't specify -disallow-use-new-driver, so I'm unsure where that message comes from. We have cleared derived data and are performing a clean build.
0
1
252
May ’25
Facing "Failed to create promise" issue on ios 18 simulators
Hi, We are facing issues on ios simulators os version 18, "Simulator device failed to install the application. Failed to create promise. Underlying error (domain=IXErrorDomain, code=2):" Due to this error simulator is unable to install the application. we are facing this intermittently. xcode version : Xcode.16.0.0.16A242d.app ios simulator runtime : com.apple.CoreSimulator.SimRuntime.iOS-18-0 ios simulator : com.apple.CoreSimulator.SimDeviceType.iPhone-16 mac os version : macOS 15.4 we have tried upgrading to xcode Xcode.16.1.0.16B40.app and ios simulator runtime to 18.1 but its not working. Also we have rebooted xcode, not helping. *Exact error message : ** org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: An unknown server-side error occurred while processing the command. Original error: Error running 'install': An error was encountered processing the command (domain=IXErrorDomain, code=2): Simulator device failed to install the application. Failed to create promise. Underlying error (domain=IXErrorDomain, code=2): Failed to set icon resources promise for com.yyyy.xxxx Failed to create promise. Host info: host: 'uci-macmini-019lab3b.local', ip: 'fe80:0:0:0:1caf:6627:141d:f464%en0' Build info: version: '4.30.0', revision: '509c7f17cc' System info: os.name: 'Mac OS X', os.arch: 'aarch64', os.version: '15.3.1', java.version: '11.0.25' Driver info: com.mypackage.common.drivers.CustomIosDriver$ByteBuddy$g865VfU3 Command: [null, newSession {capabilities=[{appium:webviewConnectTimeout=120000, appium:autoAcceptAlerts=true, appium:app=/Users/mobileci/.buildkite-agent/builds/uci-macmini-019lab3b/mypackage/e2e-test-ios-simulator/8155f349-18b9-413c-9d17-dcb064986154/test_artifacts/target.app, appium:includeSafariInWebviews=true, appium:locale=US, appium:mjpegServerPort=52715, appium:newCommandTimeout=600000, appium:waitForIdleTimeout=3, appium:derivedDataPath=/Users/mobileci/.buildkite-agent/builds/uci-macmini-019lab3b/mypackage/e2e-test-ios-simulator/8155f349-18b9-413c-9d17-dcb064986154/appium_wda_ios/, appium:wdaConnectionTimeout=300000, appium:wdaLaunchTimeout=300000, appium:processArguments={env={E2E_TESTING=YES, RUN_UUID=8155f349-18b9-413c-9d17-dcb064986154}}, appium:automationName=XCUITest, appium:fullReset=true, appium:udid=F266ECC3-FD23-464D-B0C3-576EB48B2FF5, appium:deviceName=E2ESimulator, appium:wdaLocalPort=52714, appium:showXcodeLog=true, appium:webkitDebugProxyPort=52716, appium:noReset=false, appium:language=en, platformName=IOS, appium:simpleIsVisibleCheck=true}], desiredCapabilities=Capabilities {app: /Users/mobileci/.buildkite-..., autoAcceptAlerts: true, automationName: XCUITest, derivedDataPath: /Users/mobileci/.buildkite-..., deviceName: E2ESimulator, fullReset: true, includeSafariInWebviews: true, language: en, locale: US, mjpegServerPort: 52715, newCommandTimeout: 600000, noReset: false, platformName: IOS, processArguments: {env: {E2E_TESTING: YES, RUN_UUID: 8155f349-18b9-413c-9d17-dcb...}}, showXcodeLog: true, simpleIsVisibleCheck: true, udid: F266ECC3-FD23-464D-B0C3-576..., waitForIdleTimeout: 3, wdaConnectionTimeout: 300000, wdaLaunchTimeout: 300000, wdaLocalPort: 52714, webkitDebugProxyPort: 52716, webviewConnectTimeout: 120000}}] Capabilities {app: /Users/mobileci/.buildkite-..., autoAcceptAlerts: true, automationName: XCUITest, derivedDataPath: /Users/mobileci/.buildkite-..., deviceName: E2ESimulator, fullReset: true, includeSafariInWebviews: true, language: en, locale: US, mjpegServerPort: 52715, newCommandTimeout: 600000, noReset: false, platformName: IOS, processArguments: {env: {E2E_TESTING: YES, RUN_UUID: 8155f349-18b9-413c-9d17-dcb...}}, showXcodeLog: true, simpleIsVisibleCheck: true, udid: F266ECC3-FD23-464D-B0C3-576..., waitForIdleTimeout: 3, wdaConnectionTimeout: 300000, wdaLaunchTimeout: 300000, wdaLocalPort: 52714, webkitDebugProxyPort: 52716, webviewConnectTimeout: 120000} at
0
0
179
Apr ’25
Xcode not omitting binary of static framework
I'm following the steps laid out in Creating a static framework which states: When a client links and embeds the framework, Xcode 15 or later omits the main binary from the embedded framework bundle because it’s already statically linked into the client. Specifically, I'm adding a new framework target to my project, and then changing the Mach-O type in its build settings to Static Library. What I'm observing when I build (debug or release) is that that the resulting framework folder inside of the app bundle still contains a binary. Furthermore, upon inspecting strings and symbols in both the main app executable and this library binary, it appears that my strings and symbols do end up in the main executable and not in the library binary. Does this mean that this binary is just a stub left behind? Is this intended? Can I safely delete this binary with a build phase script?
0
0
96
May ’25
Does Xcode force to download latest iOS simulator after update?
I have Xcode on my mac. I am iOS Dev. I do not know what version of Xcode was before I did next steps, but I could say that I had iOS Simulator 18.3.1. So I update my Xcode to Version 16.3 (16E140). At this version is available iOS Simulator 18.4. But from some time before Xcode separate downloading components and actual Xcode itself. So i make update and do not download latest iOS simulator. What i have: in Xcode -> Settings -> Components under " Other Installed Platforms" i have iOS 18.3.1 and 17.5 in Choose Destination dropdown menu i have nothing. And Xcode say me that i need install iOS Simulator. After some time with ChatGPT I could not do nothing from this. I try go to : Window -> Device and Simulators and here create new simulator with 18.3.1 and make it appear Always. But it didn't help. Solution I did: I download latest version 18.4 because i could not wait because i need fix bug only 1 hour shift and it was this hour so i fast download the simulator. After downloading 18.4 in Choose Destination dropdown it appears all versions of simulaors and 18.3.1 and that i created and 17.5 Question: Does Xcode force to install latest version of iOS simulator? What is the sense of this upgrade that now Xcode is updating faster because it download 8 GB not 16 if eventually I need download 8 GB again ? The new what i could do download Xcode in the evening and Simulator in the morning?
0
0
154
Apr ’25
CPListTemplate in CarPlay Simulator: Multiple Items Selected on Tap
I am encountering an issue while running my CarPlay app in the simulator using CPListTemplate. On app launch, when I tap on the first item in the list and then tap on the second item, both items remain selected instead of only the latest tapped item. This behavior does not align with the expected single-item selection functionality. Has anyone else faced this issue? Is there a workaround or a known resolution for this behavior?
0
0
44
May ’25
CoreBluetooth Scan not working when OS upgraded to 18.3.1
Hi, I currently have an app that connect to an arduno via CoreBluetooth. However, the app no longer discovers the arduino when the operating system was upgraded to iOS 18.3.1, however on iOS version 17.6.1 the ardiuno was discoverable I was able to test this theory on two different phones each with different iOS versions. Why are my peripherals no longer being discovered with this update? and what is the solution?
0
0
223
Mar ’25
WatchOS Xcode 16.4 to sample live RR intervals from the PPG sensor ERROR
Hi, I am getting an error stating "Argument passed to call that takes no arguments". I want this Apple Watch App to measure and store RR Intervals from the PPG sensor on the Apple Watch for Heart Rate Variability calculations. Please help me fix this, I can't figure it out. Here is my code: heartbeatQuery = HKHeartbeatSeriesQuery(predicate: predicate, dataReceivedHandler: { (query, timeSinceLastBeat, ended, error) in // Switch to main thread for UI updates DispatchQueue.main.async { if let error = error { print("Heartbeat query error: (error.localizedDescription)") self.fetchErrorMessage = "Heartbeat query error: (error.localizedDescription)" // Consider stopping the workout session if the query fails critically // self.stopWorkoutSession() return } if ended { print("Heartbeat query indicates series ended.") } // Append valid RR intervals if timeSinceLastBeat > 0 { self.rrIntervals.append(timeSinceLastBeat) self.beatCount += 1 } } // End DispatchQueue.main.async }) // End query data handler // --- END OF PROBLEMATIC INITIALIZER --- // Execute the query if it was created successfully It recommends the fix as removing this part: '(predicate: predicate, dataReceivedHandler: { (query, timeSinceLastBeat, ended, error) in // Switch to main thread for UI updates DispatchQueue.main.async { if let error = error { print("Heartbeat query error: (error.localizedDescription)") self.fetchErrorMessage = "Heartbeat query error: (error.localizedDescription)" // Consider stopping the workout session if the query fails critically // self.stopWorkoutSession() return } if ended { print("Heartbeat query indicates series ended.") } // Append valid RR intervals if timeSinceLastBeat > 0 { self.rrIntervals.append(timeSinceLastBeat) self.beatCount += 1 } } // End DispatchQueue.main.async })' But after I remove that it says "Cannot assign value of type 'HKHeartbeatSeriesQuery.Type' to type 'HKHeartbeatSeriesQuery'" PLEASE HELP ME Thanks
0
0
112
Apr ’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
251
Mar ’25
Stale Issues, refreshAllObjects() is not working
Hi Experts, Could you please help. Issue at high level: After Editing a View contains a Table entries, saved and hit back button to display View, Table entries are duplicated or displaying previous and current entries together. Here is my Issue in detailed. List view display, clicking on any row, would navigate to DisplayView of a record. I am displaying a table in DisplayView. DisplayView contains "row" as parameter, and it must be initialized in "init" method, where I use row.key and fetch another table (say ColorTab) using Color.Key. DisplayView contains "NavigationView", with Edit button. it displays fetched Colors. example Red and Green. when user click on Edit, it takes to EditPage. user can remove / add colors. Once user made changes, saved and hit back button. Table entries are duplicated or showing previous and current entries. Options tried, a) init method is only triggering 1st time, not triggering when back button clicked, I failed to use FetchRequest outside of init method, I tried on OnAppear too. i didn't trigger. b) Failed to use FetchRequest inside of var Body too. c) tried using viewContext.refreshAllObjects() .. it is not refreshing the table. Could you please help if there is solution for the issue. Thanks, Bhanu
0
0
84
May ’25
The behavior of the app using the Promises library changes between Xcode 15.4 and Xcode 16.2.
I’m creating code that performs asynchronous processing using the Promises library (https://github.com/google/promises). In this context, when building the app in Xcode 15.4 and Xcode 16.2, the behavior differs between the two. I’m using version 2.1.1 of the library. Also, I’ve tried using the latest version, 2.4.0, but the result was the same. Has anyone encountered the same issue or know an effective solution? Here's a simple code that reproduces this issue. @IBAction func tapButton(_: UIButton) { _ = getInfo() } func getInfo() -> Promise<Void> { Promise(on: .global(qos: .background)) { fulfill, _ in self.callApi() .then { apiResult -> Promise<ApiResult> in print("\(#function), first apiResult: \(apiResult)") return self.callApi() // #1 } .then { apiResult in print("\(#function), second apiResult: \(apiResult)") // #2 fulfill(()) } } } func callApi() -> Promise<ApiResult> { Promise(on: .global(qos: .background)) { fulfill, _ in print("\(#function), start") self.wait(3) .then { _ in let apiResult = ApiResult(message: "success") print("\(#function), end") fulfill(apiResult) } } } struct ApiResult: Codable { var message: String enum CodingKeys: String, CodingKey { case message } } The Swift Language version in the build settings is 5.0. The console output when running the above code is as follows: When built with Xcode 15.4: 2025/03/21 10:10:46.248 callApi(), start 2025/03/21 10:10:46.248 wait 3.0 sec 2025/03/21 10:10:49.515 callApi(), end 2025/03/21 10:10:49.535 getDeviceInfo(), first apiResult: ApiResult(message: "success") 2025/03/21 10:10:49.535 callApi(), start 2025/03/21 10:10:49.536 wait 3.0 sec 2025/03/21 10:10:52.831 callApi(), end 2025/03/21 10:10:52.832 getDeviceInfo(), second apiResult: ApiResult(message: "success") The process proceeds from #1 to #2 after completing the code comment in #1. When built with Xcode 16.2: 2025/03/21 09:45:33.399 callApi(), start 2025/03/21 09:45:33.400 wait 3.0 sec 2025/03/21 09:45:36.648 callApi(), end 2025/03/21 09:45:36.666 getDeviceInfo(), first apiResult: ApiResult(message: "success") 2025/03/21 09:45:36.666 callApi(), start 2025/03/21 09:45:36.666 wait 3.0 sec 2025/03/21 09:45:36.677 getDeviceInfo(), second apiResult: Pending: ApiResult 2025/03/21 09:45:39.933 callApi(), end The process does not wait for the code comment in #1 to finish and outputs the #2 print statement first. Additionally, even with Xcode 16.2, when changing the #2 line to "print("(#function), second apiResult: (apiResult.message)")", the output becomes as follows. From this, it seems that referencing the ApiResult type, which is not a String, might have some effect on the behavior. 2025/03/21 10:05:42.129 callApi(), start 2025/03/21 10:05:42.131 wait 3.0 sec 2025/03/21 10:05:45.419 callApi(), end 2025/03/21 10:05:45.437 getDeviceInfo(), first apiResult: ApiResult(message: "success") 2025/03/21 10:05:45.437 callApi(), start 2025/03/21 10:05:45.437 wait 3.0 sec 2025/03/21 10:05:48.706 callApi(), end 2025/03/21 10:05:48.707 getDeviceInfo(), second apiResult: success Thank you in advance
0
0
158
Mar ’25
ncorrect Beta Xcode Error
Unable to Submit iOS App for App Review Due to Incorrect Beta Xcode Error I'm encountering an issue when trying to submit a new build of my iOS app to the App Store. The app launches from TestFlight without any problems, but when attempting to submit it for App Review, I get the following error: "This build is using a beta version of Xcode and can’t be submitted." However, I'm not using a beta version of Xcode. I've tested this with both the public releases of Xcode 16.3 and 16.2. The build logs show no issues with the SDK or Platform versions, but in App Store Connect, the metadata is displaying the following: Build SDK: $(SDK_PRODUCT_BUILD_VERSION) Build Platform: $(PLATFORM_PRODUCT_BUILD_VERSION) any suggestion would be greatly appreciated!
0
0
45
May ’25
Run on multiple simulators
I am developing a game that has 3 team members. I can manually start up 3 simulators and run the game for developing/testing but seem like there should be a simple way to click build/run and have it launch on all three automatically. Does anyone know how to do this or if its even possible without writing some scripts?
0
0
70
Mar ’25
Followed docs for "Local Package", how to add to 2nd project?
I have a couple apps in one git repository. I'd like to have a Swift package in that repo as well, shared by apps. In other words, I don't want a separate repo for the Swift package. I followed the instructions here: https://developer.apple.com/documentation/xcode/organizing-your-code-with-local-packages It seems to work. I can write code like this in my app: import MyLocalPackage func foo() { myLocalPackageFunc() } I notice that the package is not listed under Project > MyApp > Package Dependencies. I don't really care, as long as I can reuse code between apps. But when I try to add this package code to a 2nd app, I'm at a loss. I tried "Add Package Dependencies" and "Add Local", but that creates a different looking setup than the 1st app. The code is browsable in the project navigator. And when I try to build it says "Missing package product 'MyLocalPackage'. The documentation linked above, which I used for the 1st app, does a "New > Package". I don't want a new package. How can I connect the existing one?
0
0
99
May ’25
Breakpoint on Runtime Issue os_log_fault_default_callback
The app stops on the breakpoint when "All Runtime Issues" is added. If I disable the breakpoint, the app runs normally. Is there a new project setting to avoid this breakpoint from being set. It does not appear to be a valid error. I am running Xcode 16.2. I edited the "Type" field in the breakpoint box. This occurs with the "System Frameworks" option only.
0
2
166
Apr ’25
{Project}-LinkMap-normal-arm64.txt changed?
I upgraded xcode to 16.2 and found that the txt file generated by Write Link Map File is different from before, no longer containing detailed data. So, how to set it up to obtain the same link map file as the previous xcode version. # Path: /Users/....../xxx.app/__preview.dylib # Arch: arm64 # Object files: [ 0] linker synthesized # Sections: # Address Size Segment Section 0x00004000 0x00000000 __TEXT __text # Symbols: # Address Size File Name
0
0
90
Mar ’25
iOS Simulator Error: UnityFramework Incompatible Platform
Hey everyone, I'm encountering an issue when trying to run my iOS application, which integrates a Unity project, on the iOS Simulator. I'm consistently getting a dlopen error 232 related to UnityFramework.framework. The full error message is: Error loading ...UnityFramework.framework/UnityFramework (232): dlopen(...UnityFramework.framework/UnityFramework, 0x0109): tried: '...UnityFramework.framework/UnityFramework' (mach-o file (...UnityFramework.framework/UnityFramework), but incompatible platform (have 'iOS', need 'iOS-sim')) It seems like the UnityFramework.framework is built for a physical iOS device (ARM architecture), but the simulator requires a different architecture (x86_64 for Intel Macs or arm64 for Apple Silicon Macs). I've already tried: Cleaning the build folder in Xcode. Checking the "Frameworks, Libraries, and Embedded Content" settings in my target's General tab. Could anyone provide guidance on how to properly configure my Unity build or Xcode project to ensure UnityFramework.framework includes the necessary simulator architectures? Any specific build settings in Unity or Xcode, or steps to re-export/re-integrate the framework, would be greatly appreciated! Thanks in advance for your help!
0
0
66
Jul ’25