I’m creating an app with the Screen Time API and I would like to know how to make the app show a parental control editing view for parents and a view for child accounts that shows which apps are blocked. How can I do this?
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
I’m developing a VoIP app that uses Linphone and CallKit. Everything works as expected until the user enables the speaker on the native CallKit screen. After that, all subsequent calls start with the speaker already on. Even if I call AVAudioSession.sharedInstance().overrideOutputAudioPort(.none), it gets overridden when the call starts (when Linphone begins playing the ringtone). I tested this behavior in WhatsApp, and it seems to work correctly there.
Hello there!
So Im trying to upload an app to the App Store for iphone and Ipad, but from the revision team the same message always appears, the app crash.
So I know the "it works on my computer" sounds bad but....works on my computer and my test system.
Dont know what to do since I dont know how to replicate the error.
This is the rely they sent me:
Issue Description
The app exhibited one or more bugs that would negatively impact users.
Bug description: at time of review the app’s interface went blank at launch.
Review device details:
Device type: iPad Air (5th generation)
OS version: iPadOS 18.4.1
Anyone has any idea on how can I replicate the error and maybe check the logs? Im completely blind on this one.
Hi all,
From what I’ve seen on forums and other sources, it appears that nothing can be done to set the contact poster programmatically. Setting the imageData property affects only the thumbnail image. Does anyone know if this is explicitly documented somewhere? I need this information for a POC document. I watched the iOS 17 keynote (where it was introduced), the Platform State of Union, and other WWDC videos, but I couldn’t find any mention of it. The Contacts framework documentation only explains what can be retrieved from this property and doesn’t mention any way to set the contact poster.
If anyone has any information on this, please help!
Thanks in advance!
On a device with approx 800 contacts, the sheet presented when tapping ContactAccessButton with multiple matches briefly appears (.25 seconds) before disappearing, leaving the view below in a dimmed, slightly zoomed out, non-interactive state as if a sheet were being presented. Swiping down dismisses the invisible sheet returns the underlying view to a normal state.
Is there a way to avoid this? It appears possibly similar to https://developer.apple.com/forums/thread/762077
Logs (exact duplicates removed)
#ContactsButton response after touch -- Should show UI
LaunchServices: store (null) or url (null) was nil: Error Domain=NSOSStatusErrorDomain Code=-54 "process may not map database" UserInfo={NSDebugDescription=process may not map database, _LSLine=72, _LSFunction=_LSServer_GetServerStoreForConnectionWithCompletionHandler}
Attempt to map database failed: permission was denied. This attempt will not be retried.
Failed to initialize client context with error Error Domain=NSOSStatusErrorDomain Code=-54 "process may not map database" UserInfo={NSDebugDescription=process may not map database, _LSLine=72, _LSFunction=_LSServer_GetServerStoreForConnectionWithCompletionHandler}
Error returned from iconservicesagent image request: <ISBundleIdentifierIcon: 0x11c0378c0> BundleID: (null) digest: 7749FEEE-F663-39B4-AD68-A18CFF762CCC - <ISImageDescriptor: 0x111cfeb20> - (64.00, 64.00)@2x v:4 l:5 a:0:0:0:0 t:() b:0 s:2 ps:0 digest: DF83A970-D4C9-3D90-BB7D-0BC21FC22E03 error: Error Domain=NSOSStatusErrorDomain Code=-609 "Client is disallowed from making such an icon request" UserInfo={NSLocalizedDescription=Client is disallowed from making such an icon request}
Error returned from iconservicesagent image request: <ISTypeIcon: 0x11c055d10>,Type: com.apple.appprotection.badge.faceid - <ISImageDescriptor: 0x111cfdfe0> - (32.00, 32.00)@3x v:0 l:5 a:0:0:0:0 t:() b:0 s:2 ps:0 digest: E988236A-DCCF-30CB-83D0-D901CB1A5499 error: Error Domain=NSOSStatusErrorDomain Code=-609 "Client is disallowed from making such an icon request" UserInfo={NSLocalizedDescription=Client is disallowed from making such an icon request}
Error returned from iconservicesagent image request: <ISBundleIdentifierIcon: 0x11c037840> BundleID: (null) digest: 7749FEEE-F663-39B4-AD68-A18CFF762CCC - <ISImageDescriptor: 0x111cfd900> - (64.00, 64.00)@2x v:4 l:5 a:0:0:0:0 t:() b:0 s:2 ps:0 digest: DF83A970-D4C9-3D90-BB7D-0BC21FC22E03 error: Error Domain=NSOSStatusErrorDomain Code=-609 "Client is disallowed from making such an icon request" UserInfo={NSLocalizedDescription=Client is disallowed from making such an icon request}
-[RTIInputSystemClient remoteTextInputSessionWithID:performInputOperation:] perform input operation requires a valid sessionID. inputModality = Keyboard, inputOperation = <null selector>, customInfoType = UIEmojiSearchOperations
[C:6] Error received: Connection interrupted.
VS terminated with error: Error Domain=_UIViewServiceInterfaceErrorDomain Code=3 "(null)" UserInfo={Message=Service Connection Interrupted}
-[RTIInputSystemClient remoteTextInputSessionWithID:performInputOperation:] perform input operation requires a valid sessionID. inputModality = Keyboard, inputOperation = <null selector>, customInfoType = UIEmojiSearchOperations
Error returned from iconservicesagent image request: <ISBundleIdentifierIcon: 0x117fb3440> BundleID: (null) digest: 7749FEEE-F663-39B4-AD68-A18CFF762CCC - <ISImageDescriptor: 0x117efe120> - (64.00, 64.00)@2x v:4 l:5 a:0:0:0:0 t:() b:0 s:2 ps:0 digest: DF83A970-D4C9-3D90-BB7D-0BC21FC22E03 error: Error Domain=NSOSStatusErrorDomain Code=-609 "Client is disallowed from making such an icon request" UserInfo={NSLocalizedDescription=Client is disallowed from making such an icon request}
Error returned from iconservicesagent image request: <ISTypeIcon: 0x117decd50>,Type: com.apple.appprotection.badge.faceid - <ISImageDescriptor: 0x117efd400> - (32.00, 32.00)@3x v:0 l:5 a:0:0:0:0 t:() b:0 s:2 ps:0 digest: E988236A-DCCF-30CB-83D0-D901CB1A5499 error: Error Domain=NSOSStatusErrorDomain Code=-609 "Client is disallowed from making such an icon request" UserInfo={NSLocalizedDescription=Client is disallowed from making such an icon request}
Error returned from iconservicesagent image request: <ISBundleIdentifierIcon: 0x117fb2200> BundleID: (null) digest: 7749FEEE-F663-39B4-AD68-A18CFF762CCC - <ISImageDescriptor: 0x117effa20> - (64.00, 64.00)@2x v:4 l:5 a:0:0:0:0 t:() b:0 s:2 ps:0 digest: DF83A970-D4C9-3D90-BB7D-0BC21FC22E03 error: Error Domain=NSOSStatusErrorDomain Code=-609 "Client is disallowed from making such an icon request" UserInfo={NSLocalizedDescription=Client is disallowed from making such an icon request}
-[RTIInputSystemClient remoteTextInputSessionWithID:performInputOperation:] perform input operation requires a valid sessionID. inputModality = Keyboard, inputOperation = <null selector>, customInfoType = UIEmojiSearchOperations
[C:6] Error received: Connection interrupted.
VS terminated with error: Error Domain=_UIViewServiceInterfaceErrorDomain Code=3 "(null)" UserInfo={Message=Service Connection Interrupted}
-[RTIInputSystemClient remoteTextInputSessionWithID:performInputOperation:] perform input operation requires a valid sessionID. inputModality = Keyboard, inputOperation = <null selector>, customInfoType = UIEmojiSearchOperations
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'm working on implementing Live Caller ID Lookup, but I noticed that https://github.com/apple/live-caller-id-lookup-example redirects to https://github.com/apple/pir-service-example.
Could you please clarify why this redirection occurs?
Hi,
I’m trying to perform UWB ranging between an iPhone and a Qorvo DWM3001CDK accessory using Apple NI’s NINearbyAccessoryConfiguration class. I’ve followed the steps described in the official Apple documentation (https://developer.apple.com/documentation/nearbyinteraction/ninearbyaccessoryconfiguration), specifically for enabling background mode using the init(accessoryData:bluetoothPeerIdentifier:) initializer.
The configuration is successfully created, and background mode is enabled. However, when the iPhone starts the session, I doesn’t receive any ranging data from the DWM3001CDK, and the session ends with a timeout.
Interestingly, if I use the init(data:) initializer, I can successfully receive ranging data, but this only works in foreground mode, which doesn’t meet my requirements.
Steps I’ve followed:
Used Core Bluetooth to discover and pair the accessory.
Retrieved the configuration data from the accessory according to the third-party UWB device specifications.
Initialized the configuration using NINearbyAccessoryConfiguration(accessoryData:bluetoothPeerIdentifier:) for background mode.
Started the session with NISession.run(configuration).
Waited for updates in the delegate method session(_:didUpdate:).
Specific questions:
Are there additional requirements for using init(accessoryData:bluetoothPeerIdentifier:) to enable background UWB ranging with the DWM3001CDK?
Is there a known difference in how init(data:) and init(accessoryData:bluetoothPeerIdentifier:) handle the ranging process?
Any advice or insights would be greatly appreciated.
Thanks in advance!
I'm unable to have stickers show in messages even with a new iOS app and a sticker pack extension target.
I do see the iMessage App Icon but after tapping it nothing shows and I see a warning: "Error creating the CFMessagePort needed to communicate with PPT"
This was tested on simulator and on real device.
Xcode 16.1 (16B40)
iOS 18.1 & 18.2
An issue with the CallKit UI, specifically regarding the functionality of the speaker button.
When a user initiates a video call with CallKit and then, using the existing CallKit session, initiates an audio call, there are no issues with CallKit or the audio.
However, if the user terminates the video call from the CallKit UI, the active CallKit session ends. To resume the ongoing audio call, we report a new CallKit call upon the end call trigger. While there are no issues with this reporting, the CallKit UI does not provide an audio route for the built-in receiver, and the speaker button remains unresponsive.
IPA was build on SDK 18 and running on iOS beta 26.
Issue is NOT seen with SDK18 and running iOS 18.x or lower devices.
Feedback - FB18855566
Hi everyone,
We're using the react-native-device-activity package to implement app blocking via Apple's Screen Time API. The blocking functionality works well: when the user selects apps and taps "Done," those apps get blocked as expected.
However, we're facing an issue with unblocking apps that the user later unselects. Even after the user unchecks some apps and taps "Done" again, those previously selected (now unselected) apps remain blocked and still show the shield.
Hello! I'm working with universal links in my app and have configured the /.well-known/apple-app-site-association file. Currently, I use the paths array in this file to define URL routing rules. However, I’m struggling to find up-to-date documentation on the pattern syntax supported by the paths field.
"paths": [
"/page/*",
"NOT /page/*/subpage"
]
Could someone clarify:
Is the paths array still officially supported, or is it deprecated in favor of the newer components dictionary (as referenced here https://developer.apple.com/documentation/bundleresources/applinks/details-swift.dictionary/components-swift.dictionary)?
If paths is still valid, where can I find documentation for its pattern-matching capabilities?
I want to ensure my implementation aligns with Apple’s current best practices. Thank you!
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.
I am developing multi timer app which works in background mode.
at first, I could go multi timer in background mode using background mode 'audio' which uses slient wav file.
However, app has rejected background mode 'audio' should not use which not for audio app.
I want to know how to develop timer app which works in background mode in ios platform.
native ios timer that let us alarmed time. so I want develop that kind of app
Sincerely,
Topic:
App & System Services
SubTopic:
General
can i block number on my app with callkit if the number already exists as a contact? Or i can only block number that are not on the contact list ?
At WWDC25 we launched a new type of Lab event for the developer community - Group Labs. A Group Lab is a panel Q&A designed for a large audience of developers. Group Labs are a unique opportunity for the community to submit questions directly to a panel of Apple engineers and designers. Here are the highlights from the WWDC25 Group Lab for watchOS (part 1).
1. I'm really excited about the new design system on all platforms. Liquid Glass is super cool. What do developers need to keep in mind when building for watchOS 26?
To adopt the new design system, start with updating your app for watchOS 10 – If you have done so, your app will be mostly ready for watchOS 26. For more information, see Design and build apps for WatchOS 10.
You can then look into Liquid Glass specific APIs to fine tune your app. This topic is covered in Adopting Liquid Glass.
If you have SwiftUI views using any custom style, make sure they are still legible and fit with the new design system.
2. Something that really stood out to me were updates to the Smart Stack, with the system prioritizing Widgets when they're most relevant. Tell me more about these new opportunities for apps.
Workout apps that record workouts using HealthKit may be automatically suggested on the watch face and appear in the Smart Stack without adding a widget.
Relevant widgets are a great way to present information related to a date, location, point-of-interest type, sleep schedule, or fitness condition in the Smart Stack when it is relevant. Relevant widgets don't need to display a empty state view when they are not relevant. They are only shown in the Smart Stack when relevant.
The watchOS 26 Design ToolKit in the Apple Design Resources includes a set of templates that you can use to layout your widgets.
3. Is the Wrist Flick gesture available to developers in the same way as Double Tap is?
The system uses Wrist Flick to dismiss notifications and incoming calls, silence timers and alarms, or return to the watch face. There is no separate API for the Wrist Flick gesture.
Apps that are using XCUIAutomation to make sure their user interface behaves as intended can use the XCUIDeviceHandGesture.flick to automate tests that verify that their app responds appropriately to the Wrist Flick gesture. For apps using automated testing, the XCUIDeviceHandGesture.doubleTap can be also be used to automate testing of the app with the Double Tap gesture. See XCUIDevice.perform(handGesture:)
4. Can HRV measurements be triggered on demand via API in watchOS? Guidelines or processes for enabling energy-intensive biometric sampling on development devices for IRB-approved research?
You don’t have direct control on the sampling rate in watchOS. You can use HealthKit (HKQuantityTypeIdentifierHeartRateVariabilitySDNN, to be specific) to query the HRV data, once the system has sampled and persisted the data to HealthKit. If that doesn’t help, we suggest that you file a feedback report with your concrete use case for us to investigate.
Specific to IRB-approved research using Apple Watch or its companion iPhone, you might want to look at this FAQ and SensorKit to see if they can be of any help.
5. What is the best advice for someone who is new to making a watchOS app that’s been on iOS and iPadOS?
You can start with exploring the system experience features on watchOS, such as notifications, controls, and widgets, and getting familiar with the system spaces, like Smart Stack, watch face, and control center.
Knowing the watchOS app design principles and practices is important as well. Design and build apps for WatchOS 10 is a great resource for this topic.
SwiftUI is an amazing across-platform framework, and you will use it to create your watchOS app. If you're already using it, great!
Keep in mind some watch-only constraints. Comparing to iPhone or iPad, Apple Watch has a limited battery and smaller screen size, which significantly impacts how people use your app and how your app works.
6. Was there any extension this year to the 7 day limit on querying Apple Health data on the watch?
There is no change on the limit this year. You can get this official limit at runtime using earliestPermittedSampleDate.
There are some exceptions, and so don't be surprised if you see some data types are retained longer.
The companion iPhone holds the full set of the health data. If you need to access the health data that has been purged from the Apple Watch, consider doing it with your iOS app, and then passing the result to your watchOS app.
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)
}
}
}
Widgets on the widget is not responding to the touch properly. This issue is also affecting within the home screen widget in a way that the widget switches to light mode by itself even though I am in dark mode. Additionally, lock screen does not to respond once the lock screen widget has been edited. Is anyone else having this issue?
testing
Topic:
App & System Services
SubTopic:
General
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