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

Xcode Documentation

Posts under Xcode subtopic

Post

Replies

Boosts

Views

Activity

A Summary of the WWDC25 Group Lab - Developer Tools
At WWDC25 we launched a new type of Lab event for the developer community - Group Labs. A Group Lab is a panel Q&A designed for a large audience of developers. Group Labs are a unique opportunity for the community to submit questions directly to a panel of Apple engineers and designers. Here are the highlights from the WWDC25 Group Lab for Developer Tools. Will my project codebase be used for training when I use Xcode's intelligent assistant powered by cloud-based models? When using ChatGPT without logging in, your data will not be used to improve any models. If you log in to a ChatGPT account, this is based on your ChatGPT account settings, which allows you to opt-out (it defaults to on). When using Xcode with accounts for other model providers, you should check with the policies of your provider. And finally, at no point will any portion of your codebase be used to train or improve any Apple models. We'd love to make our SwiftUI Previews (and soon, Playgrounds) as snappy as possible. Is there any way to skip certain build steps, such as running linters? It seems the build environment is exactly the same (compared to a debug build), but maybe there's a trick. Starting with Xcode 16, SwiftUI previews use the exact same build artifacts as the regular build. The new Playgrounds support in Xcode 26 uses these build artifacts too. Shell script build phases are the most common thing that introduces extra build time, so as a first step, try turning off all shell script build phases (like linters) to get an idea if that’s the issue. If those build phases add significant time to your build, consider moving some of those phases into asynchronous steps, such as running linters before committing instead of on every build. If you do need a shell script build phase to run during your build, make sure to explicitly define the input and output files, as that is a huge way to improve your build performance. Are we able to provide additional context for the models, like coding standards? Documentation for third party dependencies? Documentation on your own codebase that explains things like architecture and more? In general, Xcode will automatically search for the right context based on the question and the evolving answer, as the model can interact multiple times with your project as it develops an answer. This will automatically pick up the coding style of the code it sees, and can include files that contain architecture comments, etc. Beyond automatic context, you can manually attach other documents, even if they aren't in your project. For example, you could make a file with rules and ideas and attach it, and it will influence the response. We are very aware of other kinds of automatic context like rule files, etc, though Xcode does not support these at this time. Once ChatGPT is enabled for Coding Intelligence in Xcode 26, and I sign into my existing ChatGPT account, will the ChatGPT Coding Intelligence model in Xcode know about chat conversations on Xcode development done previously in the ChatGPT Mac app? Xcode does not use information from other conversations, and conversations started in Xcode are not accessible in the web UI or ChatGPT app. Is there a plan to make SwiftUI views easier to locate and understand in the view hierarchy like UIKit views? SwiftUI uses a declarative paradigm to define your user interface. That allows you to specify what you want, with the system translating that into an efficient representation at runtime. Unlike traditional AppKit and UIKit, seeing the runtime representation of SwiftUI views isn't sufficient in order to understand why it's not doing what you want. This year, we introduced a SwiftUI Instrument that shows why things are happening, like view re-rendering. Is it possible to use the AI chat with ChatGPT Enterprise? My company doesn't allow us to use the general ChatGPT, only the enterprise version they have setup that prevents data from being leaked Yes, Xcode 26 supports logging into any existing ChatGPT account, including enterprise accounts. If that does not meet your needs, you can also setup a local server that implements the popular chat completions REST API to talk to your enterprise account how you need. Now that Icon Composer is here, how does it complement or replace existing vector design tools such as Sketch for icon design? Icon Composer complements your existing vector design tools. You should continue to create your shapes, gradients, and layers in another tool like Sketch, and compose the exported SVG layers in Icon Composer. Once you bring your layers into Icon Composer, you can then use it to influence the translucency, blur, and specular highlights for your icon. What’s one feature or improvement in the new Xcode that you personally think developers will love, but might not immediately discover? Maybe something tucked away or quietly powerful that’s flown under the radar so far? One feature we're particularly excited about is the new power profiler for iOS, which gives you further insights into the energy consumption of your app beyond what was possible with the energy instrument previously. You can learn more about how to use this instrument and how it can help you greatly reduce your apps battery usage in the documentation, as well as the session Profile and optimize power usage in your app. There were also improvements in accessibility this year with Voice Control, where you can naturally speak your Swift code to Xcode, and it understands the Swift syntax as you speak. To see it in action, take a look at the demonstration in What’s new in Xcode 26. We have a software advisory council that is very sensitive to having our private information going to the cloud in any form. What information do you have to help me guide Xcode and Apple Intelligence through the acceptance process? One thing you can do is configure a proxy for your enterprise that implementing the popular Chat Completions API endpoint protocol. When using a model provider via URL, you can use your proxy endpoint to inspect the network traffic for anything that you do not want sent outside of your enterprise, and then forward the traffic through the proxy to your chosen model provider. Are there list of recommended LLMs to use with Xcode via Intelligence/Local? I've tried Gemma3-12B, but.. I hope there are better options? Apple doesn't have a published list of recommended local models. This is a fast-moving space, and so a recommendation would become out of date very quickly as new models are released. We encourage you to try out the local model support in Xcode 26 with models that you find meet your needs, and let us and the community know! (continued below)
1
0
807
Jul ’25
Cannot assign build target to usdz file
I’m working in the app playground and want to add my usdz file but when i drag drop the file to my main folder i cannot add target to it which leads to a resource not found error while I build my app. It was working on a normal xcode project but while transitioning to app playground it is not working. How can I fix this issue?
0
0
387
Jan ’25
Build input file cannot be found
I have a project that imports SPM swift-navigation which in-turn imports SPM https://github.com/pointfreeco/swift-perception I have a test target it builds and runs with no issues in XCode however if I run with xcodebuild i get the below error (I have done basics removed derived data etc.) ❌ error: Build input file cannot be found: '/Users/chris/mtp-iOS-retail-iPhone/build/Build/Products/Debug/PerceptionMacros'. Did you forget to declare this file as an output of a script phase or custom build rule which produces it? (in target 'Perception' from project 'swift-perception')
0
0
398
Dec ’24
Download container not success on iOS 17 / Xcode 15
I try to use "Download container" on "Devices and Simulators". But on iOS 17, xcappdata file size is 4KB and ''AppData" folder is empty. On iOS 15, xcappdata file size is 2MB and success downloaded. Xcode show these error when I unplug iOS 17 and plugin iOS 15. The system failed to get a list of files on the remote device. Domain: com.apple.dt.CoreDeviceError Code: 7001 User Info: { DVTErrorCreationDateKey = "2023-12-12 07:39:24 +0000"; NSFilePath = ""; } -- Unknown response: { XPCErrorDescription => Connection interrupted } Domain: com.apple.dt.remoteservices.error Code: -1 -- System Information macOS Version 14.2 (Build 23C64) Xcode 15.1 (22502) (Build 15C65) Timestamp: 2023-12-12T15:39:24+08:00 PS. I had turn on [Airplane mode] on iOS 17.
5
0
2.9k
Dec ’24
Fully symbolicate crash log received from App Review
A new app I submitted to review was rejected due to a crash. I cannot reproduce the crash, even running it on exact the same device model used by App Review. So I need to symbolicate the ips crash log they provided me. Using MacSymbolicate and the archive located using Xcode Organizer I was able to partially symbolicate the crash log. To fully symbolicate the crash log, however, according to MacSymbolicate, I would need two more symbol files, which can't be located, because they relate to system frameworks (SwiftData and _SwiftData_SwiftUI). I have tried to follow the instructions provided on https://developer.apple.com/documentation/xcode/adding-identifiable-symbol-names-to-a-crash-report but I had no success. It seems to me that the instructions contained there for symbolicating using Xcode do not apply for crash logs downloaded from appstoreconnect after an App Review rejection. Also, the instructions seem to be out of date, e.g. "To symbolicate in Xcode, click the Device Logs button in the Devices and Simulators window.": This button was replaced by "Open Recent Logs", which opens what seems to be a different window (according to some online research). Is it possible to fully symbolicate such an ips file downloaded from App Review team? If so, how can this be achieved? Thanks This is how the partially symbolicated crash log looks like: Hardware Model: iPad13,16 ... AppStoreTools: 16C5031b Code Type: ARM-64 (Native) Role: Foreground Parent Process: launchd [1] ... OS Version: iPhone OS 18.2.1 (22C161) Release Type: User Report Version: 104 Exception Type: EXC_BREAKPOINT (SIGTRAP) Exception Codes: 0x0000000000000001, 0x000000018c100e2c Termination Reason: SIGNAL 5 Trace/BPT trap: 5 Terminating Process: exc handler [6226] Triggered by Thread: 0 Thread 0 name: Dispatch queue: com.apple.main-thread Thread 0 Crashed: 0 libswiftCore.dylib 0x18c100e2c _assertionFailure(_:_:file:line:flags:) + 264 1 SwiftData 0x24fa6f3b4 0x24fa4a000 + 152500 ... 14 SwiftData 0x24fa89700 0x24fa4a000 + 259840 15 _SwiftData_SwiftUI 0x250cd34e4 0x250cce000 + 21732 16 _SwiftData_SwiftUI 0x250cd1364 0x250cce000 + 13156 17 XXX 0x10451f7ac closure #1 in closure #2 in closure #1 in PaymentsMonthView.body.getter (in XXX) (PaymentsMonthView.swift:119) + 1324972 18 XXX 0x10451ea14 closure #1 in PaymentsMonthView.body.getter (in XXX) (PaymentsMonthView.swift:99) + 1321492 19 SwiftUICore 0x24fd5d304 specialized ViewBodyAccessor.updateBody(of:changed:) + 1240 20 SwiftUICore 0x24fd5cd4c closure #1 in DynamicBody.updateValue() + 600 21 SwiftUICore 0x24fd5c008 DynamicBody.updateValue() + 928 ... ... Thread 0 crashed with ARM Thread State (64-bit): x0: 0x000000011128b208 x1: 0x0000000200000003 x2: 0x0000000000000001 x3: 0x00000001130be744 x4: 0xfffffffffe1cd413 x5: 0x0000000000000013 x6: 0x0000000000000020 x7: 0x00000000000007fc x8: 0xfffffffe00000000 x9: 0x0000000200000003 x10: 0x0000000000000003 x11: 0x0000000000000000 x12: 0x00180080004019e0 x13: 0x00100000004017fc x14: 0x00000001046d23e0 x15: 0x00000000000001e0 x16: 0x952d0001130bde00 x17: 0x00000000020007fc x18: 0x0000000000000000 x19: 0x000000024fb661e0 x20: 0x000000011128b200 x21: 0x0000000000000000 x22: 0x000000000000000b x23: 0x000000000000001d x24: 0x0000000000000040 x25: 0x000000024fb64790 x26: 0xf000000000000977 x27: 0x0000000000000000 x28: 0x000000024fb64750 fp: 0x000000016ba188f0 lr: 0x000000018c100e2c sp: 0x000000016ba18820 pc: 0x000000018c100e2c cpsr: 0x60001000 far: 0x0000000000000000 esr: 0xf2000001 (Breakpoint) brk 1 Binary Images: 0x1043dc000 - 0x104633fff Locador arm64 <78fc8961d731321ba0c8f9bb051109c5> /private/var/containers/Bundle/Application/FE1C10C5-49C1-4022-860A-6C3515E2F8BB/Locador.app/Locador 0x1047fc000 - 0x104807fff libobjc-trampolines.dylib arm64e <be05652226b13a508ad193ac99fcdc9c> /private/preboot/Cryptexes/OS/usr/lib/libobjc-trampolines.dylib 0x18c0c9000 - 0x18c66afff libswiftCore.dylib arm64e <e9b1dc6b7fef3bbbb083f4e8faaa53df> /usr/lib/swift/libswiftCore.dylib 0x24fa4a000 - 0x24fb88ff7 SwiftData arm64e <90275b26954b349996ff44ada39f0358> /System/Library/Frameworks/SwiftData.framework/SwiftData 0x250cce000 - 0x250cebff8 _SwiftData_SwiftUI arm64e <d250fe30854c3f1c85fc8a89dec5d484> /System/Library/Frameworks/_SwiftData_SwiftUI.framework/_SwiftData_SwiftUI 0x24fcf8000 - 0x2508d4fff SwiftUICore arm64e <647b91f1620d3741bd708f9f26b5674b> /System/Library/Frameworks/SwiftUICore.framework/SwiftUICore 0x1ba831000 - 0x1ba874fff AttributeGraph arm64e <5eeff865ac123665a9dba9d612eb0e9f> /System/Library/PrivateFrameworks/AttributeGraph.framework/AttributeGraph 0x19220e000 - 0x1934d0fff SwiftUI arm64e <0b283f5831ae385f9c8ff128fd0e30b8> /System/Library/Frameworks/SwiftUI.framework/SwiftUI 0x1902f8000 - 0x19220dfff UIKitCore arm64e <f80c6ee450ca346f90ebbb3da9817503> /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore 0x18dadc000 - 0x18e01ffff CoreFoundation arm64e <6a60be13e6573beca9acba239ae29862> /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation 0x1dacec000 - 0x1dacf4fff GraphicsServices arm64e <f4e7a885f4913721862dc57403f4d821> /System/Library/PrivateFrameworks/GraphicsServices.framework/GraphicsServices 0x1b3d31000 - 0x1b3db413f dyld arm64e <4eb7459fe23738ce82403f3e2e1ce5ab> /usr/lib/dyld 0x0 - 0xffffffffffffffff ??? unknown-arch <00000000000000000000000000000000> ??? 0x1df105000 - 0x1df13efe3 libsystem_kernel.dylib arm64e <e3965df1a3a3374a94eaf86739c5cc8e> /usr/lib/system/libsystem_kernel.dylib 0x18c6e1000 - 0x18d411fff Foundation arm64e <7274dde368d634a08e677726e1265e80> /System/Library/Frameworks/Foundation.framework/Foundation 0x2185fc000 - 0x218608ff3 libsystem_pthread.dylib arm64e <b2fe0dfa67de3d7282676c42073e0e8d> /usr/lib/system/libsystem_pthread.dylib 0x1958ce000 - 0x19594dffb libsystem_c.dylib arm64e <8d425c7257c93e54a1e1e243cbdfc446> /usr/lib/system/libsystem_c.dylib EOF
2
0
380
Jan ’25
Getting a datagram too large error while writing back to NEAppProxyUDPFlow
I am trying to setup an extension using DNSProxyProvider that intercepts the DNS traffic on UDP and inserts our custom device identifier and send it to our custom DNS Server which gives us the response which I forward to the requesting client. I have been able to append the identifier with the domain name when sending out request to our custom DNS and I am getting the response back just fine but when I try to write the response to the udpflow I get this error in Console Logs. Error Domain=NEAppProxyFlowErrorDomain Code=9 "The datagram was too large" UserInfo={NSLocalizedDescription=The datagram was too large} Here is what I have tried so far. Truncating the datagram size to less than 10 bytes. Sending in dummy Data object while trying to write to the flow. Double checking the Signing and Capabilities, for Targets, the App and Network Extension. Attached below is code from my NEDNSProxyProvider. The DNS request is process in the handleNewFlow function which calls processUDPFlow override func handleNewFlow(_ flow: NEAppProxyFlow) -> Bool { if flow is NEAppProxyTCPFlow { NSLog("BDDNSProxyProvider : Is TCP Flow...") } else if let udpFlow = flow as? NEAppProxyUDPFlow { NSLog("BDDNSProxyProvider: handleNewFlow : \(udpFlow)") processUDPFlow(udpFlow) // < -- } return true } In the code below I concatenate domain name in the request with deviceId and send it to our server. Also have the Logs lines in, please ignore them. // Read incoming DNS packets from the client self.udpAppProxyFlow = udpFlow udpFlow.readDatagrams { datagrams, error in if let error = error { NSLog("Error reading datagrams: \(error.localizedDescription)") return } guard let datagrams = datagrams else { NSLog("No datagrams received.") return } // Forward each DNS packet to the custom DNS server for (index, packet) in datagrams.enumerated() { let dnsMessage = self.parseDNSMessage(from: packet.0) NSLog("tDatagram Header: \(dnsMessage.header)") for question in dnsMessage.questions { NSLog("tDatagram Question: \(question.name), Type: \(question.type), Class: \(question.klass)") } for answer in dnsMessage.answers { NSLog("tDatagram Answer: \(answer.name), Type: \(answer.type), Data: \(answer.data)") } let oldDomain = self.extractDomainName(from: packet.0)! let packetWithNewDomain = self.replaceDomainName(in: packet.0, with: "827-\(oldDomain)") // func to append device ID NSLog("Packet's new domain \(self.extractDomainName(from: packetWithNewDomain ?? packet.0) ?? "Found nil")") self.sendToCustomDNSServer(packetWithNewDomain!) { responseDatagram in guard let responseDatagram = responseDatagram else { NSLog("Failed to get a response from the custom DNS server") return } let tDatagram = (responseDatagram, packet.1) udpFlow.writeDatagrams([tDatagram]) { error in if let error = error { NSLog("Failed to write DNS response back to client: \(error)") } else { NSLog("Successfully wrote DNS response back to client.") } } } } // Continue Reading Datagrams - DO NOT REMOVE! self.processUDPFlow(udpFlow) } } Following is the function I use to replace domainName // Ensure the datagram is at least the size of the DNS header guard datagram.count > 12 else { NSLog("Error : Invalid datagram: Too small to contain a DNS header") return nil } NSLog("BDLine 193") // Start reading after the header (12 bytes) var offset = 12 // Parse the original domain name while offset < datagram.count { let length = Int(datagram[offset]) // Get the length of the next label offset += 1 // Check for the null terminator (end of domain name) if length == 0 { // Domain name ends here break } // Validate that the length is within bounds guard offset + length <= datagram.count else { NSLog("Error : Invalid datagram: Domain name length exceeds packet size") return nil } // Skip over this label offset += length } Everything is falling into place other than this last Error I get when I try to write back to flow. What am I missing here and how can I resolve this issue? Any help would be appreciated. Thanks
1
0
353
Jan ’25
Preview won't load on Mac-OS/Multiplatform Swift-App
Hey, I wanted to create a Mac-OS application. Normally I only code iPhone apps. But as soon as I want to display anything on the preview, it loads, just as normal, and then the throbber/progress indicator disappears and the preview canvas stays gray like it used to be before. I also don't get any error messages. Only one time after trying different things I got one message saying: "Could not launch Preview Shell." and "Could not create FBSOpenApplicationService." I also searched for a few solutions and tried some but none of them seemed to work. In the DiagnosticReports were some files of the time but I didn't seem to find anything helpful in there and they don't appear when I reopen my project or switch from PreviewMode "My Mac" to "iPhone 16 Pro". When I launch the app on a simulator it works perfectly fine but this is quite annoying. Thanks for trying to help me!
1
0
382
Jan ’25
Xcode cannot deploy to Apple Watch SE even once
Got a Watch SE recently only to find out that I can't deploy apps to it from Xcode even once. I always get the message "Connecting to Watch" and "Reconnecting to Watch". Tried with Xcode 16 and then with 16.2. Same result. For countless times, I have tried every possible solution posted on this forum and elsewhere but to no avail. Filed a feedback, no reply yet from Apple. Looks like something is seriously broken. Please fix this. FB16122816
0
0
397
Jan ’25
Metal GPU capture
I'm trying to get performance information in a Metal cpp program. I'm using Xcode 14.2. In the Counters tab, only the inscription No Data appears. What could be the problem, what am I doing wrong? The libraries Metal, MetalKit, AppKit are connected. The code is taken from the Apple website from the Learn Metal with C++ section.
1
0
488
Dec ’24
Is "remotepairingd" Xcode-related?
Is remotepairingd part of Xcode? It seems to be stuck using 119% CPU. This may have started when I recently paired my new Apple Watch with Xcode - or maybe that is a coincidence. The console is full of: error 16:40:26.237601+0000 remotepairingd socket-1: No more data can be received, connection was closed
0
0
596
Dec ’24