Hello,
I've encountered unexpected behavior related to version information in our app logs, and I'd like to ask for some advice.
We reviewed logs collected from a user running our app (currently available on the App Store). The logs are designed to include both the build number and the app version.
Based on the build number in the logs, we believe the installed app version on the user's device is 1.0.3.
However, the app version recorded in the logs is 1.1.5, which is the latest version currently available on the App Store.
In our project, we set the app version using the MARKETING_VERSION environment variable.
This value is configured via XcodeGen, and we define it in a YAML file.
Under normal circumstances, the value defined in the YAML file (MARKETING_VERSION = 1.0.3) should be embedded in the app and reflected in the logs. But in this case, the version from the current App Store release (1.1.5) appears instead, which was unexpected.
We'd like to know what might cause this behavior, and if there are any known factors that could lead to this.
Also, is it possible that MARKETING_VERSION might somehow dynamically reflect the version currently available on the App Store?
YAML:
info.plist:
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
In Simulator Korean character system has not working well.
I want to type "", however, if I type the same thing on the simulator's virtual keyboard (Korean), it comes out as ''.
I think this is caused by IME system in ios simulator bug. I think this has been happening since IOS 17.
In the availability and pricing section, we have reviewed the plans and we will be upgrading to 50 or 100 million calls/month but before we do, we have a couple questions.
Does the API have rate limit or throttling?
Do you have additional weather forecast endpoints like hail, radar, or pollen forecast? I see in this thread https://developer.apple.com/forums/thread/795642 that air quality is not available
Thanks
開発アプリで通知確認を行うため、UDIDをプロビジョニングプロファイルに追加する必要があります。
iPhoneのUDIDは取得することができたのですが、AppleWatchのUDIDを取得する方法が分かりません。
Xcodeと接続してUDIDを取得しようとしましたが、iPhoneのみ認識がされAppleWatchが認識されていません。
AppleWatchもデベロッパモードをONしなければならないとAppleから返答をもらったが、その方法がわからないのでどなたかご教授お願い致します。
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.
I'm a newbie to on-demand resources and I feel like I'm missing something very obvious. I've successfully tagged and set up ODR in my Xcode project, but now I want to upload the assets to my own server so I can retrieve them from within the app, and I can't figure out how to export the files I need.
I'm following the ODR Guide and I'm stuck at Step #4, after I've selected my archive in the Archives window it says to "Click the Export button", but this is what I see:
As shown in the screenshot, there is no export button visible. I have tried different approaches, including distributing to appstore connect, and doing a local development release. The best I've been able to do is find a .assetpack folder inside the archive package through the finder, but uploading that, or the asset.car inside it, just gives me a "cannot parse response" error from the ODR loading code. I've verified I uploaded those to the correct URL.
Can anyone walk me through how to save out the file(s) I need, in a form I can just upload to my server?
Thanks,
Pete
Why as an IDE, many developers want to use the functions are not available, such as code formatting, if the function is not available, why not even a plug-in center, I have been using IDEA for code development, with Xcode development, feel very inconvenient to use
We're facing critical stability issues with a Xamarin-based iOS warehouse management app and need expert validation of our crash log analysis.
We’re seeing recurring issues related to:
Auto Layout Threading Violations
Memory Pressure Terminations
CPU Resource Usage Violations
These are causing app crashes and performance degradation in production. We've attached representative crash logs to this post.
Technical Validation Questions:
Do the crash logs point to app-level defects (e.g., threading/memory management), or could user behavior be a contributing factor?
Is ~1.8GB memory usage acceptable for enterprise apps on iOS, or does it breach platform best practices?
Do the threading violations suggest a fundamental architectural or concurrency design flaw in the codebase?
Would you classify these as enterprise-grade stability concerns requiring immediate architectural refactoring?
Do the memory logs indicate potential leaks, or are the spikes consistent with expected usage patterns under load?
Could resolving the threading violation eliminate or reduce the memory and CPU issues (i.e., a cascading failure)?
Are these issues rooted in Xamarin framework limitations, or do they point more toward app-specific implementation problems?
Documentation & UX Questions:
What Apple-recommended solutions exist for these specific issues? (e.g., memory management, thread safety, layout handling)
From your experience, how would these issues manifest for users? (e.g., crashes, slow performance, logout events, unresponsive UI, etc.
JetsamEvent-2025-05-27-123434_REDACTED.ips
)
WarehouseApp.iOS.cpu_resource-2025-05-30-142737_REDACTED.ips
WarehouseApp.iOS-2025-05-27-105134_REDACTED.ips
Any insights, analysis, or references would be incredibly helpful.
Thanks in advance!
Topic:
Developer Tools & Services
SubTopic:
General
I cannot find this specific KDK for my build 22H417. I need help locating and downloading this Developer Kit.
Error Domain=KMErrorDomain Code=34 "Missing Developer Kit: As of macOS 13.0, you will need to install a KDK matching your build 22H417 to rebuild kernel collections." UserInfo={NSLocalizedDescription=Missing Developer Kit: As of macOS 13.0, you will need to install a KDK matching your build 22H417 to rebuild kernel collections.}
I
Hi developers,
I'm searching for a kind of way of working to develop my apps on a different machine than testing and final building.
For development I have a MacBook Pro m4 and for testing I want to outsource this to a Mac mini m1. I was searching for a solution and also contacted the support, but the answer wasn't really helpful.
Any ideas how to setup this configuration to automate this kind of tests?
Thanks a lot!
Has anyone noticed that there are way too many bugs caused by the liquid glass issues? I'm noticing apple adding private layer classes between existing UI views to add glassy effect and no way to disable them. Some of these bugs have no way around without rewriting the code from.
For example, search controller doesn't work anymore on iOS 26 but does work on iOS 18. The tab bar controller doesn't show at all on iOS 26 but does on iOS 18.
I'm wondering if other people are facing the same issues.
Topic:
Developer Tools & Services
SubTopic:
General
Hi,
We are facing the issue of commissioning our Matter device to google home through iOS device will be 100% failed.
Here is our test summary regarding the issue:
TestCase1 [OK]: Commissioning our Matter 1.4.0 device to Google Nest Hub 2 by Android device (see log
DoorWindow_2.0.1_Google_Success.txt
)
TestCase2 [NG]: Commissioning Matter 1.4.0 device to Google Nest Hub 2 by iPhone13 or iPhone16 (see log
DoorWindow_2.0.1_Google_by_iOS_NG.txt
)
TestCase3 [OK]: Commissioning our Matter 1.3.0 device to Google Nest Hub 2 by iPhone13
In TestCase2, we noticed that device was first commissioned to iOS(Apple keychain) then iOS opened a commissioning window again to commission it in Google’s ecosystem, and the device was failed at above step 2, so we also tried:
Commissioning the device to Apple Home works as expected, next share the device to Google Home app on iOS, this also fails.
Commissioning the device to Apple Home works as expected, next share the device to Google Home app on Android, this works as expected and device pops up in Google home of iOS as well.
Could you help check what's the issue of TestCase2?
Append the environment of our testing:
NestHub 2 version
Google Home app version
I have developed an app that I had been testing on the hardware device with the developer profile signed builds, I had setup a CloudKit container in development mode and also had tested with Production mode and they are working as expected. I have also tested storekit auto renewal subscriptions using Storekit Config file and all of that is working on the hardware device with the developer profile signed builds.
Now comes the Fun Part, I want to use the Distribution profile to test the app for production readiness, I had created a distribution profile and had set that up in the Release under target of the app in Xcode, I have also created sandbox tester account (which is showing inactive even after 7 days - though I am also logged in with this sandbox tester account on a hardware device and under developer setting it shows as a sandbox tester account)
All the subscriptions are showing Ready to Submit in the App Store Connect.
I need help understand this whole flow, how to ensure I can test CloudKit and storekit for production readiness and then publish my app for the review.
Thank you.
Topic:
Developer Tools & Services
SubTopic:
General
Tags:
Subscriptions
Developer Tools
CloudKit
StoreKit
My project requires the on-device apple intelligence models (FoundationModels) which are only available for iPad on
iPad Pro
M1 and later,
iPad Air
M1 and later,
iPad mini A17 Pro. If they don't judge on one of these devices, my project might not work properly as FoundationModels is a pretty big part of my project. For this reason I really need to know what devices the Swift Student Challenge will be judged on.
Topic:
Developer Tools & Services
SubTopic:
General
Tags:
Swift Student Challenge
Apple Intelligence
I have been trying to get into my account for several days now and I have tried everything.
First of you cannot get support because you need to be logged in so had to make another account to be able to post this. And even then the support is not working. Send an email a while ago and tried the call option and I have gotten no response from both.
I was supposed to launch my app last week and I have just not be able to log into my account. I keep getting the 'Too many verification codes have been sent. Enter the last code you received or try again later.' I didn't even do that, I just tried to log in and had that there. I have waited days and it's still there. I have tried changing the number for which I waited a day and now it's told me to wait another 6 days. This has caused so many problem and the lack of support is unbelievable.
Can anyone please help me get into my account or advise on what I can do ASAP.
Thanks,
Usama
Topic:
Developer Tools & Services
SubTopic:
General
Hello,
According to documentation, the App Store does not re-download the entire app when updating, but instead generates an update package containing only the changed content compared to the previous version.
I’d like to clarify the following points:
1. Granularity of file changes
If only part of a large file changes, does the update package include the entire file, or does it patch only the modified portions within that file?
2. Guideline on separating files
The documentation recommends separating files that are likely to change from those that are not. How should this be interpreted in practice?
3. Verifying the diff result
Is there a way for developers to check the actual diff result of the update package generated by the App Store without submitting the app?
Is there a diff command tool or comparison method closer to the actual App Store update process?
4. Estimating update size during development
For apps with large-scale resources, minimizing update size is critical.
Are there any tools or best practices to estimate the size of the update package before submitting to the App Store?
Any clarification or reference materials would be greatly appreciated.
Thank you.
Topic:
Developer Tools & Services
SubTopic:
General
Tags:
Developer Tools
App Store
App Store Connect
macOS
Hi all,
I'm trying to integrate Apple’s DeviceCheck API into my Flutter iOS app. I already have everything set up on the backend — the Apple private key, key ID, team ID, and DeviceCheck capability. The backend is generating and signing the JWT correctly and making requests to Apple.
However, I’m currently stuck on the frontend (Flutter):
👉 How can I generate the device_token required by the DeviceCheck API (via DCDevice.generateToken) in a Flutter iOS app?
I understand that DCDevice.generateToken() must be called from native Swift code. I previously attempted to use a MethodChannel to bridge this in Swift, but would prefer not to write or maintain native Swift code if possible.
I've looked for a prebuilt Flutter package to handle this, but nothing exists or is up-to-date on pub.dev.
Main Question:
Is there any Apple-supported way to generate the device_token for DeviceCheck from a Flutter app without writing Swift code manually?
If not, is DCDevice.generateToken() the only possible approach, and must I implement this via Swift and Flutter platform channels?
Thanks!
Hey Im currently trying to use the weatherkit API and Im seeing the following returned:
{"reason": "OVER_QUOTA"}
Im using the correct service, key and bundle ID.
Ive generated a private key too.
How can I allow the popup I am encountering while I run my UI tests with video recording in the Github actions.
Since these tests are running on VMs, it's not possible to manually click Allow. Also the remote robot cannot interact with OS-level dialogs.
In our Unity App for iOS build, when we opened the PDF from the app, it is automatically opening in landspace mode instead of portrait. In the android and windows apps, we are able to open in the portrait mode. We tried to make the changes in the project settings but it did not change.
Any way in which we can acheive this would be helpful for us.