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
Error: Info.plist/Multiple commands produce
Background and Issue Details Currently, I am working on an Xcode project, and even after correctly setting up the Info.plist file, I am encountering build errors. Despite verifying all configurations related to Info.plist, the following errors persist during the build process: Error Messages 1、Multiple commands produce '/path/to/DerivedData/Info.plist' ・The error suggests that there might be a conflict or duplication of Info.plist in the Copy Bundle Resources phase, but only one Info.plist exists in the project. 2、duplicate output file ・A warning indicating that there is a conflict with the output file path for the Info.plist file during the build process. Steps Taken to Resolve the Issue 1、Verified Info.plist Files in the Project ・Checked the project directory for any duplicate Info.plist files using the following command: find . -name "*.plist" Only one Info.plist file exists in the project. ・Used the grep command to inspect the project.pbxproj file for INFOPLIST_FILE references: grep -r "INFOPLIST_FILE" ./MyProject.xcodeproj/project.pbxproj The INFOPLIST_FILE settings point to the correct Info.plist file. 2、Checked Copy Bundle Resources ・Verified the Copy Bundle Resources build phase and ensured that only one Info.plist file is listed. Deleting it results in the Target Membership checkbox being unchecked, and the error persists. 3、Cleared Cache ・Deleted DerivedData and Xcode cache directories to ensure no stale data is causing the issue: rm -rf ~/Library/Developer/Xcode/DerivedData rm -rf ~/Library/Caches/com.apple.dt.Xcode 4、Created a New Project ・Created a new project and set up a fresh Info.plist file with minimal content, but the same error occurred. Current Project Settings ・The contents of the Info.plist file are as follows: 5、Xcode Version ・The version of Xcode I'm using is 15.2 ・OS is Ventua13.7.1 Questions ・What could cause the Multiple commands produce and duplicate output file errors in this scenario? ・Are there any other settings or configurations I should investigate beyond the Info.plist file and build phases? ・Have there been similar cases reported by other developers, and what were the solutions? ・Could you provide a step-by-step guide to test the functionality of Info.plist in a minimal project while avoiding duplication errors? ・Is there an official or alternative workflow to create a project where Info.plist duplication errors are preemptively avoided? ・Additionally, what are the best practices for linking Info.plist in Build Settings and avoiding conflicts during the build process? Thank you.
2
0
648
Dec ’24
SafariBookmarksSyncAgent quits unexpectedly
Since recently (maybe after updating to Sonoma 14.7.1 - 23H222, but not sure, I get a crash report stating that SafariBookmarksSyncAgent quitted unexpectedly Once acquitted the report, it will reappear 2 minutes later as long as Xcode is open. Configuration: Sonoma 14.7.1 Safari Technology Preview Release 208 (Safari 18.2, WebKit 19621.1.5.1) Xcode 15.3 (15E204a) That seems to be a known problem. Question: Is it due to MacOS version ? To Xcode version ? To Safari version ? To webKit version ? Or to simulator, as I gat an AegirPoster crash (as described here: https://stackoverflow.com/questions/77083912/macbook-pro-crashes-when-using-simulator-aegirposter-process) I read that I would need to restart some devices (eg, iPhone). That seems to temporarily solve the problem Here is a part of the report: Incident Identifier: 0D2456DF-5801-41D6-8294-2BF442224913 CrashReporter Key: 4DE33529-174E-32C5-D8A8-26FE128BE16B Hardware Model: Mac14,12 Process: SafariBookmarksSyncAgent [38972] Path: /Volumes/VOLUME/*/SafariSupport.bundle/SafariBookmarksSyncAgent Identifier: com.apple.SafariBookmarksSyncAgent Version: 8614 (8614.1.25.0.17) Code Type: ARM-64 (Native) Role: Unspecified Parent Process: launchd_sim [28070] Coalition: com.apple.CoreSimulator.SimDevice.0058D576-D9FF-4169-8437-D0A24C923500 [9832] Responsible Process: SimulatorTrampoline [1116] Date/Time: 2024-11-27 15:19:42.4908 +0100 Launch Time: 2024-11-27 15:19:42.4610 +0100 OS Version: macOS 14.7.1 (23H222) Release Type: User Report Version: 104 Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Subtype: KERN_INVALID_ADDRESS at 0x0000000204476580 Exception Codes: 0x0000000000000001, 0x0000000204476580 VM Region Info: 0x204476580 is not in any region. Bytes after previous region: 894002561 Bytes before following region: 58984012416 REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL VM_ALLOCATE 1cefdc000-1cefe0000 [ 16K] r--/rwx SM=PRV ---> GAP OF 0xdf1020000 BYTES commpage (reserved) fc0000000-1000000000 [ 1.0G] ---/--- SM=COW reserved VM address space (unallocated) Termination Reason: SIGNAL 11 Segmentation fault: 11 Terminating Process: exc handler [38972] Triggered by Thread: 0 Thread 0 Crashed: 0 dyld_sim 0x104f9dc7c dyld4::SyscallDelegate::forEachInDirectory(char const*, bool, void (char const*, char const*) block_pointer) const + 172 1 dyld_sim 0x104f88b6c invocation function for block in dyld4::ProcessConfig::PathOverrides::processVersionedPaths(dyld4::ProcessConfig::Process const&, dyld4::SyscallDelegate&, dyld4::ProcessConfig::DyldCache const&, dyld3::Platform, dyld3::GradedArchs const&, lsl::Allocator&) + 104 2 dyld_sim 0x104f88aa0 dyld4::ProcessConfig::PathOverrides::forEachInColonList(char const*, char const*, bool&, void (char const*, bool&) block_pointer) + 224 3 dyld_sim 0x104f886b8 dyld4::ProcessConfig::PathOverrides::processVersionedPaths(dyld4::ProcessConfig::Process const&, dyld4::SyscallDelegate&, dyld4::ProcessConfig::DyldCache const&, dyld3::Platform, dyld3::GradedArchs const&, lsl::Allocator&) + 144 4 dyld_sim 0x104f882a8 dyld4::ProcessConfig::PathOverrides::PathOverrides(dyld4::ProcessConfig::Process const&, dyld4::ProcessConfig::Security const&, dyld4::ProcessConfig::Logging const&, dyld4::ProcessConfig::DyldCache const&, dyld4::SyscallDelegate&, lsl::Allocator&) + 344 5 dyld_sim 0x104f868b8 dyld4::ProcessConfig::ProcessConfig(dyld4::KernelArgs const*, dyld4::SyscallDelegate&, lsl::Allocator&) + 152 6 dyld_sim 0x104f85e30 _dyld_sim_prepare + 352 7 dyld 0x10492fa8c dyld4::prepareSim(dyld4::RuntimeState&, char const*) + 1276 8 dyld 0x10492e4f0 dyld4::prepare(dyld4::APIs&, dyld3::MachOAnalyzer const*) + 308 9 dyld 0x10492def4 start + 1868 I filed a bug report: Nov 27, 2024 at 3:41 PM – FB15976427
1
0
696
Dec ’24
Xcode 15 Beta Stuck on preparing iphone simulator for previews
Hiya, I am having issues trying to use previews in the xcode 15 beta, i am using an M2 macbook air with 8gb of ram. I am using MacOS Sonoma and iOS 17.0 Beta 1 and am struggling using previews, the base simulator works but no previews. I am not receiving any error so am very confused. Any help would be majorly appreciated. Thanks, Gus
6
2
4.7k
Dec ’24
SwiftUI Previews not working Xcode 15 iOS 17 simulator
SwiftUI preview hangs on "Preparing iPhone Simulator for Previews". Also simulator hangs when trying to build and run. This occurred after I installed iOS 17 simulator. I tried reverting back to an iOS 16 version of the simulator, but haven't figured out how to do that. Build and run to an iPhone device works fine. Any ideas would be appreciated. Thanks.
9
4
4.3k
Dec ’24
xcodebuild: "error: …/build/Release/Defaults_Defaults.bundle: No such file or directory"
This is probably a beginner's mistake, but I can't find anything about this error anywhere, and it's completely reproducible, even on GitHub Runners and with a fresh Xcode project. The error doesn't seem to be caused by the Swift package used, Defaults, but by xcodebuild. macOS Sequoia 15.2 (24C101) Xcode Version 16.2 (16C5032a) Defaults Version 9.0.0 When following Defaults' installation instructions, building and archiving from Xcode still works fine, but building with xcodebuild always fails with this error: Copy /Users/user/DefaultsTest/build/Release/DefaultsTest.app/Contents/Resources/Defaults_Defaults.bundle /Users/user/DefaultsTest/build/Release/Defaults_Defaults.bundle (in target 'DefaultsTest' from project 'DefaultsTest') cd /Users/user/DefaultsTest builtin-copy -exclude .DS_Store -exclude CVS -exclude .svn -exclude .git -exclude .hg -resolve-src-symlinks /Users/user/DefaultsTest/build/Release/Defaults_Defaults.bundle /Users/user/DefaultsTest/build/Release/DefaultsTest.app/Contents/Resources error: /Users/user/DefaultsTest/build/Release/Defaults_Defaults.bundle: No such file or directory (in target 'DefaultsTest' from project 'DefaultsTest') I made a fresh, reproducible Xcode project here: https://github.com/F1248/DefaultsTest And a failing GitHub Action here: https://github.com/F1248/DefaultsTest/actions/runs/12303972248/job/34340347771 Any help would be greatly appreciated.
2
0
406
Dec ’24
Upgraded now xcode will not connect to iphone
I received a new Macbook Pro (14 inch, M4, 24 GB memory, 1 TB SSD) and now trying to get all development tools working on it. I have installed Mac OS 15.2, Xcode 16.2 and ios 18.2 on my iphone. When I launch Xcode and run a simulator, it executes fine. When I try to attach to my iphone Xs Max with a USB cable, Xcode gives an error trying to communicate with a remote process. This used to work. The details of the error are listed below: An error occurred while communicating with a remote process. Domain: com.apple.dt.CoreDeviceError Code: 3 Failure Reason: The connection was invalidated. User Info: { DVTErrorCreationDateKey = "2024-12-14 05:29:35 +0000"; IDERunOperationFailingWorker = IDEInstallCoreDeviceWorker; "com.apple.dt.DVTCoreDevice.operationName" = enablePersonalizedDDI; } The connection was invalidated. Domain: com.apple.Mercury.error Code: 1001 User Info: { XPCConnectionDescription = "<SystemXPCPeerConnection 0x600003b3ab50> { <connection: 0x600000a040f0> { name = com.apple.CoreDevice.CoreDeviceService, listener = false, pid = 0, euid = 4294967295, egid = 4294967295, asid = 4294967295 } }"; } Event Metadata: com.apple.dt.IDERunOperationWorkerFinished : { "device_identifier" = "00008020-000A315C2182002E"; "device_isCoreDevice" = 1; "device_model" = "iPhone11,6"; "device_osBuild" = "18.2 (22C152)"; "device_platform" = "com.apple.platform.iphoneos"; "device_thinningType" = "iPhone11,6"; "dvt_coredevice_version" = "397.28"; "dvt_coresimulator_version" = "993.7"; "dvt_mobiledevice_version" = "1759.60.7"; "launchSession_schemeCommand" = Run; "launchSession_state" = 1; "launchSession_targetArch" = arm64; "operation_duration_ms" = 107626; "operation_errorCode" = 1001; "operation_errorDomain" = "com.apple.dt.CoreDeviceError.3.com.apple.Mercury.error"; "operation_errorWorker" = IDEInstallCoreDeviceWorker; "operation_name" = IDERunOperationWorkerGroup; "param_debugger_attachToExtensions" = 0; "param_debugger_attachToXPC" = 1; "param_debugger_type" = 3; "param_destination_isProxy" = 0; "param_destination_platform" = "com.apple.platform.iphoneos"; "param_diag_113575882_enable" = 0; "param_diag_MainThreadChecker_stopOnIssue" = 0; "param_diag_MallocStackLogging_enableDuringAttach" = 0; "param_diag_MallocStackLogging_enableForXPC" = 1; "param_diag_allowLocationSimulation" = 1; "param_diag_checker_tpc_enable" = 1; "param_diag_gpu_frameCapture_enable" = 0; "param_diag_gpu_shaderValidation_enable" = 0; "param_diag_gpu_validation_enable" = 1; "param_diag_guardMalloc_enable" = 0; "param_diag_memoryGraphOnResourceException" = 0; "param_diag_mtc_enable" = 1; "param_diag_queueDebugging_enable" = 1; "param_diag_runtimeProfile_generate" = 0; "param_diag_sanitizer_asan_enable" = 0; "param_diag_sanitizer_tsan_enable" = 0; "param_diag_sanitizer_tsan_stopOnIssue" = 0; "param_diag_sanitizer_ubsan_enable" = 0; "param_diag_sanitizer_ubsan_stopOnIssue" = 0; "param_diag_showNonLocalizedStrings" = 0; "param_diag_viewDebugging_enabled" = 1; "param_diag_viewDebugging_insertDylibOnLaunch" = 1; "param_install_style" = 2; "param_launcher_UID" = 2; "param_launcher_allowDeviceSensorReplayData" = 0; "param_launcher_kind" = 0; "param_launcher_style" = 99; "param_launcher_substyle" = 0; "param_runnable_appExtensionHostRunMode" = 0; "param_runnable_productType" = "com.apple.product-type.application"; "param_structuredConsoleMode" = 1; "param_testing_launchedForTesting" = 0; "param_testing_suppressSimulatorApp" = 0; "param_testing_usingCLI" = 0; "sdk_canonicalName" = "iphoneos18.2"; "sdk_osVersion" = "18.2"; "sdk_variant" = iphoneos; } System Information macOS Version 15.2 (Build 24C101) Xcode 16.2 (23507) (Build 16C5032a) Timestamp: 2024-12-13T20:29:35-09:00 I have tried several fixes from other users and nothing works. I do have developer mode turned on and have tried clearing the trusted devices and re-enabling many times with no luck. Currently out of options.
2
0
455
Dec ’24
Slow bundle copy build phase from dependency
We have a dependency, Apollo iOS, that is managed by SwiftPM in an internal module Swift Package. That internal Swift Package is then linked and included in our iOS target. The iOS target has an associated WidgetKit extension app. When archiving the app, we're seeing extremely long "Copy Apollo_Apollo.bundle" build steps, on the magnitude of 15 minutes. This is only happening when copying the bundle for the Widget extension app. Builds are done with Xcode 15.2, but we've tried on 15.4 and 16.2, seeing a few minutes shaved off. How can we begin to debug this issue?
0
0
267
Dec ’24
Xcode / Swift(UI/Data) / Appstoreconnect Oddities
I’ve noticed a good number of strange problems in the IOS development process, so I’m going to track them here. If they’re resolved at some point, I’ll note it. At least in my first attempt, letting Appleconnect build my code resulted in a build with no errors that could not be submitted for review. The solution for me was to build from Xcode. It took a while to stumble on that, so if you have problems with one way, try the other. Xcode doesn’t show Info.plist by default. This is a particularly nasty bug that caused a great deal of trouble, being the biggest reason I had so much trouble getting my first app submitted for review. The only way I found to get around it was to make a small change to one of the items under the Info tab under the project name/icon in Xcode. Then, the Info.plist showed up! SwiftUI and SwiftData are siloed off from each other, so if you have a list, the view is controlled by SwiftUI. This means that if a user moves an item in a list, SwiftData is not informed. If the user quits the app, the order will revert to the last saved version! So you must resort to tracking the order in your code and adjusting your query accordingly.
1
0
330
Dec ’24
What is "bridgeOS Device Support" for?
In my Mac's Settings -> General -> Storage -> Developer -> (i) I have a series of entries for "bridgeOS", all 2.49 GB except one that is "zero". Do I need these? Can I remove them? I am only doing "normal" iPhone / iPad development. (There was some previous mention of this here: https://developer.apple.com/forums/thread/711279 with no feedback.)
2
0
4.1k
Dec ’24
How to create Xcode project without a folder
I am new to Xcode and coding in general. I am trying to resolve an issue with my CI in GitHub, which I think is coming from a path issue. To summarize my approach: I start by creating a GitHub repo, I then clone that to a outer folder (e.g., TEST) on my desktop, which results in desktop/TEST/TEST/[github files]. When I go to create my Xcode project, it always forces me to create a new folder resulting in desktop/TEST/TEST/TEST/[xcode files]. I want the Xcode files to sit in the repo folder so its desktop/TEST/TEST/[github & Xcode files]. I thought I could drag and drop them in but get a popup blocking it. Any thoughts on how to address this. Thank you in advance.
2
0
357
Dec ’24
SimpleWatchConnectivity sample - TransferFile fails
When launching the SimpleWatchConnectivity sample in a simulator (iOS 18.2 + watchOS 11.2), almost all the functionality works, but TransferFile does not work. The error is the following: -[WCFileStorage persistOutgoingFileTransfer:] error serializing file transfer <WCSessionFileTransfer: ...> due to Error Domain=NSCocoaErrorDomain Code=4866 "Caught exception during archival: This object may only be encoded by an NSXPCCoder." How can it be fixed or worked around?
1
1
552
Dec ’24
Stryboard files causing Xcode (16.1) crash
Hello, Since Xcode update to 16.1, I can't open some of my storyboard files in Interface Builder. When I click on a storyboard, Xcode takes a long time to load, then crashes. I dont have any errors or warnings and everything works well, I can build and distribute the app, just I can't use my storyboards. MacBook Pro M1 on Sequoia 15.1.1 Any help is welcome!
4
0
536
Dec ’24
xcode quits unexpectedly every time i open it
computer specs: MacBook Pro 14in 2023 m2 pro 16gb macos ver: Version 15.1 Beta (24B5009l) Issue: When I open xcode on my Mac, it unexpectedly quits every time. I have disabled internet connection, it doesn't work. I have uninstalled and install again on appstore, it still doesn't work. I've open the app in another user on my laptop, it doesn't work. The problem report generated from the quitting Xcode is too long so i put it into the attached text file: Report Log when it reported quit unexpectedly
3
0
525
Dec ’24
Navigation View
How can I add navigation to an existing program. I coded this as per youtube video: var body: some View { NavigationView { VStack { NavigationLink(destination: viewdetail()) { Text("click") .frame(width: 300, height: 150, alignment: .center) .background(Color.gray) .foregroundColor(.black) } } } It doesn't work. If I comment out the rest of the program it works. I have VStacks and HStacks and functions after the navigation code. Please help.
2
0
293
Dec ’24
Xcode stuck on "Waiting to attach [...] on Apple Watch Series 9
Hi everyone, Since a couple days, I can't launch my watchOS widget extension in the Xcode simulator. After launching the scheme in Debug or Release, I always end up with Xcode stuck on "Waiting to attach to watchOSWidgets on Apple Watch Series 9". I already uninstalled and reinstalled Xcode and cleared all Xcode related folders in Library. I also tried to use Debug > Attach to process, then Xcode goes into "Running watchOSWidgets on Apple Watch Series 9" but no widgets are installed, neither the app so I cannot debug anything. I tried on different simulators, always end up with the same problem. However, the watch app scheme works fine, in Debug or Release, it is only the widgets extension which doesn't work anymore. This seems related to my computer, because if I create an empty project with a default watch widget extension, I still have the same issue. I really don't know what to do... Does anyone has a clue ? Thanks
6
0
860
Dec ’24
arrays
I'm using xcode 16.1 withSwiftUI. I want to know how to call a function passing in an array. Also I need to know how to declare the function receiving the array. I currently have: func myfunc(costa: [Double] { some code } I call it like this: myfunc(costa:[ ]) It's an array of Doubles. I don't get any errors but the array is always empty even though it's not empty on the sending side. Please help. Thank you.
2
0
314
Dec ’24
watchOS 4 in Xcode 16
I saw in the Xcode 16 release notes that on-device debugging is no longer available on watchOS prior to version 7.0, but I can't even get a signed, compiled app to run on an older watch. The current version I have live in the App Store works just fine on 4.3.2. I have changed no code, I just started building the app with Xcode 16, and now it won't launch on older watches. Is it no longer possible to update an app for older watches?
2
0
616
Dec ’24
How to prevent duplicate resource bundles from SPM dynamic framework in app extensions?
We use a local swift package in 6 of our app extensions. The product from the local package that we link to each app extension is a dynamic framework. And while the dynamic framework is copied into the final app bundle once, the resource bundles of each target that comprise the dynamic framework is copied into each app extension. I'd much rather have the bundles be copied into the dynamic framework once to prevent app bloat. Here is a visualization of the issue: . └── MyApp.ipa/ ├── MyApp (executable) ├── MyDynamicFramework_TargetA.bundle ├── MyDynamicFramework_TargetB.bundle ├── MyDynamicFramework_TargetC.bundle ├── Frameworks/ │ └── MyDynamicFramework.framework/ │ ├── TargetA │ ├── TargetB │ └── TargetC └── PlugIns/ ├── Widgets.appex/ │ ├── MyDynamicFramework_TargetA.bundle │ ├── MyDynamicFramework_TargetB.bundle │ └── MyDynamicFramework_TargetC.bundle ├── Intents.appex/ │ ├── MyDynamicFramework_TargetA.bundle │ ├── MyDynamicFramework_TargetB.bundle │ └── MyDynamicFramework_TargetC.bundle ├── IntentsUI.appex/ │ ├── MyDynamicFramework_TargetA.bundle │ ├── MyDynamicFramework_TargetB.bundle │ └── MyDynamicFramework_TargetC.bundle ├── NotificationContent.appex/ │ ├── MyDynamicFramework_TargetA.bundle │ ├── MyDynamicFramework_TargetB.bundle │ └── MyDynamicFramework_TargetC.bundle ├── RichPushContent.appex/ │ ├── MyDynamicFramework_TargetA.bundle │ ├── MyDynamicFramework_TargetB.bundle │ └── MyDynamicFramework_TargetC.bundle └── NotificationService.appex/ ├── MyDynamicFramework_TargetA.bundle ├── MyDynamicFramework_TargetB.bundle └── MyDynamicFramework_TargetC.bundle Notice that the resource bundles of Target A, B, and C are copied multiple times causing an unhealthy app size. I'd either like the resource bundles to be copied into MyDynamicFramework or copied once into the app bundle and let the app extensions reference them. Given the SPM + Xcode linking is a black box for the most part, how would I accomplish this?
7
2
1.9k
Dec ’24