Dive into the vast array of tools and services available to developers.

Posts under General subtopic

Post

Replies

Boosts

Views

Activity

Watch App Not available to install
I added an Apple Watch app target for an iOS app. If I install it directly through Xcode it runs, however it seems to be able to communicate with iphone through Watch Connectivity framework and once I close the app it seems to uninstall itself from the watch. When I installed the iphone app frist, the app does not show up on the available apps on the iphone Watch application, what could be the issue ? The iphone app was created using react native through expo. Testing Devices Iphone 13 pro max IOS 26.0.1 --- Apple Watch Series 4 WatchOS 10.6
2
0
256
Nov ’25
Firebase FCM iOS Notifications Not Sending – APNs "Auth Error from APNs or Web Push"
Hi everyone. I’m working on an iOS app that uses Firebase Cloud Messaging (FCM) to send push notifications. I’m encountering an issue when trying to send notifications either from Firebase Functions or directly using the FCM token with the Firebase Admin SDK and REST API. Error Message: FirebaseMessagingError: Auth error from APNS or Web Push Service code: 'messaging/third-party-auth-error' message: 'Auth error from APNS or Web Push Service' What I’ve Set Up: iOS App Registered in Firebase Bundle ID: Kilovative-Designs.ParkAware APNs Key downloaded from Apple Developer Portal Team ID and Key ID correctly entered in Firebase Console Firebase Admin SDK Service Account setup and used for sending Device is successfully receiving FCM tokens Subscribed to topics and calling Messaging.messaging().subscribe(toTopic:) works Using firebase-admin to send FCM messages via sendToDevice or sendToTopic What I’ve Tried: Tested push via firebase-admin in Node.js (got same APNs auth error) Tested with both topic-based and direct token-based push Confirmed the .p8 key is uploaded in Firebase, with correct Key ID and Team ID Tried generating a new APNs Auth Key Firebase Admin SDK is initialized with the correct service account Using Node.js firebase-admin with a known good FCM token, and sending this payload: { notification: { title: "Test Notification", body: "This is a direct FCM test" }, token: "cxleOwi73EhFh9C5_V4hED:APA91bE3W..." } Returns: FirebaseMessagingError: Auth error from APNS or Web Push Service Questions: Are there known conditions under which Firebase throws this error even if the APNs Auth Key is present? Does the Bundle ID need to start with com. in the Apple Developer Portal and Firebase for APNs authentication to work? Could this be a certificate or provisioning profile mismatch issue (even when using a .p8 key)? Is there a way to manually validate APNs authentication from Firebase outside of actual push delivery? Any insight or guidance would be incredibly helpful. I’m new to developing and have tried repeated efforts to fix this issue but still haven’t resolved it. Thanks in advance!
0
0
123
Jul ’25
"A software update is required" message is shown when running beta software
I'm running the latest iOS 26 beta 5 on my iPad and iPhone. Whenever I run these betas, I always get the message below telling me an update is available (whenever I plug in my devices). I'm assuming this is because the update check is detecting that I have something other than the latest production release. Obviously, it makes no sense to ask me to update to a prod build when I'm running the dev beta. Is there a way to turn this message off? Or maybe Apple could handle this situation better? Or maybe it's just a bug and I'm the only one getting this message?
1
0
69
Aug ’25
App crashing on startup
I am a developer working on an iOS enterprise application. When I deployed the release version to my device, it crashes upon startup. It works fine in debug mode on my device. The app is an upgraded version of Xamarin Form to .NET MAUI. I have attached a crash report. I would appreciate any help/insights on how to resolve. --John
2
0
119
Apr ’25
Trouble setting up watches to use TestFlight that are AWFK configured
I am developing a simple watch app and I use my personal watch for development with Xcode. Personal watch is series 10 gps only. I have two other watches that I want to use for testing the app, but not needing them to be connected to Xcode. The test watches have cellular option, and I need a cell plan per watch because the watches need to be standalone, not counting initial setup. To get the standalone cell plan the watches need to be configured using AWFK. Here is what I have tried/current issues. I switch between all three watches on my phone using the watch app. Originally tried to put test watches in developer mode, thinking I would connect to Xcode, developer mode is not available when watch is setup using AWFK. Pushed the watch app to apple connect, setup TestFlight group, added the test users and my phone user, accepted invites TestFlight is installed on my phone, I see the testflight setup for the watch app I set a test watch using watch app on the phone, run install for the test app from TestFlight on the phone, spinner moves for awhile then goes back to Install. I am not able to get the watch app installed on the test watches from the phone. Is what I am attempting to do supported? I haven't found much specific documentation on this. If I pair the test watches as regular watches, set them to developer mode, can I pair them again as AWFK and will developer mode survive the switch? Or is there something really simple that I'm overlooking? Appreciate any help that can be extended.
0
0
172
Dec ’25
Attach a debugger to app launched via `devicectrl`
With the latest (26) version of Apple's developer tools, is there a way to manually attach a debugger (other than lldb) to an iOS app launched with "devicectl device process launch --start-stopped"? In the past, this was possible via the ios-deploy third-party tool (now defunct), which provided a debugserver port. This information is notably missing when using devicectrl – although the process ID of the launch process is provided, and the tool is clearly aimed at letting you launch and attach to processes from the command line. lldb can, of course, attach via its built-in support for this using the device set of commands. But I'm explicitly looking for a way to attach my own debugger via the GDB-compatible debug proxy.
2
0
171
Oct ’25
On Demand Resources does not show an error
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
0
0
89
Oct ’25
(React-Native Expo) Add Dependency for Local Native Module
I am converting a project to expo and have created a new expo project. I have migrated most of the react-native code but need to add a native module. I added it using npx create-expo-module expo-settings --local The name of the module DataRetrieval. So far so good but I need a package SwiftCSV. I added it as a dependency to Pods and did a npx pod-install but when I try to import SwiftCSV as a subproject, it is not found. So I tried adding to the DataRetrieval podspec an s.dependency 'SwiftCSV'. I then get an error that there is a redefining of symbols. I am able to include this in a regular Swift file but not in the sub-module under expo. What am I missing about how to not only add a native module but to add dependencies and include it in my project? Thanks, Ray
1
0
344
Feb ’25
Apple 1-Hour Security Feature Keeps Triggering When Registering iPhone (Starlink User)
Hi everyone, I’m hoping someone here can shed some light on what’s going on with Apple’s one-hour security delay when trying to register an iPhone for development use. I’m currently setting up an app build using Expo / EAS and a paid Apple Developer account. Every time I scan the device registration QR code or try to authorise my iPhone as a development device, I get hit with a “security delay — try again in one hour” message. This happens every single time, even if I wait the full hour. The device is the same iPhone I always use, signed in to the same Apple ID, and verified with 2FA. The only thing unusual about my setup is that I’m using Starlink for internet access. Because Starlink uses dynamic IP routing and your exit node changes frequently (depending on which satellite or ground station you’re on), it looks like I’m signing in from a new location each time — sometimes even hundreds of miles apart. It seems that Apple’s security system flags each of these as a “new login” or “new device registration,” then enforces a one-hour safety lockout. That makes it basically impossible to register my device and proceed with iOS builds or testing. Has anyone else run into this problem while using Starlink (or other dynamic-routing connections like VPNs or cellular hotspots)? And if so — is there any known workaround or setting to whitelist a device, stabilise verification, or bypass the repeated one-hour wait? This feels like an over-protective security feature that doesn’t play well with modern satellite internet setups. Any insights from the Apple engineers or other developers would be hugely appreciated. Thanks, Tim Lazenby
0
0
76
Oct ’25
Unable to Enable “Media Services (MusicKit, ShazamKit)” When Creating a Key
I am trying to integrate Apple Music API using MusicKit and need to generate a Developer Token. However, when I try to create a new key from the Certificates, Identifiers &amp; Profiles section, the “Media Services (MusicKit, ShazamKit, Apple Music Feed)” option is grayed out. We are getting the error 'there are no identifiers available that can be associated with the key.' Although we did checkmark 'musickit' in app services. I have already: Enrolled in the paid Apple Developer Program Created a valid App ID under Identifiers Logged in as the Account Holder Tried multiple browsers and devices Despite this, the option remains disabled. Could you please enable this or let me know what further steps I need to take? Thank you!
0
0
193
Apr ’25
On demand module download
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.
1
0
134
Oct ’25
Failed to set up credentials.
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.
2
0
65
Oct ’25
Missing Apple-Hosted Background Assets info
After combing the forums and release nodes, here are some extra notes to help other developers using Apple-Hosted Background Assets. I don't promise I got this perfect, but it may help direct you. AssetPack.Status is an OptionSet (not an enum!) - Critical API detail missing from guide It's a bitmask where values can be combined 2⁰ (1) = available to download 2¹ (2) = update available 2² (4) = up to date 2⁶ (64) = downloaded Example: status value 69 = 0b1000101 = available + up to date + downloaded Use .contains() method to check specific flags AssetPack.version property - Undocumented feature Auto-assigned by App Store Connect for Apple-hosted packs Increments with each upload of same asset pack ID No file deduplication across asset packs Same file in two packs = counts twice toward 200GB limit Best practice: create separate pack for shared files Shared namespace path requirements Asset pack ID is NOT part of file path Each file must have unique relative path across ALL app's asset packs Example: Foo/10/239/414.png and Bar/10/239/414.png are distinct and won't collide Additional url(for:) bugs beyond iOS 26.1 fix iOS 26 Beta 5: "item with same name already exists" error Workaround: Request URL for directory, then manually append filename TestFlight-only availability - Major limitation not mentioned! Apple-hosted packs currently ONLY work for internal testers on TestFlight or from App Store. Won't work from Xcode until "later this year" HTTP 400 errors expected for non-TestFlight installs ba-serve port workaround URL override port bug exists on multiple device types Use ba-serve -p 443 instead of custom ports
1
0
320
Oct ’25
Device token for DeviceCheck API
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!
0
0
171
Apr ’25
How to implement background notifications with action buttons (Accept/Decline) in iOS Flutter app?
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
1
0
264
Sep ’25
iOS Distribution - Users Still Installing the Old Version After Update
I developed an app using Unity and exported it as an iOS project file so that I could package it in Xcode. Now, I’m facing an issue where users who previously installed version 1.0 are still seeing the old version after installing the updated version 2.0. Although the installation process for version 2.0 appears to complete (with the installation animation), the app still opens as version 1.0. I am an individual developer but used enterprise signing for distribution. I’m quite confused and have looked into the issue—some sources mention it might be related to CFBundleVersion, but modifying it didn’t help. I’d really appreciate some help with this. o(╥﹏╥)o
1
0
271
Sep ’25
What is the unit used for the availableKilobytes property of the target object?
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)
0
0
79
Sep ’25
[REQUEST] for a tool/method/guidance how to create privacy manifest (PrivacyInfo.xcprivacy) when you don't have Xcode/mac
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.
1
0
127
Sep ’25
Intermittent Screen Lock During Appium Tests on iOS 18 Simulator
I am running Appium tests on an iOS 18 simulator, and I am encountering an intermittent issue where the device screen gets locked unexpectedly during the tests. The Appium logs show no errors or unusual activity, and all commands appear to be executed successfully. However, upon reviewing the device logs, I see entries related to the lock event, but the exact cause remains unclear. SpringBoard: (SpringBoard) [com.apple.SpringBoard:Common] lockUIFromSource:Boot options:{ SBUILockOptionsLockAutomaticallyKey: 1, SBUILockOptionsForceLockKey: 1, SBUILockOptionsUseScreenOffModeKey: 0 } SpringBoard: (SpringBoard) [com.apple.SpringBoard:Common] -[SBTelephonyManager inCall] 0 SpringBoard: (SpringBoard) [com.apple.SpringBoard:Common] LockUI from source: Now locking Has anyone experienced similar behavior with Appium on iOS 18, or could there be a setting or configuration in the simulator that is causing this issue?
0
0
123
Apr ’25