Observed few times that providerDidBegin(_:) delegate never called for the complete app session after app init(as part of this CXProvider registered) which was built with SDK 26 and running on iOS 26.
This issue observed multiple times with our testing. Since there is no providerDidBegin:, client is marking CallKit as not ready and never report any calls for VoIP APNS and ended up in app crash due to "[PKPushRegistry _terminateAppIfThereAreUnhandledVoIPPushes]"
Please refer for sysdiagnose logs : FB19778306
General
RSS for tagDelve into the world of built-in app and system services available to developers. Discuss leveraging these services to enhance your app's functionality and user experience.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Hi developers,
I have a question if it is possible to open in my application not main window but a specific ViewController, when application is installed but not running.
When the application is running in background and I scan QR code, then specific ViewController is opened over SceneDelegate and method 'userActivity'. But this does not work when the application is only installed, but not running.
The Appstore link is here: https://apps.apple.com/us/app/don%C3%A1tor/id6473955033
Hi everyone, on iOS, when a VoIP call arrives and the user accepts it from the lock screen (after unlocking with Face ID/Touch ID), is there any way to automatically bring my app to the foreground and show the in-app call screen, instead of staying in the system CallKit UI?
I've been trying to understand what kind of UX is available if my app is using the default-dialer capability. I have found https://developer.apple.com/documentation/livecommunicationkit/preparing-your-app-to-be-the-default-dialer-app and I am in the EU.
On android I built the UX I want and it's quite neat, so now I'm trying to work. out what I can get on iOS. Because the product is kind of worthless with just android.
I have built a simple dialer ux with a numberpad, contact lookup etc. Then when the user presses the Call button does it have to pop up the system prompt "Call number"? Does it have to swap over to the system ui for the actual call? So there's no way to show information about the call, during the call? Or am I using the frameworks incorrectly? I am very new to iOS development.
TrueCaller and others show validation, but as I understand it they pre-fetch all the data, I can't do that.
I am working on enabling app clip experience for one of our products, where App X would use default appclip url of App Y to launch an experiences using UIApplication.shared.open(defaultAppclipUrl).
Im successfully able to build and submit to appstore by testing via local expereince, but later noticed a strange behaviour in production without local expereince setup, where tapping a button in App X (with default appclip url) fails to launch the appclip for the first time but loads fine from the second try.
I learned that in background Apple would make a API call to fetch details about app clip availability in store and then proceed to launch app clip locally, hence the delay->timeout->failure for first tap.
Once the invocation starts working it would be consistent. After couple of minutes of break say 20m, it again fails for 1st time. I'm assuming that iOS is invalidating the cache on device regarding availability of appclip in store and hence the API call is made again and there is a delay and failure.
can you please help us with this issue.
Is there any way i can show popover tip on tabItem inside of TabView
TabView(selection: selected) {
Group{
HomeView()
.tabItem {
Label {
Text("Home")
} icon: {
Image(selected==1 ? "home-icon" : "home-unselect")
}
// show tip over the Home icon
}
.tag(1)
}
}
When fetching Apple Savings transactions via FinanceKit, the data is missing key context about where the deposit originated from.
Here’s an example transaction I retrieved:
Transaction(
id: 77371A0C-7122-42C7-BEBC-85BDF654AD2B,
accountID: 68D9FE9D-6DA6-4A27-BB9D-19209CD29A56,
transactionAmount: 1.46 USD,
creditDebitIndicator: .credit,
transactionDescription: "Deposit",
originalTransactionDescription: "",
merchantCategoryCode: nil,
merchantName: nil,
transactionType: .deposit,
status: .booked,
transactionDate: 2025-08-20 13:44:26 +0000,
postedDate: 2025-08-20 13:44:26 +0000
)
As shown:
transactionDescription is just "Deposit"
merchantName is nil
No indication of the source account
In contrast, the Wallet app clearly shows context for Apple Savings account deposits, such as:
"Apple Card" (daily cash)
"Bank of America" (external transfer)
"Interest Paid" (we do see "Interest" come through correctly)
Without this metadata, third-party apps cannot replicate Wallet’s clarity about where a deposit came from. Every deposit simply appears as "Deposit", which is ambiguous.
Request:
Please expose additional metadata for Apple Savings account transactions, for example:
sourceAccountName (e.g. “Apple Card” or “Bank of America”)
transactionOriginType (cashback, external bank transfer, interest)
institutionIdentifier or similar for external banks
This would allow developers to show clear, Wallet-quality transaction details and avoid confusing users.
Impact:
The lack of source info makes Savings deposits nearly indistinguishable from one another, even though Wallet provides this context. For apps leveraging FinanceKit, this results in a poorer experience compared to Apple’s own Wallet.
Thanks!
Topic:
App & System Services
SubTopic:
General
After updating from iOS 18 to iOS 26, our app icon appears to have automatically received the new 'Liquid Glass' effect. We confirmed that this change occurred without us releasing a new app update.
My questions are:
Is this a system behavior where iOS 26 automatically applies the new icon style to existing apps?
If so, is it possible for a developer to control or customize this effect? I am also wondering if there are any methods other than using Icon Composer.
I’m testing FinanceKit with Apple Cash and noticed that transfers don’t include any counterparty information.
Here’s an example transaction I fetched:
Transaction(
id: 5A96EA49-B7C9-4481-949D-88247210C1D7,
accountID: 28D7C0E2-DC2A-4138-B105-BCE5EE00B705,
transactionAmount: 30 USD,
creditDebitIndicator: .credit,
transactionDescription: "Transfer",
originalTransactionDescription: "",
merchantCategoryCode: nil,
merchantName: nil,
transactionType: .transfer,
status: .booked,
transactionDate: 2025-08-19 21:57:54 +0000,
postedDate: 2025-08-19 21:57:55 +0000
)
As you can see:
transactionDescription is just "Transfer"
originalTransactionDescription is empty
merchantName is nil
No counterparty details are exposed
In contrast, the Wallet app clearly shows the other person’s name and avatar for Apple Cash transfers, making it easy to understand who the payment was with. In FinanceKit, there’s no way to distinguish between transfers with different people — every transfer looks identical.
Questions
Is there a hidden or planned field for Apple Cash counterparty information?
Can FinanceKit provide at least minimal metadata (e.g., contact name, initials, or a privacy-preserving identifier)?
Is there any workaround today to correlate Apple Cash transfers with contacts?
Feature request: Please expose counterparty information for Apple Cash transfers. Even something as simple as a stable identifier or name string would enable developers to build Wallet-quality transaction detail screens.
Thanks!
Topic:
App & System Services
SubTopic:
General
Hello,
I would like to ask if there is any possibility to invoke the Apple Sysdiagnose via an API call. I cannot find any API reference for Sysdiagnose.
I am aware only about the manually invocation. https://it-training.apple.com/tutorials/support/sup075/
However, this is pretty annoying since a reproduction of a hunted bug takes several hours, so I am looking for the way how to invoke Sysdiagnose from our code.
We are currently developing a VoIP application that supports Local Push extention.
We discovered an issue with this app where the performEndCallAction response to reportCallWithUUID is occasionally slow.(See below for detail)
It usually works without any issues, so we believe there is no problem with the app's processing flow.
This issue only occurs very rarely, but each time it does there is a delay of about 60 seconds,
which leads us to suspect that there is some kind of problem on the iOS side, and that fail-safe processing is occurring after 60 seconds.
Do you know of a workaround for this issue?
Hi everyone,
I’m developing a screen-time and focus app that uses Apple’s Family Controls framework to block distracting apps and reward users through a gamified experience.
Apple approved Family Controls (Distribution) for the main app identifier,
but they did not approve the required extension target (which implements DeviceActivityMonitor, required for the framework to function).
Because of this, I can’t archive or upload the app to TestFlight — and I’ve been stuck in limbo for over 2 months.
This is severely delaying my launch. The app works perfectly, but I can’t release it because the extension wasn’t included in the entitlement approval.
Has anyone else run into this with Family Controls?
Is there any known way to escalate or fast-track approval for additional app IDs or targets?
Would really appreciate any help, advice, or hacks. 🙏
Thanks,
Enzer
From some moment of time, Universal Links stopped working for our app.
As per my understanding, application reinstall or update caused system to fetch AASA file from CDN, which started to reply with 404 for our domain (https://app-site-association.cdn-apple.com/a/v1/app.link.digidentity.eu).
In the meantime, nothing has changed inside our app or on our BE (https://app.link.digidentity.eu/.well-known/apple-app-site-association).
Executing "curl -v https://app-site-association.cdn-apple.com/a/v1/app.link.digidentity.eu" returns following result
* IPv6: (none)
* IPv4: 17.253.15.197, 17.253.29.202, 17.253.37.203, 17.253.37.208, 17.253.57.197, 17.253.57.208, 17.253.29.196
* Trying 17.253.15.197:443...
* Connected to app-site-association.cdn-apple.com (17.253.15.197) port 443
* ALPN: curl offers h2,http/1.1
* (304) (OUT), TLS handshake, Client hello (1):
* CAfile: /etc/ssl/cert.pem
* CApath: none
* (304) (IN), TLS handshake, Server hello (2):
* (304) (IN), TLS handshake, Unknown (8):
* (304) (IN), TLS handshake, Certificate (11):
* (304) (IN), TLS handshake, CERT verify (15):
* (304) (IN), TLS handshake, Finished (20):
* (304) (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / AEAD-CHACHA20-POLY1305-SHA256 / [blank] / UNDEF
* ALPN: server accepted http/1.1
* Server certificate:
* subject: C=US; ST=California; O=Apple Inc.; CN=app-site-association.cdn-apple.com
* start date: Jul 7 00:05:26 2025 GMT
* expire date: Sep 30 19:08:48 2025 GMT
* subjectAltName: host "app-site-association.cdn-apple.com" matched cert's "app-site-association.cdn-apple.com"
* issuer: CN=Apple Public Server ECC CA 11 - G1; O=Apple Inc.; ST=California; C=US
* SSL certificate verify ok.
* using HTTP/1.x
> GET /a/v1/app.link.digidentity.eu HTTP/1.1
> Host: app-site-association.cdn-apple.com
> User-Agent: curl/8.7.1
> Accept: */*
>
* Request completely sent off
< HTTP/1.1 404 Not Found
< Apple-Failure-Details: {"cause":"dial tcp: lookup app.link.digidentity.eu on 10.100.53.53:53: dial tcp 10.100.53.53:53: connect: connection refused"}
< Apple-Failure-Reason: SWCERR00302 Network error (temporary)
< Apple-From: https://app.link.digidentity.eu/.well-known/apple-app-site-association
< Apple-Try-Direct: true
< Cache-Control: max-age=3600,public
< Content-Length: 10
< Content-Type: text/plain; charset=utf-8
< Date: Thu, 21 Aug 2025 10:36:47 GMT
< Vary: Accept-Encoding
< Expires: Thu, 21 Aug 2025 10:36:57 GMT
< Age: 2952
< Via: http/1.1 uklon5-vp-vst-011.ts.apple.com (acdn/1.16221), https/1.1 uklon5-vp-vfe-007.ts.apple.com (acdn/4.16219), http/1.1 defra1-edge-lx-005.ts.apple.com (acdn/260.16276), http/1.1 defra1-edge-bx-006.ts.apple.com (acdn/260.16276)
< X-Cache: hit-fresh, hit-stale, hit-fresh, hit-fresh
< CDNUUID: e06b4b03-f97d-48f8-97bb-774359a39fa2-4464142837
< Connection: keep-alive
<
Not Found
* Connection #0 to host app-site-association.cdn-apple.com left intact
On our end, we did not find any reason why it can be not available for Apple to fetch. Is SWCERR00302 an indication of problem on our end? Any help is appreciated
Hi,
I'm working on a game for the past few years using first Unreal Engine 4, and now Unreal Engine 5.4.4.
I'm experiencingan unusual crash on startup on some devices
. The crash is so fast that I'm barely able to see the launching screen sometimes because the app closes itself before that.
I got a EXC_CRASH (SIGABRT) so I know that it's a null pointer reference, but I can't quite wrap my head about the cause, I think that's something messed up in the packaging of the app, but here is where I'm blocked, I'm not that accustomed with apple devices.
If someone has some advise to give, please, any help will be very valuable. Many thanks.
Log :
Crash Log on Ipad
Hi everyone,
I’m building a sports performance app for Apple Watch that uses the onboard IMU to analyze swings and impacts in sports like tennis and golf. The goal is to estimate club/racket head speed, ball speed, and shot quality in real time from wrist motion data.
With Core Motion, I can currently get deviceMotion updates at ~100 Hz. While this is fine for general movement tracking, the actual ball impact happens much faster — 5–10 ms in tennis and ~0.5 ms in golf. Many of the high-frequency vibration/impact components are missed at 100 Hz, making it hard to directly measure or more accurately estimate certain performance metrics.
Questions for Apple / community:
1. Is there a way to access raw accelerometer and gyroscope data at higher sampling rates (e.g., 500–1000 Hz) on Apple Watch?
2. If not, is this due to hardware limitations or an API/software constraint?
3. Are there any research, partner, or beta programs that allow deeper sensor access for sports-science use cases?
Even modest increases in IMU sampling could unlock more accurate ball-speed estimates, impact force analysis, and strike-quality detection without needing external sensors — making Apple Watch a best-in-class wearable for precision sports analytics.
Happy to share more about the current approach, sample data, and potential use cases if helpful.
Thanks,
Max
in beta5 now the custom sound configuration works and it actually plays sound when alarm runs off BUT the sound is played only for once. has anyone figured out on how to put it on repeat? or do I have to wait on this for another couple of weeks💀
Topic:
App & System Services
SubTopic:
General
Can't I just add up all of the accelerations of the accelerometer and then use this physics equation to get distance?
d = v(i) x t + (1/2) x a x t ^2
In this:
v(i) would be 0
t = 1 second
a = all accelerometer speeds added together for.1 second
t = 1 second
Can't I just use this equation to get vertical velocity? A lot of people have said it is impossible but It has been done with variometer apps. I can’t figure out the code. Can anyone guide me in the right direction?
v(f) = v(i) + a x t
v(i) = 0
a = y-axis acceleration for 1 second
t = 1 second
Please let me know if this is possible.
Thank you so much for your help.
Hi Team,
We are encountering issues while implementing the live translation feature in our VoIP application using CallKit on iOS 26.0. Specifically, we are attempting to use the CXSetTranslatingCallAction transaction to enable translation programmatically during an active call.
However, executing this transaction results in the following error:
"Couldn't communicate with a helper application."
This occurs consistently when we attempt to trigger the translation setup without user interaction. We are seeking clarification on the following points:
Is it possible to enable CallKit's live translation feature using CXSetTranslatingCallAction purely programmatically, without requiring the user to interact with the system-provided Call UI?
What does the above error indicate in the context of CXSetTranslatingCallAction? Are there specific conditions, entitlements, or background service requirements that must be fulfilled to communicate with CallKit?
Code snippet:
let translationAction = CXSetTranslatingCallAction(call: callUUID, isTranslating: true, localLocale: Locale.init(identifier: "es-ES"), remoteLocale: Locale(identifier: "en-US"))
let transaction = CXTransaction(action: translationAction)
callController.request(transaction)
We would deeply appreciate any guidance you can provide regarding the feasibility of our approach and how to address this error.
Thank you for your support.
I've run Speakerbox(https://docs-assets.developer.apple.com/published/8e99045a90e2/MakingAndReceivingVoIPCallsWithCallKit.zip) to check the behavior of CallKit.
When there was one active call and one on hold and another call was received, the behavior was defferent depending on whether I operated it from a headset or not.
No headset or operated from CallKit screen
When "End & Accept" tapped: the active call is hung up, and the received call is answered.
When "End Held & Accept" tapped: the held call is hung up, the active call is held, and the received call is answered.
Operated from headset
Answer opeation cannot be performed for unknown reasons
Disconnect operation caused that all calls other than the one on hold are hung up and the held call is unheld.
Hold operation caused that the active call is held and the received call is answered. (Strangely, there are two held calls.)
And when I toggle calls at this time, one of the two on hold is hung up for unknown reasons.
I tried changing the settings of CXProviderConfiguration and CXCallUpdate, and changing the options in the Audio Session category, but it did not improve.
I checked CXActions occurring, and it was as follows.
(Call A = held call, Call B = active call, Call C = received call)
Disconnect (or Answer?) operation
(lacking CXEndCallAction for Call A)
CXEndCallAction for Call B
CXAnswerCallAction for Call C
CXEndCallAction for Call C <- weird
CXSetHeldCallAction for Call A onHold=false
Hold operation
(lacking lacking CXEndCallAction for Call A)
CXSetHeldCallAction for Call B
CXAnswerCallAction for Call C
Toggle calls
CXSetHeldCallAction for Call C onHold=true
CXSetHeldCallAction for Call A onHold=false
CXSetHeldCallAction for Call B onHold=false <- weird
CXEndCallAction for Call B
Hi there,
we are implementing the new ContactProviderExtension introduced in iOS 18 and we are able to activate the extension, add data and everything.
But we want to add domains to seperate contacts and currently we are getting an error "ContactProvider.ContactProviderError.domainNotRegistered".
That makes sense because in the API docu we are not finding a way to register our domains. We are using ContactProviderDomain to create domains but we are not able to find any function to register.
Could you please give a hint?
Thank you