I am integrating On Demand Resources into my Unity game. The resources install without any problems if the internet connection is stable: all resources are installed. While testing various scenarios without an internet connection, I encountered the following problem: if I turn off the internet during installation, I don't get any error messages, but if I turn the internet back on, the download no longer continues (and I still don't get an error). If I reopen the application with a stable internet connection, the download will always be at 0%. Please tell me what I am doing wrong.
#import "Foundation/Foundation.h"
#if ENABLE_IOS_ON_DEMAND_RESOURCES
#import "Foundation/NSBundle.h"
#endif
#include <string.h>
struct CustomOnDemandResourcesRequestData;
typedef void (*CustomOnDemandResourcesRequestCompleteHandler)(struct CustomOnDemandResourcesRequestData* handler, const char* error);
#if ENABLE_IOS_ON_DEMAND_RESOURCES
struct CustomOnDemandResourcesRequestData
{
NSBundleResourceRequest* request;
};
extern "C" CustomOnDemandResourcesRequestData* CustomOnDemandResourcesCreateRequest(const char* const* tags, int tagCount, CustomOnDemandResourcesRequestCompleteHandler handler)
{
NSMutableArray* tagArray = [NSMutableArray array];
for (int i = 0; i < tagCount; i++) {
const char* tag = tags[i];
if (tag != NULL) {
[tagArray addObject:[NSString stringWithUTF8String:tag]];
}
}
NSSet* tagSet = [NSSet setWithArray:tagArray];
CustomOnDemandResourcesRequestData* data = new CustomOnDemandResourcesRequestData();
data->request = [[NSBundleResourceRequest alloc] initWithTags:tagSet];
[data->request beginAccessingResourcesWithCompletionHandler:^(NSError* error) {
dispatch_async(dispatch_get_main_queue(), ^{
const char* errorMessage = error ? [[error localizedDescription] UTF8String] : NULL;
handler(data, errorMessage);
});
}];
return data;
}
extern "C" void CustomOnDemandResourcesRelease(CustomOnDemandResourcesRequestData* data)
{
[data->request endAccessingResources];
delete data;
}
extern "C" float CustomOnDemandResourcesGetProgress(CustomOnDemandResourcesRequestData* data)
{
return data->request.progress.fractionCompleted;
}
extern "C" float CustomOnDemandResourcesGetLoadingPriority(CustomOnDemandResourcesRequestData* data)
{
float priority = (float)data->request.loadingPriority;
return priority;
}
extern "C" void CustomOnDemandResourcesSetLoadingPriority(CustomOnDemandResourcesRequestData* data, float priority)
{
if (priority < 0.0f)
priority = 0.0f;
if (priority > 1.0f)
data->request.loadingPriority = NSBundleResourceRequestLoadingPriorityUrgent;
else
data->request.loadingPriority = (double)priority;
}
extern "C" const char* CustomOnDemandResourcesGetResourcePath(CustomOnDemandResourcesRequestData * data, const char* resource)
{
NSString* resourceStr = [NSString stringWithUTF8String: resource];
NSString* path = [[data->request bundle] pathForResource: resourceStr ofType: nil];
if (path == nil) {
return NULL; // или другое значение по умолчанию
}
const char* result = strdup([path UTF8String]); // копируем строку
return result; // в C# нужно будет освободить память
}
extern "C" void CustomOnDemandResourcesFreeString(const char* str) {
free((void*)str);
}
#else // ENABLE_IOS_ON_DEMAND_RESOURCES
struct CustomOnDemandResourcesRequestData
{
};
extern "C" CustomOnDemandResourcesRequestData* CustomOnDemandResourcesCreateRequest(const char* const* tags, int tagCount, CustomOnDemandResourcesRequestCompleteHandler handler)
{
CustomOnDemandResourcesRequestData* data = new CustomOnDemandResourcesRequestData();
if (handler)
handler(handlerData, NULL);
return data;
}
extern "C" void CustomOnDemandResourcesRelease(CustomOnDemandResourcesRequestData* data)
{
delete data;
}
extern "C" float CustomOnDemandResourcesGetProgress(CustomOnDemandResourcesRequestData* data)
{
return 0.0f;
}
extern "C" float CustomOnDemandResourcesGetLoadingPriority(CustomOnDemandResourcesRequestData* data)
{
return 0.0f;
}
extern "C" void CustomOnDemandResourcesSetLoadingPriority(CustomOnDemandResourcesRequestData* data, float priority)
{
}
extern "C" const char* CustomOnDemandResourcesGetResourcePath(CustomOnDemandResourcesRequestData * data, const char* resource)
{
return NULL;
}
extern "C" void CustomOnDemandResourcesFreeString(const char* str) {
}
#endif // ENABLE_IOS_ON_DEMAND_RESOURCES
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 our App we have a need to open Apple Developer App from our iOS App to guide user to Developer App.
But looks like there is no confirmed URL Scheme provided.
Can you help on this.
Topic:
Developer Tools & Services
SubTopic:
General
I am working on an iOS app and I want to achieve on demand module download inside the app when the user clicks on the module icon which he wants to use.
The idea is that we have a super app consisting of multiple modules say four independent apps/features and I want to separate each one so that when the user selects a specific app/feature, it’s downloaded on demand and then opened directly within the same super app resulting in a lower app size initially
I want to upload all the code of all modules to app store connect but when the user downloads the app, then only one module's code should be available to the user, the rest of the module's code should be downloaded when the user wants to use that module. I know apple restricts downloading new code but in my case I want to upload all the code to app store for review but just give option to the user to get rest of the code when needed. Any guidance, architectural advice, or example implementations would be highly appreciated.
Topic:
Developer Tools & Services
SubTopic:
General
Tags:
App Clips
iOS
App Store Connect
On demand resources
Hello,
I'm building this mobile app using Quasar - Capacitor on iOS.
The app is working perfectly, but I'm encountering an issue whenever I push the rep I get this error: "Error
Unable to open base configuration reference file '/Volumes/workspace/repository/ios/App/Pods/Target Support Files/Pods-App/Pods-App.release.xcconfig'.
App.xcodeproj:1"
I've tried every possible solution and made sure that everything is set perfectly.
Can anyone please help me with that?
Thanks in advance, appreciate you 🫶🏻
Hello,
I'm trying to use multiple Background Assets Packs to host map tiles.
This is problematic for a few reasons.
MKTileOverlay requires a method that returns a URL.
AssetPackManager.shared.url() throws, but it's unrelated to the url. It will return a URL even if it points to nothing.
There's no name-spacing. Everything appears to be flattened. (See Error below)
Simultaneously, this also is not the case as the documentation states: if there’s a path collision across multiple asset packs, then it’s undefined from which asset pack an individual file will be resolved.
AssetPackManager.shared.url() doesn't have an optional parameter to explicitly declare the asset pack you want to access, like AssetPackManager.shared.contents(at: FilePath) does
For example, I have multiple different tiles I'm trying to overlay for z: 10, x: 239, and y: 414.
Foo/10/239/414.png
Bar/10/239/414.png
And even when explicitly stating the fold directory, it appears that the assets are flattened down. As I'm receiving this error.
The URL for “Foo/10/239/414.png” couldn’t be retrieved: “414.png” couldn’t be copied to “239” because an item with the same name already exists.
Hi,
is there a compiled version of MailCore.swift? I want to build an easy-to-use mail app for my mother, who is 97, has a MacBook Air, but Apple Mail is too complicated for her. chatGPT said I am too stupid to compile it by myself.
Regards Stephan
In the beta of Icon Composer, I see macOS, iOS, and watchOS icons, but there is nothing about visionOS and tvOS. Those icons are particularly hard and it would be great if this app worked for developing icons for all Apple platforms.
I tried asking this in a WWDC group lab, but they didn't get to it and suggested posting to the forum.
Topic:
Developer Tools & Services
SubTopic:
General
Tags:
Developer Tools
Beta
Universal Apps
Icon Composer
I received this message when trying to submit a build using Rork.com. Can anyone tell me what this is and how to fix it?
There is a problem with the request entity - You are not allowed to create 'iOS' profile with App ID 'XXXXXXXX'.
✖ Failed to create Apple provisioning profile
Error: build command failed.
Topic:
Developer Tools & Services
SubTopic:
General
My Xcode project has the following configuration:
1 iOS app target
1 Xcode framework target (mach-o-type "Dynamic Library")
5 static libraries
Dependencies:
All the static libraries are target dependencies of the framework.
The framework is the only target dependency of the iOS app.
For the iOS app target, within the General tab > Frameworks, Libraries & Embedded content, I've set the framework as "Do not embed"
So now I have a dynamic framework which won't be copied to the .app bundle in the build output.
As per my understanding, this should result in a runtime error, dyld should not be able to find the framework files as they were not embedded in the final .app bundle.
But regardless, my app runs without any errors, using all the methods exposed by the framework.
What is the correct understanding here?
What exactly does Embed/Do not embed mean (apart from excluding the files from .app bundle)
When both settings are specified, is there any priority or precedence of one setting over the other?
I have a project inside the project structure. I have around 300 unit tests in the project.
I see that for some of the subprojects, the coverage numbers show up correctly, but for other subprojects and the main project, the coverage number shows zero, even though the tests are running successfully.
The log I get is:
Aggregation tool emitted warnings:
warning: /Users/ABC/Library/Developer/Xcode/DerivedData/projectABC-hfzmkbdgpiswoxfvvnvhrafaiqyb/Build/ProfileData/A8EEC1FB-1699-4C29-A88C-D3DDA226DBC0/0A416494-A393-4319-AA47-502D72084C9C-43351.profraw: raw profile version mismatch: Profile uses raw profile format version = 8; expected version = 10
PLEASE update this tool to the version in the raw profile, or regenerate the raw profile with the expected version.
I only have one Xcode (26.0.1) on my machine. I tried cleaning the derived data, the cleaning project, and rerunning the tests, but it hasn't helped.
Please help me get the coverage number back. Thank you.
It is gone from where I used to find it on Apple’s web site. Is it deprecated or no longer available?
Failed to fetch certificates:
This request is forbidden for security reasons - Unable to find a team with the given Content Provider ID '72df6041-c291-4d95-b690-2a3b75ff72f6' to which you belong. Please contact Apple Developer Program Support. https://developer.apple.com/support
I have already confirmed that: All API keys were generated correctly. All required roles and permissions have been assigned in App Store Connect.
To confirm my doubt, I requested api key from a fellow developer, and that worked in CodeMagic without throwing an error.
Could you please help me figure out why the given Content Provider ID is not being recognized?
Thank you.
In the online documentation for InstallerJS, it is stated that the unit for the availableKilobytes property of the target field is kilobytes.
Isn't it actually bytes because of a bug in the very first release of macOS that supported InstallerJS?
[Q] Has there been a fix in the recent years regarding this property that would explain why the documentation says it's kilobytes? Even though at the time of this writing, the unit is still bytes when you call my.target.availableKilobytes
I'm using this call to dump the value of this property in install.log:
system.log(my.target.availableKilobytes + '');
Ref. https://developer.apple.com/documentation/installer_js/target/1811975-availablekilobytes
(FB20448952)
Hello,
currently I am having trouble releasing an app because it crashes/does not launch on iOS 26.0.1. We have uploaded apps in the past so I tried building one of them with our current toolchain. I use Xcode 16.4, Kotlin version 2.0.0, LibGDX 1.13.1 and robovm/MobiVM 2.3.23. I uploaded the build to TestFlight and tested with physical devices running iOS 18.5 and 26.0.1. It runs fine on 18.5 but refuses to launch on the 26.0.1 device. I cannot retrieve a crash log or .ips file because none is written. When I write a Console log while the app crashes/does not launch I get no hints as to why it does so.
Do you maybe have additional ideas as to why it keeps not launching on iOS 26.0.1?
Topic:
Developer Tools & Services
SubTopic:
General
I need to automate updating to latest iOS betas as part of my ci script, but I can't get it to install iOS 26.0 beta for the life of me, using xcodes or xcodebuild.
I can see the version listed using xcodes runtimes --include-betas, and I tried sudo xcodes runtimes install "iOS 26.0-beta1", but I would get the error
Downloading Runtime iOS 26.0-beta1: 0%
Error: ProcessExecutionError()\
I also tried xcodebuild -downloadPlatform iOS -buildVersion 23A5260l, where I found the specific build id on apples dev images website. But I would get the error
iOS 23A5260l is not available for download.
Specific version download failed, trying downloadPlatform ios latest...
And similar error for trying xcodebuild -downloadPlatform iOS -buildVersion 26.0 or other version ids I found online. But this command would work for any other versions and betas listed on the website.
I was able to install iOS 26.0 through xcodebuild -downloadPlatform iOS, which automatically installed it for me, but this is unideal for my situation, as I want to control which betas to install instead of just the latest one (like iOS 18.6 beta that just came out).
Is anyone else also struggling with these errors?
xcodes version 1.6.2 Xcode version 26.0 Beta (installed and selected through xcode)
I am developing a Flutter app for food delivery (a multivendor e-commerce restaurant app).
In the vendor app (Android), I successfully implemented a background notification that stays active until the vendor responds with either Accept or Decline.
This works fine on Android, but I cannot get the same functionality working on iOS.
My requirements:
Vendor should receive a background notification.
The notification should include action buttons (Accept / Decline).
It should remain active until the vendor takes action.
My questions:
Is this possible to implement in iOS with Flutter?
If yes, what is the recommended way (e.g., firebase_messaging, flutter_local_notifications, flutter_foreground_task, or native iOS integration)?
Are there any iOS restrictions I should consider compared to Android background services?
I built this for Android using firebase_messaging + flutter_foreground_task + flutter_local_notifications.
On iOS, I tried setting up firebase_messaging and flutter_local_notifications, but I’m unable to keep the notification persistent with Accept/Decline action buttons.
I expected similar behavior to Android, but it seems iOS has more restrictions around background services and notification handling.
Dependencies I am using (relevant ones):
firebase_core: ^3.8.0
firebase_messaging: ^15.1.5
flutter_local_notifications: ^17.2.2
flutter_foreground_task: ^8.17.0
get: ^4.7.2
shared_preferences: ^2.3.2
Topic:
Developer Tools & Services
SubTopic:
General
Tags:
App Store Server Notifications
Notification Center
User Notifications
PushKit
Hi there,
I am trying to create my first iOS app using Visual Studio (Win 11) and .NET MAUI.
I created a developer account and if I want to start the debugger with my local device, VS forces me to Configure Automatic Provisioning. I can select my configured account but the operation fails (see screenshot).
I have no idea what is going wrong and I cannot find any setting in the developer account to fix this problem. Can anyone help me out, what is wrong and how to fix, thx!
Topic:
Developer Tools & Services
SubTopic:
General
Good morning everyone,
I am developing a Flutter app for Android and iOS.
When I press a button, the app detects the location of the device (obviously with permissions already granted).
On Android everything works correctly.
On iOS, however, when I press the button for the first time after opening the app, the location is detected after about 30-50 seconds.
On the other hand, if I repeat the operation later, the response time is drastically reduced (only a few seconds).
I am using the location package (https://pub.dev/packages/location), and the code to get the location is as follows:
var currentLocation = await location.getLocation();
Has anyone experienced this problem before or knows how to solve it?
Thank you very much!
Federico
I am experiencing an issue with PHP on macOS where errors and warnings are not displayed, either in the terminal or when running scripts through the built-in PHP server.
Topic:
Developer Tools & Services
SubTopic:
General
Our app has an old codebase, originating in 2011, which started out as purely Objective-C (and a little bit of Objective-C++), but a good amount of Swift has been added over time as well. Lots of Objective-C and Swift inter-op, but in general very few 3rd party libraries/frameworks. Like many other codebases of this size and age, we have a good amount of accumulated tech debt. In our case, that mostly comes in the form of using old/deprecated APIs (OpenGL primary amongst them), and also using some ‘tricks’ that allowed us to do highly customized UI popups and the like before they were officially supported by iOS, but unfortunately are still in use to this day (i.e. adding views directly to the UIWindow such that that are ‘on top’ of everything, instead of presenting a VC). Overall though, the app is very powerful and capable, and generally has a relatively low crash rate.
About two months ago, we started seeing some new crashes that seemed to be totally unrelated to the code changes that were made at the time. Moreover, if a new branch with a feature or bug fix was merged in, the new crash would either disappear entirely, or move somewhere else. These were not ‘normal’ crashes either - when hooked up to the debugger in Xcode, often times the crashes would happen when calling into system library (e.g. initializing a UIColor object).
Some of the steps taken to try and mitigate or eliminate these crashes include:
Rolling back merges
Often worked, but then most future merges would cause a new and different crash to appear
Using the TSan and ASan tools to try and diagnose thread or memory issues
TSan reported a couple of issues near launch that have been fixed, and there are others in some areas of the app, but they have been around a long time and don’t appear to correlate with any recent changes, nor did fixing the ones at launch (and throughout testing to try and reproduce crashes) result in elimination of the new crashes
ASan does not identify any issues
Modifying the code changes in a branch before merging it in
In one case where the changes were limited to declaring ‘@objc static var: Bool’ in a Swift class and setting a value to it in a couple of places, simply removing the @objc from the declaration would result in the crash going away. Since the var had to be exposed to Objective-C, it was eventually moved to a pure Objective-C class that already existed and is a singleton (not ideal, but it’s been around a long time and has not yet been refactored) in order to preserve the functionality and the crash was no longer reproducible
Removing all 3rd party libraries or frameworks
Not a long-term solution, and this mostly worked in that the crashes went away, but it also resulted in removal of long-existing features expected by our users
Updating 3rd party libraries and frameworks when possible (there were some very old ones)
Updating these did not have any effect on the crashes, except that the crashes moved around in the same way as when merging in a branch, and again, where the crash actually occurred was uncorrelated with the library/framework that was updated
Changes to the App’s Build Settings in Xcode
Set supported/valid architectures to arm64 exclusively
Stripping of all architectures other than arm64 from 3rd party binaries
Cleaning up of old/outdated linker flags
Removal of other custom build flags that were needed at one point, but are no longer relevant
Generally trying to make all the build settings in our (quite old/outdated) app match those of a newly created iOS app
Code signing inject base entitlements is set to YES
Removal of old/deprecated BitCode flag
These changes seemed to help and the codebase was more ‘stable’ (non-crashing) for a while, but as we tried to continue development, the crashes would reappear
Getting crash reports off of test devices and analyzing them based on the various documents about crash reports provided by Apple
This was helpful and pointed to new things to investigate, but ultimately did not help to identify the root cause of these crashes
Throughout all of the above, the crashes would come and go, very reproducibly for a given branch being merged in, but if a subsequent branch is merged in, the crash may go away, or simply move somewhere else - sometimes it would crash in our code that calls other parts of our code, and other times when calling system frameworks (like the UIColor example above). One thing that is consistent though, is that the crash would never happen anywhere near the code that was changed or added by a branch that was merged in.
Additional observations when trying to figure out the cause of these crashes:
Sometimes the smallest code change would result in a crash happening or not
The crash reports generated on-device vary quite a bit in terms of the type and reason for the crash
All crashes have an Exception Type of EXC_BAD_ACCESS, but vary between (SIGABRT) (SIGBUS) (SIGKILL) (SIGSEV)
The crashing thread is often (but not always) on Thread 0 (main thread), and often the first line in the backtrace would be just ‘???’, sometimes followed by a valid memory address and file, but often times just ‘0x0 ???’
Most crash reports have an exception subtype of KERN_PROTECTION_FAILURE
Many also state that the Termination Reason is ‘CODESIGNING 2 Invalid Page’
This in particular was investigated thoroughly, including looking at the Placing Content In A Bundle document but after further changes to ensure that everything is in the right place, the crashes were still observed
Another odd thing in most of the crash reports is in the Binary Images section, there is a line that once again is mostly ???s or 000s - specifically ‘0x0 - 0xffffffffffffffff ??? unknown-arch <00000000000000000000000000000000> ???’
The crashes occur on different physical devices, typically the same crash for a given branch, and regardless of iOS version
This includes building from different Macs. We did observe some differences between versions of Xcode (crashed similarly when built from an older version of Xcode, but not from a newer one), but we recently had all developers ensure they are running Xcode 16.4 - we also tried Xcode 26, but the crashes were still observed
Overall, it seems like there is something very strange going on in terms of how the App binary is constructed such that a small code change somehow affects the binary in such a way that memory is not being accessed correctly, or is not where it is expected to be. This level of what appears to be a build-time issue that manifests in very strange run-time crashes is both confusing and difficult to diagnose. Despite the resources provided by Apple for investigation and diagnosis, we cannot seem to find a root cause for these crashes and eliminate them for good.