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

Xcode Documentation

Posts under Xcode subtopic

Post

Replies

Boosts

Views

Activity

I have a target that dynamically generates the modulemap when new headers are added. Is there a way to specify for the target that uses that modulemap to wait for this modulemap file?
I have two targets: Library and Generate-Library-Modulemap I use a modulemap to help bridge the Objective-C++ code to Swift. Generate-Library-Modulemap is set up to run only when new headers are added (this is done reliably through some trickery). This seems to work, but the problem is that if I add Generate-Library-Modulemap as a dependency of Library, it seems that by the time Library Generate-Library-Modulemap is run, the Library target has already loaded up an outdated modulemap file. The result is my first attempt to build after adding headers is that the framework fails, as even though the modulemap was generated, it was not attached to the framework. The second attempt succeeds as it reads the updated modulemap. Is there any way to force Xcode to run the Generate-Library-Modulemap step before starting on Library? Or perhaps attach the modulemap after the fact?
0
0
77
Jun ’25
Random "<unknown>:0: warning: default will never be executed" Xcode warning
Hello! I'm experiencing a persistent SwiftCompile warning that I haven't been able to resolve for several months: <unknown>:0: warning: default will never be executed Observations: Appears randomly across different files during the build. No source location or line highlighting is provided. Persists across clean builds and project reopenings. Occurs in both Xcode Cloud and local builds. What I’ve tried: Ensuring all switch statements on enums explicitly handle every case. Removing default cases from fully covered enum switches. Refactoring optional enum handling (e.g., using if let instead of switch). None of these resolved the issue. Any guidance would be greatly appreciated! Project details: Xcode: 16.2 Swift: 6 iOS Target: 17.0+ UI: SwiftUI-only (no UIKit) Dependencies: SwiftPM
0
1
304
Mar ’25
Objective-C headers build fine with swift but not with Xcode
On my M4 Mac running macOS 15.5 using Xcode 16.4 & Xcode CLT 16.4, Swift code in my Swift Package Manager 5.9 project (https://github.com/mas-cli/mas) builds fine against some included Objective-C headers via the following command line: swift build -c release But cannot find modules for the included Objective-C headers when building inside Xcode 16.4 or with the following command line on the same Mac: xcodebuild -scheme mas -configuration Release -destination platform=macOS,arch=arm64,variant=macos The error is: Sources/mas/AppStore/AppleAccount.swift:9:16: error: no such module 'StoreFoundation' How can I get Xcode / xcodebuild to work? Note that the project is normally built by running: Scripts/build which runs: swift build -c release after running the following script, which must be run before any build (swift, Xcode, or xcodebuild) because it generates a necessary file (Sources/mas/Package.swift): Scripts/generate_package_swift I've tried moving the Objective-C headers into include subfolders of their existing module folders, using double quotes instead of angle brackets for the #import statements, having module.modulemap files in the include subfolders or their parent module folder, and moving the module folders one level up the file hierarchy, to no avail. I've also tried various changes to the root-level Package.swift (not the generated one deeper in the hierarchy, which isn't inclined in the build configuration), like making separate library targets for each of the Objective-C modules, various swiftSettings & linkerSettings, etc. Maybe some of those changes would have helped, but maybe they were in incorrect combinations. Thanks for any help.
0
0
132
May ’25
NSE Filtering Entitlement Rejected Repeatedly – Seeking Advice & Possible Solutions
Hi everyone, I’m facing a major roadblock with my family location tracking app, and I need some advice or guidance from the community. Background Back in 2021, I implemented NSE filtering entitlement to send location-based notifications and retrieve the device's location in return (as suggested by Apple’s technical code support). Over time, I built my app around this entitlement, adding many features that depend on it. When Location Push Service Extension was introduced for iOS 15+, I adapted accordingly: NSE filtering was used for devices below iOS 15 Location Push Service Extension was used for iOS 15+ NSE filtering also played a crucial role in: ✅ Accepting/rejecting location-based notifications ✅ Checking device settings & location permissions (since location push won’t work without proper permissions) The Issue In November 2024, I created a new developer account to change my business entity. Since then, I’ve been requesting the NSE entitlement repeatedly for four months, but Apple keeps rejecting it. Meanwhile, they approved the Location Push Entitlement, but without NSE filtering, I’m forced to rewrite a huge part of my app’s core functionality. I’ve sent multiple emails explaining my use case, but I keep getting rejected without any clear explanation or workaround. My Ask Has anyone faced a similar issue with NSE entitlement? Are there any alternative approaches to achieve the same functionality? Any advice on how to escalate this to Apple or get proper feedback on why it's being rejected? I’ve invested years into this app, and a forced rewrite would take months. Any help, insights, or contacts who could assist would be greatly appreciated! Thanks in advance! 🙏
0
0
64
Mar ’25
Unable to apply stashed changes
I am trying to perform an unstash operation. I RC on the stash to restore, select "Apply Stashed Changes". It then launches a comparison window to allow me to cherrypick the changes I want to include. However, the button along the bottom, "Apply Changes" is grayed out and remains so no matter what I do. Switching stashes, exiting and restarting xcode. TG i made an emergency project backup right before I did the stash, just for a case like this. Bug? Feature?
0
1
57
Apr ’25
C++ Binary Size Increase in Xcode 16 Compared to Xcode 15
I've recently upgraded my project from Xcode 15 to Xcode 16. Without changing any build settings or compiler flags, I noticed that the final executable size has increased significantly when building the same C++ code. Investigation: To investigate further, I compared the Link Map outputs from both versions of Xcode. One key difference I found: The symbol size for std::sort increased from 4,336 bytes (Xcode 15) to 6,084 bytes (Xcode 16) – a ~40% increase. This seems to be part of a broader trend where other standard library symbols are also taking up more space in the binary when built with Xcode 16. Questions: Has Apple Clang or libc++ in Xcode 16 changed the implementation of STL algorithms like std::sort? Are there changes in inlining, template instantiation, or debug info that could explain the increase? Is this expected behavior? If so, is there any guidance on minimizing the binary size regression?
0
0
147
Apr ’25
openURL:options:completionHandler: Simulator Bug
Xcode 16.2. When calling openURL:options:completionHandler: when in the simulator for a link in the app store (for example: http://itunes.apple.com/us/app/slidewords/id503737864?mt=8) behavior is fine for simulated iPads, not for simulated iPhones. When the simulated device is an iPad, the call correctly opens the app store link. When the simulated device is an iPhone, an error message "Safari cannot open the page because the address is invalid." Note: the call works on an an actual iPhone (iPhone SE 3rd generation, unsure about other devices).
0
0
48
Apr ’25
Authentication in UI tests
Hello! I am writing UI tests for an app with OAuth authentication and want to avoid the login screen. I want each developer to store the password and username locally on their machines. The bash script will get the token. I need to access that token from my test target somehow. The idea was to write them to a temporary file that git ignores and access this file from the bundle. But I can't add the file from the build script to the target and make it accessible from the code.
0
0
118
Jun ’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
155
Apr ’25
Xcode 16.2 archive fails to compile XIB
Xcode 16.2 archive fails to compile XIB Xcode Archive command fails most of the time while compiling an XIB which was created in older Xcode. XIB was updated in Xcode 16.2 version also which did not fix this issue. Archive from Xcode app works but Xcode build command fails and no reason shown by the command. ** ARCHIVE FAILED ** The following build commands failed: CompileXIB /Users…/Resources/Nibs/<XIB_NAME>.xib
0
0
135
Apr ’25
SFSpeechRecognizer is not working inside visionOS 2.4 simulator
I know there has been issues with SFSpeechRecognizer in iOS 17+ inside the simulator. Running into issues with speech not being recognised inside the visionOS 2.4 simulator as well (likely because it borrows from iOS frameworks). Just wondering if anyone has any work arounds or advice for this simulator issue. I can't test on device because I don't have an Apple Vision Pro. Using Swift 6 on Xcode 16.3. Below are the console logs & the code that I am using. Console Logs BACKGROUND SPATIAL TAP (hit BackgroundTapPlane) SpeechToTextManager.startRecording() called [0x15388a900|InputElement #0|Initialize] Number of channels = 0 in AudioChannelLayout does not match number of channels = 2 in stream format. iOSSimulatorAudioDevice-22270-1: Abandoning I/O cycle because reconfig pending iOSSimulatorAudioDevice-22270-1: Abandoning I/O cycle because reconfig pending iOSSimulatorAudioDevice-22270-1: Abandoning I/O cycle because reconfig pending iOSSimulatorAudioDevice-22270-1: Abandoning I/O cycle because reconfig pending iOSSimulatorAudioDevice-22270-1: Abandoning I/O cycle because reconfig pending iOSSimulatorAudioDevice-22270-1: Abandoning I/O cycle because reconfig pending SpeechToTextManager.startRecording() completed successfully and recording is active. GameManager.onTapToggle received. speechToTextManager.isAvailable: true, speechToTextManager.isRecording: true GameManager received tap toggle callback. Tapped Object: None BACKGROUND SPATIAL TAP (hit BackgroundTapPlane) GESTURE MANAGER - User is already recording, stopping recording SpeechToTextManager.stopRecording() called GameManager.onTapToggle received. speechToTextManager.isAvailable: true, speechToTextManager.isRecording: false Audio data size: 134400 bytes Recognition task error: No speech detected <--- Code private(set) var isRecording: Bool = false private var recognitionRequest: SFSpeechAudioBufferRecognitionRequest? private var recognitionTask: SFSpeechRecognitionTask? @MainActor func startRecording() async throws { logger.debug("SpeechToTextManager.startRecording() called") guard !isRecording else { logger.warning("Cannot start recording: Already recording.") throw AppError.alreadyRecording } currentTranscript = "" processingError = nil audioBuffer = Data() isRecording = true do { try await configureAudioSession() try await Task.detached { [weak self] in guard let self = self else { throw AppError.internalError(description: "SpeechToTextManager instance deallocated during recording setup.") } try await self.audioProcessor.configureAudioEngine() let (recognizer, request) = try await MainActor.run { () -> (SFSpeechRecognizer, SFSpeechAudioBufferRecognitionRequest) in guard let result = self.createRecognitionRequest() else { throw AppError.configurationError(description: "Speech recognition not available or SFSpeechRecognizer initialization failed.") } return result } await MainActor.run { self.recognitionRequest = request } await MainActor.run { self.recognitionTask = recognizer.recognitionTask(with: request) { [weak self] result, error in guard let self = self else { return } if let error = error { // WE ENTER INTO THIS BLOCK, ALWAYS self.logger.error("Recognition task error: \(error.localizedDescription)") self.processingError = .speechRecognitionError(description: error.localizedDescription) return } . . . } } . . . }.value } catch { . . . } } @MainActor func stopRecording() { logger.debug("SpeechToTextManager.stopRecording() called") guard isRecording else { logger.debug("Not recording, nothing to do") return } isRecording = false Task.detached { [weak self] in guard let self = self else { return } await self.audioProcessor.stopEngine() let finalBuffer = await self.audioProcessor.getAudioBuffer() await MainActor.run { self.recognitionRequest?.endAudio() self.recognitionTask?.cancel() } . . . } }
0
0
161
May ’25
ActivityKit linker error
I have a ContentView in my app which includes the line of code FileUploadProgressAttributes. this struct is defined in a file included in the target FileUploadProgressExtension. and it is an ActivityAttributes. in ContentView I imported FileUploadProgressExtension, and the xcode is able to find the FileUploadProgressAttributes during prebuild. but during build, it gives me Undefined symbols for architecture arm64: "FileUploadProgressExtension.FileUploadProgressAttributes.init(filename: Swift.String) -> FileUploadProgressExtension.FileUploadProgressAttributes the workaround i found is to add the file with the FileUploadProgressAttributes to my app's target, but I'm not sure if this is the right thing to do. When Xcode created the extension for me, it added the extension target as a target dependency of my app. so obviously if i added this file to my app target it makes the extension target pointless. First time working with widgets so I'm not sure if I'm missing something.
0
0
85
May ’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
App Unable to Archive After Xcode Update
Hi! I am having trouble getting my app to build successfully or archive since an xcode update a few months ago. Below is the error that shows in the log. Thank you in advance for any help! Run custom shell script 'Run Script' Failed to package [project folder]. Command PhaseScriptExecution failed with a nonzero exit code
0
0
71
May ’25