Posts under Developer Tools & Services topic

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
808
Jul ’25
Issue with Paying Apple Developer Fee Using Prepaid Card in Cameroon
Hello Apple Developer Community, I am encountering an issue while trying to pay the $119.99 Apple Developer Program fee through the Apple Developer app. I have linked a prepaid card to my Apple ID, which works perfectly fine for other purchases and subscriptions, but I am unable to complete the payment for the developer fee. Here are the details of the issue: Payment Method: Prepaid card connected to my Apple ID. Amount: $119.99 (Apple Developer Program fee). Location: Cameroon. Other Transactions: All other purchases and subscriptions using the same prepaid card have been processed successfully without any issues. When I attempt to pay for the developer fee, the payment doesn’t go through, and I receive an error message (Payment Failed). I’ve verified that my card has sufficient funds and that the information is correctly entered in my Apple ID account settings. Has anyone else faced a similar issue, particularly with prepaid cards or payments in Cameroon? Any advice or guidance on how to resolve this problem would be greatly appreciated. Thanks in advance for your help!
0
0
323
Jan ’25
watchOS app crashing on devices running watchOS 11+
We have a watchOS app in TestFlight that is currently crashing on any device running watchOS 11 and up. I have an older Apple Watch SE that's capped at 10.6.1 that can run the app just fine, but the same exact install on a newer device fails. This started happening after I updated my MacBook to macOS Sequoia and Xcode to 16. In order to get the Watch app to run on the 10.6.1 device, I had to change the Swift Optimization Level from -O to -Osize. I already filed Feedback on this (FB15691116). I've tried so many different things and have come up with nothing to show for it. When I look in the IPS file, I see that the crash point in my code on the watchOS 11 device is at KinesiaUOnWatch`@objc SessionDelegator.session(_:activationDidCompleteWith:error:): 0x3a3f48 <+0>: sub sp, sp, #0x60 0x3a3f4c <+4>: stp x26, x25, [sp, #0x10] 0x3a3f50 <+8>: stp x24, x23, [sp, #0x20] 0x3a3f54 <+12>: stp x22, x21, [sp, #0x30] 0x3a3f58 <+16>: stp x20, x19, [sp, #0x40] 0x3a3f5c <+20>: stp x29, x30, [sp, #0x50] 0x3a3f60 <+24>: add x29, sp, #0x50 0x3a3f64 <+28>: mov x19, x4 0x3a3f68 <+32>: mov x23, x2 0x3a3f6c <+36>: mov x22, x0 0x3a3f70 <+40>: mov w0, #0x0 ; =0 0x3a3f74 <+44>: bl 0x89818 ; symbol stub for: type metadata accessor for Swift.MainActor 0x3a3f78 <+48>: mov x24, x0 0x3a3f7c <+52>: adrp x25, 161 0x3a3f80 <+56>: ldr w25, [x25, #0x654] 0x3a3f84 <+60>: mov x20, x0 0x3a3f88 <+64>: bl 0x8980c ; symbol stub for: static Swift.MainActor.shared.getter : Swift.MainActor 0x3a3f8c <+68>: mov x21, x0 0x3a3f90 <+72>: adrp x0, 166 0x3a3f94 <+76>: add x0, x0, #0xc40 ; lazy protocol witness table cache variable for type Swift.MainActor and conformance Swift.MainActor : Swift.Actor in Swift Incident Identifier: 08E2F667-7965-4C86-B85E-9E2F03EAA963 Beta Identifier: AD390666-55CB-43B3-9B14-BD3E70F456EB Hardware Model: Watch6,1 Process: KinesiaUOnWatch [389] Path: /private/var/containers/Bundle/Application/B571E983-F2B0-40EF-9F0D-8C471CAEB3FB/KinesiaUOnWatch.app/KinesiaUOnWatch Identifier: com.glneurotech.kinesiau.watchapp Version: 5.1.0 (510271) AppStoreTools: 16B39 AppVariant: 1:Watch6,1:11 Beta: YES Code Type: ARM64_32 (Native) Role: Foreground Parent Process: launchd [1] Coalition: com.glneurotech.kinesiau.watchapp [464] Date/Time: 2024-12-03 15:12:51.1876 -0500 Launch Time: 2024-12-03 15:12:50.0000 -0500 OS Version: Watch OS 11.1 (22R585) Release Type: User Report Version: 104 Exception Type: EXC_BREAKPOINT (SIGTRAP) Exception Codes: 0x0000000000000001, 0x000000002053dd4c Termination Reason: SIGNAL 5 Trace/BPT trap: 5 Terminating Process: exc handler [389] But, as I said, this exact app runs just fine on an older watchOS 10.6.1 device. Has anyone else encountered something like this, or have any ideas on stuff to try?
1
0
594
Dec ’24
Fairplay 4.x Certificate Revocation
I created a fairplay.cer file using the below commands : openssl genrsa -out private_key.pem 1024 openssl req -new -key private_key.pem -out request.csr Here, I manually entered the Country, Organization, etc. I was supposed to use the below commands to make the same : openssl genrsa -aes256 -out privatekey.pem 1024 opensslreq-new-sha1-keyprivatekey.pem-outcertreq.csr-subj "/CN=SubjectName /OU=OrganizationalUnit /O=Organization /C=US" Owing to this, I am unable to create a .p12 file through Keychain Access. I thus want to generate a new fairplay.cer file for Fairplay 4.x. I want to revoke the certificate in order to generate a new one (as it has a limit of 1 certificate for Fairplay) Requesting developer support from Apple. Have raised multiple requests over the past 4 days.
0
0
400
Dec ’24
Cannot create Expo prebuild
I'm creating a clean project in Expo without Typescript. I run the command “npx expo prebuild” normally, but when I run the command “npx expo run:ios” I get the error “PhaseScriptExecution [CP-User]\ Generate\ Specs /Users/bogdanlyamzin/Library/Developer/Xcode/DerivedData/testapp-gbckopevfunjmtanprbgmojuogrr/Build/Intermediates. noindex/Pods.build/Debug-iphonesimulator/ReactCodegen.build/Script-46EB2E0001C6B0.sh (in target 'ReactCodegen' from project 'Pods')”. Can you please tell me how to fix it? Translated with DeepL.com (free version)
1
0
395
Dec ’24
Create C++ static library with Swift interoperability for iOS. How?
Hello all! My application written with C++ for iOS. Want to make some functionality in static library for the purpose of reuse it in different C++ projects. Want to make universal library for using StoreKit2. Global idea is to wrap StoreKit2 Swift out with CPP interoperability. Now trying to make clear for my self how to create C++ static library with Swift interoperability for iOS in XCode. There are only Objective-C option when you creating static library in XCode for iOS. Is it correct: Create Static Library with Objective-C in XCode Remove all default Objective-C files Add C++ files Add C++/Swift interoperability in build settings Add swift classes Beside all of it some questions: When C++ static library contain Swift code with interoperability will it require some special settings for project (Swift standard lib or some other settings)? Or it could be used like any other C++ libraries? What is the optimal build settings in this case to reduce dependencies when using it different projects? Is there any examples of the same approach for iOS development?
0
0
379
Jan ’25
Debugging State Restoration
I'm adding state restoration to an old iOS app that does not use scenes or storyboards. Creating of view controllers is entirely programmatic. I found the restorationArchiveTool for iOS which is very helpful. However it also refers to a StateRestorationDebugLogging mobileconfig profile that is supposed to turn on additional debug logging when restoring state. https://download.developer.apple.com/ios/restorationarchivetool_for_ios_7/StateRestorationDebugLogging.mobileconfig However I do not seem to be able to install it to either a simulator or my device. Does anyone know if this profile is still valid? If so, how do I install it? Tom Aylesworth
0
0
344
Jan ’25
Updating EditButton
I am trying to update the EditButton after deleting rows in a List, but its title doesn't change. I have sent an update event via a publisher that applies the mode change based on the number of items remaining in the list. Here's the update event handler: .onReceive(updateViewPublisher, perform: { _ in self.editMode?.wrappedValue = textFileData.textFiles.count == 0 ? .inactive : .active update += 1 })``` The edit mode is changed to inactive when the list is empty, but the button continues to display 'done'. If I adda new list item it remains set to 'done' and the delete control is displayed against the new item. I have seen loads of posts about this on various sites, but no solutions. I am trying this on Xcode 16.2 and IOS 18.2. If someone from Apple sees this, a reply would be most welcome.
2
0
311
Dec ’24
Xcode Git integration destroyed my git local repository
This is using Xcode 16.2 (16C5032a), MacOS 15.2, on MacbookPro 16 M1 Pro. I have two repositories, one for an application and another one for a framework. The repository framework is integrated into the application one as git submodule. I was going to push the submodule to Github using Xcode git integration. It detects some conflicts and ask to pull. I pull. A window appears with some conflicting files (5 or 6). Review them. While reviewing something in Xcode crashed, but as Xcode was still up and running, ignored the crash. Decided to cancel the conflicts window and inspect my local files. Pull again but this time I decided to pull both repos. Review the conflicting changes and decided to cancel again to continue by hand in a terminal. Then, I notice that the project for the submodule is in red and that the "Changes" tab shows a bunch of files with and admiration mark. I go to the submodule folder in Finder and... everything inside the submodule folder was gone, disappeared, lost... everything, even the ".git" folder (only remained a binary folder for a component I use for the framework but is empty). I decided to run a recovery tool. It finds nothing to recover inside that folder, nothing. A lot of files even from years ago but nothing inside that folder? how is that possible? I filled a Feedback assistant issue: FB16307182 Could it be possible that Xcode "moved" everything to another place (I'm desperate so I'm starting to think in absurd explanations) Thanks
1
0
422
Jan ’25
Empty canvas in Swift Playgrounds Mac 15.1
Hi, First post and I am a total newbie when it comes to Ipads & Macs... And also this forum, so sorry if I post in wrong section. My son use Ipad at school and they use Swift Playground there. To be able to do some programming at home, I have set up Vmware with Sequoia 15.1. I installed the app Swift Playground and try to run the playground Get Started with Code and some other education playgrounds. If I understand correctly, it should be some landscape and a figure on the canvas... For me it is only a blue area. I installed XCode, but could not figure out how to run the learning examples there. Tips? Is it possible to run the education playgrounds there? I removed Swift Playgrounds and installed it again, same issue. I also installed IOS 18.1 (?) but I am not sure it is needed. Any suggestion of how I can get contents to show on the canvas? Except of bying an Ipad. ;)
2
0
701
Jan ’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
How to handle a non-consumable in app purchase when SKPaymentQueue is deprecated
I use the code below for a non-consumable in-app purchase in my apps. Has anybody worked out how to handle this without using any of the deprecated items? SKPaymentQueue - deprecated, SKPayment - deprecated, SKProduct - deprecated, transactionState - deprecated, SKPaymentTransaction - deprecated, finishTransaction - deprecated func paymentQueue(_ queue: SKPaymentQueue, shouldAddStorePayment payment: SKPayment, for product: SKProduct) -> Bool { true } func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) { for transaction in transactions { switch transaction.transactionState { case .purchasing: break case .purchased: SKPaymentQueue.default().finishTransaction(transaction) // Hide the restore button navigationItem.setRightBarButton(nil, animated: true) // Set the ProVerion in the Db to true IAPHandler.setProVersionToPurchased() // Also hide the Purchase button UIView.animate(withDuration: 1.0, animations: { [weak self] in self?.purchaseBtn_Outlet.alpha = 0 }) { [weak self] (success) in if self!.theDevice.isOneOf(K.Device_Groups.SE_3_iPhone8) { self?.segControlTop_Constraint.constant = 10 } else if self!.theDevice.isPhone { self?.segControlTop_Constraint.constant = 30 } } case .failed: if let error = transaction.error { let errorDescription = error.localizedDescription print("Transaction failed due to error: \(errorDescription)") } case .restored: SKPaymentQueue.default().finishTransaction(transaction) // Hide the restore button navigationItem.setRightBarButton(nil, animated: true) // Set the ProVerion in the Db to true IAPHandler.setProVersionToPurchased() // Also hide the Purchase button UIView.animate(withDuration: 1.0, animations: { [weak self] in self?.purchaseBtn_Outlet.alpha = 0 }) { [weak self] (success) in if self!.theDevice.isOneOf(K.Device_Groups.SE_3_iPhone8) { self?.segControlTop_Constraint.constant = 10 } else if self!.theDevice.isPhone { self?.segControlTop_Constraint.constant = 30 } } case .deferred: break @unknown default: if let error = transaction.error { let errorDescription = error.localizedDescription print("Transaction failed due to error: \(errorDescription)") } break } } } // Sets the purchase to true in the Db class IAPHandler: NSObject { //Get the ProVersion Status static func isProVersionPurchased() -> Bool { let VC_String = "IAPHandler" var theStatus = false do { let settings = try Database.shared.databaseConnection!.read { db in try My_Settings.fetchOne(db) } let theStatusText = settings?.ProVersion ?? "false" theStatus = theStatusText == "true" ? true : false } catch { print("Getting the ProVersion Status failed! \(VC_String) \(error)") } return theStatus } // Set ProVersion to true. static func setProVersionToPurchased() { let VC_String = "IAPHandler" do { try Database.shared.databaseConnection!.write { db in try db.execute(sql: "UPDATE My_Settings SET ProVersion = :proVersion WHERE Settings_ID = :id", arguments: ["proVersion": "true", "id": 1]) } } catch { print("Update set pro version, failed! \(VC_String)s \(error)") } } }// End of class
1
0
366
Jan ’25
Change recording mode when using xctrace
Hey, In the UI of the Instruments app, I can change the recording mode to immediate. Is that possible when using xctrace? It seems to use deferred as a default. I've tried to create a template, set the recording mode to immediate, and use that template for recording. However, that doesn't seem to work. At least the exported TOC of the .trace will have the following summary: <summary> <start-date>2025-01-11T13:00:11.365+01:00</start-date> <end-date>2025-01-11T13:00:30.525+01:00</end-date> <duration>19.160279</duration> <end-reason>Target app exited</end-reason> <instruments-version>16.0 (16A242d)</instruments-version> <template-name>core_animation_fps</template-name> <recording-mode>Deferred</recording-mode> <time-limit>12 hours</time-limit> </summary> This issue might be related to: https://developer.apple.com/forums/thread/735948 Thanks a lot!
3
0
584
Jan ’25