In the summary documentation about the declared Age Range API:https://developer.apple.com/news/?id=2ezb6jhj
It states: "The API will also return a signal from the user’s device about the method of age assurance, such as credit card or government ID"
But if the api itself, and its documentation is examined, there is no such mechanism nor mention of it: https://developer.apple.com/documentation/declaredagerange/agerangeservice
So my question is, is the first documentation incorrect, if not, then where and how to access the method of age assurance?
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
Created
Hi everyone,
I’ve filed a Feedback report (FB20986470) for a serious issue affecting the Call Directory database when add phone numbers for call blocking.
When adding blocking numbers to a Call Directory extension, the system’s CallKit database (/private/var/mobile/Library/CallDirectory/CallDirectory.db) becomes corrupted.
The reload call (reloadExtensionWithIdentifier) fails with error code 11 when the system tries to insert blocking entries, and the Console app on macOS shows the following errors:
database corruption page 2265525 of /private/var/mobile/Library/CallDirectory/CallDirectory.db at line 81343 of [f0ca7bba1c]
database corruption at line 79387 of [f0ca7bba1c]
Error Domain=com.apple.callkit.database.sqlite Code=11 "sqlite3_step for query 'INSERT INTO PhoneNumberBlockingEntry (extension_id, phone_number_id) VALUES (?, (SELECT id FROM PhoneNumber WHERE (number = ?))), (?, (SELECT id FROM PhoneNumber WHERE (number = ?))),...)'"
After this happens, CallKit becomes fully corrupted on the device and no further numbers can be added, even after:
Disabling and re-enabling the extension
Restarting the device (either force or soft restart)
Reinstalling the app
Waiting for a couple of minutes after this issue happens (that CallKit could possibly self-recovered)
I also tested other call-blocking apps, and they all fail with the same error. The only thing that recovers the system is a full “Reset All Settings.”
This issue has been reported by many users of my app, across multiple iOS versions and devices.
Similar related issue reported by another developer:
https://developer.apple.com/forums/thread/806129
Steps to Reproduce:
Enable the Call Directory extension from a call-blocking app.
Add and reload blocking numbers (a few thousand entries).
Perform multiple reloads between additions.
Check the Console, the corruption errors appear.
From this point, all insert attempts fail system-wide.
Expected Result:
Entries should be inserted successfully, or the system should self-recover without persistent corruption.
Actual Result:
sqlite3_step fails with Code=11, and the Call Directory database remains corrupted until the user resets all settings.
Additional Notes:
All numbers are sorted and deduplicated before insertion.
Happens intermittently after multiple reloads.
The system log always shows internal database failure.
Environment:
Device: iPhone 16 Plus
iOS 18.2 Beta (23C5027f)
Xcode 16.1 (17B55)
Attachments (included in Feedback FB20986470):
sysdiagnose captured immediately after the failure (with Phone app General Profile)
It seems like a system-level corruption affecting all Call Directory extensions once it occurs.
Hello,
I’m encountering an issue with Universal Links in my iOS app. After some investigation, I found that the root cause seems to be that Apple’s request through there CDN server to access the .well-known/apple-app-site-association file is blocked by our firewall, which enforces geographic access restrictions as part of our security policy.
Because of this restriction, Apple’s validation or link verification requests are being denied, and the Universal Links are not working as expected.
I’d like to get some guidance from the community or Apple engineers on the following:
1. Does Apple provide an official list of IP ranges or domains that need to be allowed through the firewall for Universal Link validation?
2. Are there alternative methods to handle Universal Link verification in environments with geographic restrictions?
3. Would whitelisting specific Apple services or endpoints be a recommended or safe solution?
Any input or recommendations would be greatly appreciated.
Environment Details:
• iOS app using Universal Links
• Server protected by a firewall with regional restrictions
• AASA file hosted correctly and accessible via browser
Thanks in advance for your help and insights.
Our iOS app supports CarPlay capability with the Driving task.
The app is also configured to wake in the background on geofence entry or exit events, even from a terminated (killed) state.
We would like to understand how to detect whether CarPlay is connected to the iPhone when the app wakes up or runs in the background.
In this case, the CarPlay app is not actively running in the Car infotainment system foreground.
Requirement:
The app should perform a background task only when CarPlay is connected, including when launched in the background or from a killed state due to a geofence trigger.
Could you please advise on the recommended way or API to determine CarPlay connection status in this background scenario?
Thanks for the support!
When my Share Extension receives an image from the macOS Photos app on Tahoe, the NSItemProvider passes a URL to an image file in a temporary location.
All attempts to read that file fail silently, such as with NSImage(contentsOfFile)
I can see that the file does exist in Finder.
This code did work in previous macOS versions.
It seems like a permissions issue, but startAccessingSecurityScopedResource had no effect.
Other platforms work, other apps work, such as shares from Finder, which shares via data instead of a url.
I'm really stuck. Has anyone else run into this?
// make sure provider has a conforming item
if itemProvider.hasItemConformingToTypeIdentifier(imageType)
{
do {
let data = try await itemProvider.loadItem(forTypeIdentifier: imageType, options: nil)
// data may be image NativeImage, Data, or a URL to an image file.
// figure out which by casting, then attempt to load uiImage
if let image = data as? NativeImage {
print("found NativeImage")
self.images.append(image)
}
else if let data = data as? Data {
print("found Data")
if let image = NativeImage(data: data) {
self.images.append(image)
}
} else if let url = data as? URL{
print("found URL")
if let image = NativeImage(contentsOfFile: url.path) {
print("loaded from URL")
self.images.append(image)
}
}
}catch{
print("⛔️ Share Extension Error: \(error.localizedDescription)")
}
}
Hello,
If I fire an alarm using AlarmKit, using a ringtone that lengths less than 30 seconds, in the last version of iOS (26.0) the sound doesn't repeat. (After about 30 seconds, the sounds stops).
BUT in the current version of iOS (26.1), the sound repeats until we slide Stop, thing that I doesn't want.
So, is there a way to restore the previous behavior? Or is there a property that can fill this lack?
Thank you very much.
Topic:
App & System Services
SubTopic:
General
I'd like to write a MacOS App that makes use of the ASAM functonality as described here: https://developer.apple.com/documentation/devicemanagement/autonomoussingleappmode
I have tried to use the example with Safari, and have enrolled a Mac with MDM and installed the profile. But when opening Safari it does not appear in Single App Mode. I've only tried it with Safari so far but eventually I want to be able to use my own App.
Is there an API that has to be used to enter single app mode programmatically? I've found the whole Assessment API but as I do not have the required entitlements to use that API I'm looking for another solution. The documentation on ASAM does not mention the Assessment API at all, is it the only way to enter "a" single app mode on MacOS? How is the Assessment API linked to ASAM? As far as I have understood there's the com.apple.developer.automatic-assessment-configuration entitlement but apps having this do not need to be configured via MDM? I'm really confused as to what's actually required to be able to get into single app mode on MacOS. The app I'm trying to write isn't really related to an an assessment task, but I am doing this for an academic institution so maybe requesting the entitlement would be feasable.
The documentation on ASAM also mentions that the App is granted access to the "Accessibility" API and I've found the whole
UIAccessibility/requestGuidedAccessSession but this does not seem to be available on MacOS proper?
Any help on this would be greatly appreciated.
Topic:
App & System Services
SubTopic:
General
I have made a screensaver for mac in swift, but couldn't find how to add an icon the logo image that shows up on saver file) and thumbnail (the cover image that shows up in the screensaver catalogue).
Currently, it just shows a default blue spiral galaxy thumbnail and no icon image
We’re seeing unexpected NFC behavior once our app has 50+ Advanced App Clips created.
Expected:
Scanning an NFC tag with a URL that is NOT an App Clip invocation should show the standard “Open in Safari” notification.
Actual:
After we create ~50+ Advanced App Clips, scanning NFC tags for URLs on the same domain that are not associated with App Clips consistently shows “CPSErrorDomain error 2” instead of the Safari prompt.
QR codes for the same non–App Clip URLs work as expected (shows Safari prompt).
Clearing the App Clips “Experience Cache” sometimes helps briefly, but the error returns on consequent scans.
Notes:
Domain has valid AASA. App Clip invocation URLs work as expected.
The issue appears tied to the number of Advanced App Clips configured. Below ~50, non–App Clip NFC scans behave correctly; above that, they fail.
Affected across multiple devices and iOS versions tested.
Repro steps:
Configure 50+ Advanced App Clips for paths on a single domain.
Encode a different URL on the same domain that is NOT listed as an App Clip invocation into an NFC tag.
Scan the NFC tag on iPhone.
Observe “CPSErrorDomain error 2” instead of the “Open in Safari” notification.
Impact: blocks our NFC use case for regular web links once we scale App Clip experiences.
Sysdiagnose #: FB20563121
My app uses CallKit and PushKit for real-time voice and video calls.
I want to configure VoIP push notifications so incoming calls can wake the app,
even when it’s in the background or terminated.
Right now, I only see the normal Push Notifications option in my App ID settings
and no VoIP Services section.
When I call https://developer.apple.com/documentation/contactprovider/contactprovidermanager/enable() to request to use Contact Provider, I received a dialog with message like this
"App Name would like to add its contacts as its own list. Contacts added this way can be removed from settings".
I would like to support this message in Japanese or other languages. Is it possible?
I have an app developed by using the Callkit/Call-Blocking and received feedback from individual users, when using [cxcalldirectorymanager reloadextensionwithidentifier] to write call blocking data, it returned error code 11 with the following contents:
errorCode: 11
errorDomain: com.apple.callkit.database.sqlite
errorDescription: sqlite3_step for query 'DELETE FROM PhoneNumberBlockingEntry WHERE extension_id =?' returned 11 (11) errorMessage 'database disk image is malformed'
I want to know the reasons for this error and how to solve it,Thanks!
Is this intended behavior? I want my app to act like the regular Clock app and snooze alarms when user taps volume down button but apparently volume down button stops the alarm. Is this normal or am I missing something?
Topic:
App & System Services
SubTopic:
General
I am trying to build my app and want to be able to integrate with apple ads services so I can get my users attribution token. I tried a added the "com.apple.developer.adservices" entitlement but now that I build my app it fails with the following error
include the com.apple.developer.adservices entitlement. Profile qualification is using entitlement definitions that may be out of date. Connect to network to update.
What do I need to do to make this work, I tried and cant fina any docs online
Topic:
App & System Services
SubTopic:
General
anyone has the same problem which is that your device activity extension ain't working even tho all the code work perfectly in the console, I setup it in the right way , tried to make schedule and it did the same exact thing when I tried to create usage threshold. anyone know the reason for this bug?
here is my extension code
import ManagedSettings
import FamilyControls
import Foundation
import OSLog
import UserNotifications
class MonitoringExtension: DeviceActivityMonitor {
private let defaults = UserDefaults(suiteName: "group.com.William.app")
private let logger = Logger(subsystem: "com.William.app", category: "MonitoringExtension")
override func eventDidReachThreshold(_ event: DeviceActivityEvent.Name, activity: DeviceActivityName) {
let activityRaw = activity.rawValue
logger.info("Limite atteinte: \(activityRaw)")
scheduleNotification(title: "Limite dépassée", body: "Tu as utilisé trop de temps sur \(activityRaw).")
guard let data = defaults?.data(forKey: "\(activityRaw)_selection"),
let selection = try? JSONDecoder().decode(FamilyActivitySelection.self, from: data) else {
logger.warning("Pas de sélection pour \(activityRaw)")
return
}
let store = ManagedSettingsStore() // ← LE SEUL QUI MARCHE
store.shield.applications = selection.applicationTokens
if !selection.categoryTokens.isEmpty {
store.shield.applicationCategories = .specific(selection.categoryTokens)
}
logger.info("BLOCAGE ACTIF via ManagedSettingsStore.default")
}
override func intervalDidEnd(for activity: DeviceActivityName) {
super.intervalDidEnd(for: activity)
let store = ManagedSettingsStore()
store.clearAllSettings() // ← Débloque à minuit
logger.info("Restrictions levées à la fin de l'intervalle")
}
private func scheduleNotification(title: String, body: String) {
UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound]) { granted, _ in
guard granted else { return }
let content = UNMutableNotificationContent()
content.title = title
content.body = body
let request = UNNotificationRequest(identifier: UUID().uuidString, content: content, trigger: nil)
UNUserNotificationCenter.current().add(request)
}
}
}
As of macOS 26 I have a menu item off a tray app that now is showing an exclamation mark by it when I have not defined one to show.
Where is this coming from?
Topic:
App & System Services
SubTopic:
General
Hi Everyone,
When we first hosted our apple-app-site-association file, our hosting provider was unintentionally blocking Apple’s crawler. As a result, Apple’s CDN seems to have cached a timeout / missing file response.
We’ve since corrected the issue — the AASA file is now valid and accessible at: https://our-domain.com/.well-known/apple-app-site-association
sidenote: I am using "our-domain" as an alias. It is not our actual domain.
We have verified that we return a valid JSON, HTTPS 200, correct MIME type. We used apple recommended tools to check this as well as other tools we found on the internet.
However, when fetching through the Apple CDN:
https://app-site-association.cdn-apple.com/a/v1/our-domain.com
we still receive:
Apple-Failure-Reason: SWCERR00301 Timeout Apple-Failure-Details: {"cause":"context deadline exceeded (Client.Timeout exceeded while awaiting headers)"}
This has persisted for several days.
Tools like getuniversal.link and yURL show that the CDN works fine in U.S. regions, but in Europe it continues serving the old timeout response.
I’ve already opened a support ticket (Case ID: 102734912696), but the current support channel seems to be general developer account assistance rather than technical. They claim they can only assist us with account related issues (even though I used the code-support form...)
Can someone please advise or help us escalate this to the appropriate internal team to refresh the Apple CDN cache for our domain?
Thank you so much for your time and help.
Hi,
A lot of e-mail providers supports OAuth2 authentication.
However, Mail.app on macOS and iOS do not support configuring a mail account that would use OAuth2 authentication, unless it's on its hardcoded list of account providers.
Is there any framework that allows setting up a custom account for my institution, so that we could begin to offer OAuth2 authentication for mail and calendar?
Ok so for some background, our app has a keyboard extension where we run a dictation service. Due to iOS limitations, this requires the user to press a button on the keyboard which will then bring the user to our app to activate an audio session. Once the audio session has been activated, it takes the user back to the original app it came from to continue using the keyboard + dictation service.
The problem we're running into involves iOS 26.0 and the iMessages app. Whenever our app tries to switch back to the iMessages app using Deep Link (specifically the messages:// URL), the iMessages app opens up a new message compose sheet. This compose sheet replaces the view or message thread that the user was previously looking at which we don't want.
This behavior appears to be only happening in iOS 26 and not in any of the previous iOS versions (tested up to iOS 18.6). We know that it should be possible to bring the user back to the messages app without opening up this new compose sheet, because similar apps do the same thing and these apps have been verified to work on iOS 26.
We've tried also using the sms:// URL but that always opens a new message compose sheet regardless of whether or not it's iOS 26.0.
Original discussion pre iOS 26
Our app uses Auth0 with HTTPS callback, we've found the issue where AASA file is not ready immediately when app is initially launched, which is the exact issue from the above link.
The issue seems mostly fixed on later versions on iOS 18, however, we are seeing some indications of a regression on iOS 26. Here's some measurement over the last week.
| Platform | iOS 18 | iOS 26 |
|---------------|----------|--------|
| Adoption rate | 55% | 45% |
| Issue seen | 1 | 5 |
| Recover? | Yes | No |
This only 1 iOS 18 instance was able to recover after 1 second after the first try, however, all iOS 26 instances were not able to recover in couple tens of seconds and less than 1 minute, the user eventually gave up.
Is there a way to force app to update AASA file?
Are there some iOS setting (like using a VPN) that could potentially downgrade the AASA fetch?
Related Auth0 discussion:
https://community.auth0.com/t/ios-application-not-
recognizing-auth0-associated-domain/134847/27