Hi,
We have a need to provide SIM verification. At present, accessing the phone number bound to the device is not programmatically accessible. Would Apple consider exposing this API via a user consent?
Otherwise, what is the suggested approach to verify the SIM card is the correct phone number on an iOS device?
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
A user of my AppKit, document-based app brought to my attention that when setting it as the default app to open a certain file with extension .md (by choosing in the Finder "File > Open With > Other", then selecting my app and enabling "Always open with"), trying to open it with a double-click displays the warning "Apple could not verify [file] is free of malware that may harm your mac or compromise your privacy".
This is what happens for me:
When keeping the default app for a .md file (Xcode in my case), the file opens just fine.
When choosing my app in the "File > Open With" menu, the file opens just fine in my app.
But when setting my app as the default app (see above), the warning is displayed.
From that moment on, choosing my app in the "File > Open With" menu doesn't work anymore. Selecting Xcode doesn't work either.
Only setting Xcode again as the default app allows me to open it in Xcode, but my app still isn't allowed to open it.
Is this a macOS issue, or can I do anything in my app to prevent it? Where should I start looking for the issue in my code?
In release mode, the values are missing. I don't know what's wrong with it. If I install the debug version first and then overwrite it with the release build, I can retrieve the values stored in debug mode. But if I uninstall completely and install the release version directly, it's empty
Hello, I am building an iMessage extension for my app and I am struggling to figure out how to test it. The extension allows users to send their friends an interactive widget and the recipient experience is very important to test.
I tried to do it in the simulators, but simulators do not support iMessage. I have got a second iPhone and created a sandbox account, but I cannot install TestFlight with the sandbox account, as this feature is not supported.
Reddit, Stackoverflow, ChatGPT and Apple Developer support also did not help. Can someone share their experience with testing recipient experience in the iMessage extension?
I'm currently experimenting with AlarmKit and, when configuring an alarm with a Relative schedule, but that never repeats, I find that it is still scheduled in the AlarmManager, but the documentation says that an alarm that has no repeat schedule will be removed from the AlarmManager after firing.
This behavior is experienced both in my project and with the sample code AlarmKit-ScheduleAndAlert
To reproduce, create a non-repeating alarm, and, after firing, it will still be on the list marked as Scheduled
Am I doing something wrong or is this a bug?
Topic:
App & System Services
SubTopic:
General
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
I have a TVTopShelfContentProvider that implements
func loadTopShelfContent() async -> (any TVTopShelfContent)?
When running on Xcode 26 b5 I am seeing the following error in swift 6 mode.
Non-Sendable type '(any TVTopShelfContent)?' cannot be returned from nonisolated override to caller of superclass instance method 'loadTopShelfContent()'
I'm not sure exactly what's changed here as it used to compile just fine but it's unclear now how I can work-around this error or how the API is supposed to be used.
The following definition is enough to trigger the error in Swift 6 language mode.
import TVServices
class ContentProvider: TVTopShelfContentProvider {
override func loadTopShelfContent() async -> (any TVTopShelfContent)? {
return nil
}
}
I can "fix" it by adding @preconcurrency to the TVServices import but it seems like this API is unusable currently? Or maybe it's user error on my part?
I’m currently developing a spam number blocking app using CallKit.
I’ve confirmed that up to iOS 26 beta 5, there is a bug where number blocking doesn’t work.
In my current tests, the ringtone doesn’t sound and the blocking works fine, but the call still appears in the missed calls list, which is bothersome.
If the bug is fixed in future versions (as it was in previous versions), is there a way to block the number so that it also does not appear in missed calls?
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
I have been using Universal Links since January of this year.
As of January, it was working fine, but when I checked its operation in August, it was no longer working properly.
After investigating, I believe that the reason it is not working is because our firewall is blocking communication from AppleCDN to check for AASA files.
Our firewall blocks communication from outside Japan, and Apple's IP address (17.0.0.0/8) is whitelisted.
Does anyone know the hostname or IP address that is used to check AASA files?
If you know, please let me know.
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'm integrating Twilio Voice (v6.12.1) into my React Native app (using Swift bridging for iOS) and have implemented full VoIP, PushKit, and CallKit support for incoming calls.
✅ What works:
Incoming calls trigger the VoIP push and display the full-screen CallKit interface (or fallback UI).
Decline Call works as expected.
Call logs and events print correctly.
❌ Problem:
When I try to accept the call using the CallKit Accept button or React Native fallback UI, I consistently get:
❌ [TwilioVoiceModule] answerCall() callInvite is missing.
I also noticed that the console logs for answerCall() are being printed three times in a row, even though the accept button is only pressed once. Additionally in the first time console, answerCall() CallInvite found, accepting...
🔍 Observations:
The callInvite is properly received when the VoIP push arrives.
But when answerCall() is triggered, callInvite becomes nil.
This happens in CallKit accept, RN UI accept, and even notification banner accept.
📦 How it's set up (summarized):
PushKit Registration – via PKPushRegistry in AppDelegate.swift
VoIP push handling – forwards payload to TwilioVoiceModule.handleIncomingPush()
CallKit integration – uses CXProviderDelegate to report and handle accept actions
JS Bridge – emits acceptCallAction to JS
React Native calls TwilioVoiceModule.answerCall(uuid, callSid)
In answerCall() method: self.callInvite is nil – so call cannot be accepted.
Attaching the link to view the relevant code: https://docs.google.com/document/d/15pNjKrfk954OaotpMIEh3xQUtst---1K45DBXoYctGM/edit?usp=sharing
💡 Call Accept Flow (iOS):
VoIP Push → TwilioVoiceModule.handleIncomingPush()
Twilio SDK creates callInvite
reportNewIncomingCall() triggers CallKit UI
On accept: CXAnswerCallAction → emits event to JS
RN calls TwilioVoiceModule.answerCall(uuid, callSid)
Problem: callInvite is already nil
❓ What I'm trying to understand:
Why is callInvite becoming nil before answerCall() is called?
Why are the logs showing the answerCall() call 3 times?
Is there a race condition or multiple accept triggers?
Should I ensure callInvite is accepted only once across all 3 accept paths?
**
💬 Any help would be appreciated.**
📱 Environment:
React Native 0.78.x
iOS 17+
Swift bridging with TwilioVoiceModule.swift
Twilio Voice SDK 6.12.1
PushKit + CallKit + react-native-callkeep
I'm trying to work with the beta version of the Declared Age Range framework based on an article's tutorial but am getting the following error:
[C:1-3] Error received: Invalidated by remote connection.
and AgeRangeService.Error.notAvailable is being thrown on the call to requestAgeRange. I'm using Xcode 26 beta 5 and my simulator is running the 26.0 beta. The iCloud account that I have signed into the simulator has a DOB set as well.
This is my full ContentView where I'm trying to accomplish this.
struct ContentView: View {
@Environment(\.requestAgeRange) var requestAgeRange
@State var advancedFeaturesEnabled = false
var body: some View {
VStack {
Button("Advanced Features") {}
.disabled(!advancedFeaturesEnabled)
}
.task {
await requestAgeRangeHelper()
}
}
func requestAgeRangeHelper() async {
do {
let ageRangeResponse = try await requestAgeRange(ageGates: 16)
switch ageRangeResponse {
case let .sharing(range):
if let lowerBound = range.lowerBound, lowerBound >= 16 {
advancedFeaturesEnabled = true
}
case .declinedSharing:
break
// Handle declined sharing
default:
break
}
} catch AgeRangeService.Error.invalidRequest {
print("Invalid request")
// Handle invalid request (e.g., age range < 2 years)
} catch AgeRangeService.Error.notAvailable {
print("Not available")
// Handle device configuration issues
} catch {
print("Other")
}
}
}
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
I'm using the new AlarmKit framework to build a Swift app that lets users schedule multiple repeating alarms.
The goal is to allow users to stop all alarms for today if they wake up early, but the alarms should still ring on their scheduled days in the future (for example, every Monday).
What I tried:
When the user chooses to stop alarms for today, I delete all alarms and re-add them. However, this doesn't work as expected.
If today is Monday and I delete and re-add the alarm with .weekday = .monday, it still rings today. That means re-adding the alarm doesn't skip today's instance, even though it's repeating.
What I want to achieve:
Skip or suppress today's alarms when the user stops them manually
Keep the same alarms active for their scheduled days in the future
Questions:
Is there a way in AlarmKit to prevent a repeating alarm from ringing today if it was just re-added or there are better alternatives to this problem?
Is the only workaround to delay re-adding until after today’s alarms would have fired?
What is the best approach to achieve this?
Topic:
App & System Services
SubTopic:
General
I want to create movie recommendation app with ability to instantly watch selected movie in Apple TV app. As it is possible to share link to content in Apple TV app I wonder can I use it in my own app? I mean legal issues at first.
Hi
I'm novice developer.
I’m currently developing a phone number blocking app using a Call Directory Handler Extension.
The blocking feature works perfectly on iOS 18.5, but it doesn’t seem to function properly on iOS 26 beta 4.
The extension is invoked, and the numbers are passed correctly, but incoming calls are not being blocked as expected.
Is there a known issue with CallKit or Call Directory Extensions on iOS 26 beta 4
Background:
During daily usage of iOS devices, devices experience noticeable thermal issues. This heating not only affects user experience, but may also lead to device performance throttling, shortened battery life, and other problems. We need better understanding and monitoring of device thermal states to optimize application performance and user experience.
Issues Encountered:
Insufficient thermal monitoring capabilities: Unable to obtain real-time accurate temperature data from devices
Difficult power consumption analysis: Hard to determine which specific modules or threads cause high power consumption and heating
Requested Solutions:
Temperature Monitoring API: Provide accessible device temperature reading interfaces
Thermal Attribution Analysis Capability: During heating events, we expect to receive more detailed power consumption monitoring data, such as CPU, GPU, network, location services, display, high power consumption thread stacks and other information to help developers identify high energy consumption operations
Topic:
App & System Services
SubTopic:
General
Tags:
MetricKit
Developer Tools
Instruments
Performance
App initiates a App group based UserDefaults within the willFinishLaunchingWithOptions method and the same reference are used throughout the app life cycle
+ (NSUserDefaults *)appGroupUserDefaults
{
if (_appGroupUserDefaults == nil)
{
NSString *appGroupIdentifier = [NSString stringWithFormat:@"group.%@",[[NSBundle mainBundle] bundleIdentifier]];
NSUserDefaults *groupDefaults = [[NSUserDefaults standardUserDefaults] initWithSuiteName:appGroupIdentifier];
if(groupDefaults != nil)
{
NSLog(@"[DB_ENCRYPTION] appGroupUserDefaults initialised");
_appGroupUserDefaults = groupDefaults;
}
else
{
NSLog(@"<ALA_ERROR>: [CCF-OS] [DB_ENCRYPTION] %s Unable to create NSUSerDefaults with groupIdentifier", __func__);
_appGroupUserDefaults = [NSUserDefaults standardUserDefaults];
}
}
return _appGroupUserDefaults;
}
Doesn't have any issues on accessing the values but seen the below console error:
Couldn't read values in CFPrefsPlistSource<0x103eedb00> (Domain: group.com.kodiak.InstaPoC, User: kCFPreferencesAnyUser, ByHost: Yes, Container: (null), Contents Need Refresh: Yes): Using kCFPreferencesAnyUser with a container is only allowed for System Containers, detaching from cfprefsd
Does it require any action here ?
Some of our users encounter an issue after updating their iPhone/iPad to iOS 17.5.1.
The tokens passed in the Shield Configuration extension don't match the tokens they selected in my app using the FamilyPicker before updating to iOS 17.5.1. It seems the tokens changed for no reason. My app can't match the token from the ShieldConfigurationDataSource to any tokens stored on my end, causing my shield screens to turn blank. The same applies to tokens in the Device Activity Report extension.
The only workaround I've found is to tell affected users to unselect and reselect apps and websites to block in my app. This gets them new tokens from the FamilyActivityPicker, which solves the issue. However, for some users, the bug reoccurs a few days later. Tokens seem to change again, causing the same issue in the Shield Configuration extension.
I am not able to reproduce the issue on my test devices so I have no sysdiagnose to attach. However, this issue is affecting other screen time apps:
https://developer.apple.com/forums/thread/732845
https://forums.developer.apple.com/forums/thread/756440
FB14082790
FB14111223
A change in iOS 17.5.1 must have triggered this behaviour. Could an Apple engineer give us any updates on this?
Topic:
App & System Services
SubTopic:
General
Tags:
Family Controls
Device Activity
Managed Settings