My application targets iOS 15+. Attempting to build and run it on my iPhone SE (orphaned at iOS 15.6) results in "Failed to prepare the device for development."
I'm building with Xcode 15.2.
What is the expected procedure here?
General
RSS for tagDive into the vast array of tools and services available to developers.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
My app will not open to myself or to clients and has a pop up that claims
"App Outdated"
The app version you are using is no longer supported. Please install he latest Heartland update through the App Store.
However, there have been no updates to the app.
Topic:
Developer Tools & Services
SubTopic:
General
Hi,
I’m trying to free up space on my computer and have uninstalled Xcode. However, I noticed that many large files remain on the filesystem even after uninstalling it.
The largest remaining files (~33 GB) are iOS Simulator images located at:
/System/Volumes/Data/Library/Developer/CoreSimulator/Volumes
I attempted to delete them using root privileges, but it seems that these system files are mounted as read-only.
I’m reaching out to ask for guidance to ensure that these files do not contain anything important for macOS, and that it’s safe to remove them before getting in recovery mode.
Thank you very much for your advice!
We are developing a cross platform c++ application. We also use some objective-c (no swift) and specific Apple frameworks like AVFoundation, CoreML in the MacOs version of our software.
We use Apple Clang as compiler when building for MacOs. As our code is primarily c++ we would like to use the latest and greatest c++ 20 features.
So we are looking into using vanilla clang instead, the builds with vanilla clang seem to work fine, however our concern is that we might have overlooked possible issues that could arise. So our question is whether there are specific things we need to address when switching compilers, are there things that we need to be aware of?
In the end we just want to know if switching compilers won't cause problems we can't oversee.
So we would like to know if others took the same steps and what your thoughts/experiences are regarding this?
Topic:
Developer Tools & Services
SubTopic:
General
I regularly bump into folks confused by this issue, so I thought I’d collect my thoughts on the topic into a single (hopefully) coherent post.
If you have questions or comments, put them in a new thread here on the forums. Feel free to use whatever subtopic and tags that apply to your situation, but make sure to add the Debugging tag so that I see your thread go by.
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"
Testing and Debugging Code Running in the Background
I regularly see questions like this:
My background code works just fine in Xcode but fails when I download the app from the App Store.
or this:
… or fails when I run my app from the Home screen.
or this:
How do I step through my background code?
These suggest a fundamental misunderstanding of how the debugger interacts with iOS’s background execution model. The goal of this post is to explain that misunderstanding so that you can effectively test and debug background code.
Note The focus of this post is iOS. The advice here generally applies to any of iOS’s ‘child’ platforms, so iPadOS, tvOS, and so on. However, there will be some platform specific differences, especially on watchOS. This advice here doesn’t apply to macOS. It’s background execution model is completely different than the one used by iOS.
Understand the Fundamentals
The key point to note here is that the debugger prevents your app from suspending. This has important consequences for iOS’s background execution model. Normally:
iOS suspends your app when it’s in the background.
Once your app is suspended, it becomes eligible for termination. The most common reason for this is that the system wants to recover memory, but it can happen for various other reasons. For example, the system might terminate a suspended app in order to update it.
Under various circumstances your app can continue running after moving to the background. A great example of this is the continued processed task feature, introduced in iOS 26 beta.
Alternatively, your app can be resumed or relaunched in the background to perform some task. For example, the region monitor feature of Core Location can resume or relaunch your app in the background when the user enters or leaves a region.
If no app needs to be executing, the system can sleep the CPU.
None of this happens in the normal way if the debugger is attached to your app, and it’s vital that you take that into account when debugging code that runs in the background.
An Example of the Problem
For an example of how this can cause problems, imagine an app that uses an URLSession background session. A background session will resume or relaunch your app in the background when specific events happen. This involves two separate code paths:
If your app is suspended, the session resumes it in the background.
If your app is terminated, it relaunches it in the background.
Neither code path behaves normally if the debugger is attached. In the first case, the app never suspends, so the resume case isn’t properly exercised. Rather, your background session acts like it would if your app were in the foreground. Normally this doesn’t cause too many problems, so this isn’t a huge concern.
On the other hand, the second case is much more problematic. The debugger prevents your app from suspending, and hence from terminating, and thus you can’t exercise this code path at all.
Seek Framework-Specific Advice
The above is just an example, and there are likely other things to keep in mind when debugging background code for a specific framework. Consult the documentation for the framework you’re working with to see if it has specific advice.
Note For URLSession background sessions, check out Testing Background Session Code.
The rest of this post focuses on the general case, offering advice that applies to all frameworks that support background execution.
Run Your App Outside of Xcode
When debugging background execution, launch your app from the Home screen. For day-to-day development:
Run the app from Xcode in the normal way (Product > Run).
Stop it.
Run it again from the Home screen.
Alternatively, install a build from TestFlight. This accurately replicates the App Store install experience.
Write Code with Debugging in Mind
It’s obvious that, if you run the app without attaching the debugger, you won’t be able to use the debugger to debug it. Rather:
Extract the core logic of your code into libraries, and then write extensive unit tests for those libraries. You’ll be able to debug these unit tests with the debugger.
Add log points to help debug your integration with the system.
Treat your logging as a feature of your product. Carefully consider where to add log points and at what level to log. Check this logging code into your source code repository and ship it — or at least the bulk of it — as part of your final product. This logging will be super helpful when it comes to debugging problems that only show up in the field.
My general advice is that you use the system log for these log points. See Your Friend the System Log for lots of advice on that front.
One of the great features of the system log is that disabled log points are very cheap. In most cases it’s fine to leave these in your final product.
Attach and Detach
In some cases it really is helpful to debug with the debugger. One option here is to attach to your running app, debug a specific thing, and then detach from it. Specifically:
To attach to a running app, choose Debug > Attach to Process > YourAppName in Xcode.
To detach, choose Debug > Detach.
Understand Force Quit
iOS allows users to remove an app from the multitasking UI. This is commonly known as force quit, but that’s not a particularly accurate term:
The multitasking UI doesn’t show apps that are running, it shows apps that have been run by the user. The UI shows recently run apps regardless of whether they’re in the foreground, running in the background, suspended, or terminated. So, removing an app from the UI may not actually quit anything.
Removing an app sets a flag that prevents the app from being launched in the background. That flag gets cleared when the user next launches the app manually.
Note In some circumstances iOS will not honour this flag. The exact cases where this happens are not documented and have changed over time.
Keep these behaviours in mind as you debug your background execution code. For example, imagine you’re trying to test the URLSession background relaunch code path discussed above. If you force quit your app, you’ll never hit this code path because iOS won’t relaunch your app in the background. Rather, add a debug-only button that causes your app to call exit.
IMPORTANT This suggestion is for debugging only. Don’t include a Quit button in your final app! This is specifically proscribed by QA1561.
Alternatively, if you’re attached to your app with Xcode, simply choose Product > Stop. This is like calling exit; it has no impact on your app’s ability to run in the background.
Test With Various Background App Refresh Settings
iOS puts users in control of background execution via the options in Settings > General > Background App Refresh. Test how your app performs with the following settings:
Background app refresh turned off overall
Background app refresh turned on in general but turned off for your app
Background app refresh turned on in general and turned on for your app
IMPORTANT While these settings are labelled Background App Refresh, they affect subsystems other than background app refresh. Test all of these cases regardless of what specific background execution feature you’re using.
Test Realistic User Scenarios
In many cases you won’t be able to fully test background execution code at your desk. Rather, install a TestFlight build of your app and then use the device as a normal user would. For example:
To test Core Location background execution properly, actual leave your office and move around as a user might.
To test background app refresh, use your app regularly during the day and then put your device on charge at night.
Testing like this requires two things:
Patience
Good logging
The system log may be sufficient here, but you might need to investigate other logging solutions that are more appropriate for your product.
These testing challenges are why it’s critical that you have unit tests to exercise your core logic. It takes a lot of time to run integration tests like this, so you want to focus on integration issues. Before starting your integration tests, make sure that your unit tests have flushed out any bugs in your core logic.
Revision History
2025-08-12 Made various editorial changes.
2025-08-11 First posted.
Hi everyone!
I change my iPhone but I don't find the voice to activate "Developer Mode". I remember that I activated this feature with my old Xs in few minutes. I don't understand....
I must add the 16 Pro and the new Watch 10 for testing in Xcode. How?
Thanks!
Topic:
Developer Tools & Services
SubTopic:
General
Im A big apple supporter and for a long time I’ve had this issue I can’t afford a pc so I need this or else I’m broke
Topic:
Developer Tools & Services
SubTopic:
General
Hello!
I am trying to automate iOS builds for my Unreal Engine game using Unreal Automation Tool, but I cannot produce a functionnal build with it, while packaging from XCode works perfectly.
I have tracked down the issue to a missing file. I'm using the Firebase SDK that requires a GoogleService-Info.plist file. I have copied this file at the root of my project, as the Firebase documentation suggests. I have not taken any manual action to specify that this file needs to be included in the packaged app.
The Firebase code checks the existence of this file using
NSString* Path = [[NSBundle mainBundle] pathForResource: @“GoogleService-Info” ofType: @“plist”];
return Path != nil;
If I package my app from XCode using Product -> Archive, this test returns true and the SDK is properly initialized. If I package my app using Unreal Engine's RunUAT.sh BuildCookRun, this test returns false and the SDK fails to initialize (and actually crashes upon trying).
I have tried several Unreal Engine tricks to include my file, like setting it as a RuntimeDependecies in my projects Build.cs file. Which enables Unreal Engine code to find it, but not this direct call to NSBundle.
I would like to know either how to tell Unreal Engine to include files at the root of the app bundle, or what XCode does to automatically include this file and is there a way to script it? I can provide both versions .xcarchive if needed.
Thanks!
Hi everyone. I created test-apps years ago. Now I looked into https://icloud.developer.apple.com/dashboard/
There I found these old apps listed.
How do I delete these Apps in the Console and entirely from my account?
I don't have the project files anymore.
All the best! 😊
Hi everyone,
I'm developing a visionOS application using Unity with an enterprise developer account. I applied for the Main Camera Access entitlement, but at the time of submission, the email address associated with my Apple ID was deactivated, so I couldn’t receive any email communication from Apple.
Later, I updated the email address for my Apple ID. Now, in the Apple Developer portal under Identifiers, I can see that my app has been granted Main Camera Access, and I can also add the corresponding capability in Xcode.
However, according to Apple’s documentation(https://developer.apple.com/documentation/visionos/building-spatial-experiences-for-business-apps-with-enterprise-apis):
“To use entitlements, you need to include both the entitlement file and a corresponding license file in your app. After Apple approves your app for one or more entitlements, you receive a license file, along with additional instructions.”
I never received this license file, possibly due to the deactivated email. I don't know where to find it or how to retrieve it now.
What exactly is this license file?
If it was originally sent to an unreachable email, how can I request it again or get it resent?
Where in the Apple Developer portal (or elsewhere) can I access or download this file?
Any help or guidance would be greatly appreciated!
Thanks in advance.
Hello!
We would like to know the steps required to build an application and submit it to the Apple Store using an automated process on a server.
Here are our conditions:
We have a server running macOS Sonoma 14.6.1 on Amazon EC2.
Xcode 16.1 (Build version 16B40) is installed.
We use only console commands, as the GUI is not available.
We use Cordova to add the iOS platform to the application.
A private key, certificate, and provisioning profile have already been created and are located on the server.
Could you please clarify:
What commands are needed to configure the Keychain to use the certificate and provisioning profile?
How can we build the application using xcodebuild?
What are the steps to sign and submit the application to the App Store with minimal human interaction?
Thank you in advance for your assistance!
I've created an installation package and it is failing to install on macOS 15.6.
The package is, I believe, properly notarized, since it will install correctly on other macOS versions, including 15.5
The only clue I have is the output from installer:
installer[8015] : Opened package is not the same at install time
installer[8015] : Unable to use PK session due to incompatible packages. Terminating.
installer[8015] : Install failed: The Installer could not install the software because there was no software found to install.
The installer consists of a a single "component" package, and the outer "product" package. The component package is present, and I can successfully run installer manually to install it, so I don't think the component package is corrupt.
Has anyone else encountered this? Are there any tools available to help me diagnose the issue? The logging is not helpful.
Topic:
Developer Tools & Services
SubTopic:
General
I am working on a hobby project to develop my own Bluetooth peripheral. The platform for this peripheral is a Espressif ESP32-based TinyS3 from Unexpected Maker. I have defined the bluetooth device & service information using custom UUIDs. Using nRF Connect or Light Blue mobile applications I can discover and connect to my device. I receive confirmation of this BLE connection and modifications to the my BLE Service from my code on my TinyS3.
I am attempting to write a custom software program that uses the onboard Mac Bluetooth hardware to detect this device. I am technically using Qt's Bluetooth infrastructure via PySide6 [python].
Despite being able to see my device in the mobile BLE applications, my software as well as the Mac Bluetooth System Services does not detect my BLE device.
I am broadcasting advertising messages at a 250ms rate, and since they are findable by these mobile applications, I am wondering if MacOS has specific requirements for advertising data for what it considers as a "legitimate/ connectable" device.
Any help would be greatly appreciated. Thank you!
As of now, there is no Kernel Debug Kit (KDK) available for macOS 26.0 Developer Betas after the first build. Kernel Debug Kits are crucial for understanding panics and other bugs within custom Kernel Extensions. Without the KDK for the corresponding macOS version, tools like kmutil fail to recognize a KDK and certain functions are disabled. Additionally, as far as I am aware, a KDK for one build of macOS isn't able to be used on a differing build. Especially since this is a developer beta, where developers are updating their software to function with the latest versions of macOS, I'd expect a KDK to be available for more than one build.
I've encountered a strange issue with Swift and I wonder if this is a compiler error or if I didn't understand something correctly.
The following sample code shows a weird issue (please ignore that the demo code itself would not make that much sense in this form, it's just the version from a big and more complicated project, where this would make more sense):
class Test {
var data: [String:[String:String]] = [:]
func test() {
let setValue: ((String, String, String) -> Void) = { [weak self] key, id, value in
if self!.data[key] == nil {
self!.data[key] = [:]
}
let oldValue = self!.data[key]![id]
if oldValue == nil {
self!.data[key]![id] = value
}
}
setValue("0", "1", "2")
}
}
When changing the "data" dictionary through the closure within the "test()" function, everything works as expected until the "if" condition where the oldValue is checked against nil. If I set a break point to this condition, the Xcode debugger tells me that oldValue is nil (which is expected), but the code within the if condition is NOT executed. The comparison oldValue == nil should be be true (because oldValue is actually nil), but the compiler seems to assume something else.
But If I do not user "self!" but instead "self?" then it does work as expected and the code within the if condition is executed.
What I am missing here? Is this the correct behavior or a compiler bug?
Hello,
PrivacyInfo.xcprivacy Is primordial and without it the app is rejected from the Store I believe.
All 5 ressources I had found related to it, mention XCODE, or explain how to add the code to langages that I don't use (Switf i think?) etc.
I am building the app thought CI/CD, so prior to building it the app does not have privacy manifest and there is not way to generate it automatically without xcode it seems.
My app is written in Flutter prior to becoming an iOS app.
I am seeking for a method to do that. Thanks.
Hi Support Team,
I am new here. I am unable to add my fonts to the asset catalog there is no option to add new font set when I click the plus sign.
When I drag my files in they show up as data.
I have a Contents.json in the font folder called BeVietnamProFont.font.
Is there something I am doing wrong?
Thanks SO much!
{
"info": { "version": 1, "author": "xcode" },
"properties": {},
"fonts": [
{ "filename": "BeVietnamPro-Black.ttf", "weight": "black", "style": "normal" },
{ "filename": "BeVietnamPro-BlackItalic.ttf", "weight": "black", "style": "italic" },
{ "filename": "BeVietnamPro-Bold.ttf", "weight": "bold", "style": "normal" },
{ "filename": "BeVietnamPro-BoldItalic.ttf", "weight": "bold", "style": "italic" },
{ "filename": "BeVietnamPro-ExtraBold.ttf", "weight": "heavy", "style": "normal" },
{ "filename": "BeVietnamPro-ExtraBoldItalic.ttf", "weight": "heavy", "style": "italic" },
{ "filename": "BeVietnamPro-ExtraLight.ttf", "weight": "ultralight", "style": "normal" },
{ "filename": "BeVietnamPro-ExtraLightItalic.ttf", "weight": "ultralight", "style": "italic" },
{ "filename": "BeVietnamPro-Light.ttf", "weight": "light", "style": "normal" },
{ "filename": "BeVietnamPro-LightItalic.ttf", "weight": "light", "style": "italic" },
{ "filename": "BeVietnamPro-Regular.ttf", "weight": "regular", "style": "normal" },
{ "filename": "BeVietnamPro-Italic.ttf", "weight": "regular", "style": "italic" },
{ "filename": "BeVietnamPro-Medium.ttf", "weight": "medium", "style": "normal" },
{ "filename": "BeVietnamPro-MediumItalic.ttf", "weight": "medium", "style": "italic" },
{ "filename": "BeVietnamPro-SemiBold.ttf", "weight": "semibold", "style": "normal" },
{ "filename": "BeVietnamPro-SemiBoldItalic.ttf", "weight": "semibold", "style": "italic" },
{ "filename": "BeVietnamPro-Thin.ttf", "weight": "thin", "style": "normal" },
{ "filename": "BeVietnamPro-ThinItalic.ttf", "weight": "thin", "style": "italic" }
]
}

i have been added to an apple membership organization, and given App manager's rights b ut my build keeps failing and asking me to get more access
Topic:
Developer Tools & Services
SubTopic:
General
I would like to know if macOS DEXT supports the following networking features: Tx/Rx Multiqueue, RSS, RSC, NS/ARP offload, PTP or packet timestamping and TSN.
I couldn't find relevant documentation for these features in the Apple Developer Documentation.
If they are supported, could you let me know which features are supported and how to find the corresponding official Apple documentation?
Thanks
Topic:
Developer Tools & Services
SubTopic:
General
Tags:
Network Extension
NetworkingDriverKit
PCIDriverKit
DriverKit
So I'm testing a microapp that is contained in an IPFS folder. I use a web3 website that is used to view NFTs and their IPFS files. The app has gyro controls, which are enabled through a confirmation gesture.
In iOS 18.5, when I press "Request Permission" button I get the popup to allow the app to acess movement and orientation. In iOS26, pressing the button does nothing. Keep in mind that this only happens through the website, that uses iframes. When I load the IPFS file from a direct link, the popup appears with no issue.
I think this might be because iOS26 uses WebGPU or it might be a bug since iOS26 is still in beta.