I've a strange problem which is only occurring on 2 client devices. We have enabled Universal links, and have it fully tested and working.
On one client device, the link never opens our app; but here's the strange thing: If I long-press on our link (in Messages), it gives a preview (as expected), and the context menu offers "Open in ", as well as "Open in Safari".
Tapping on "Open in " does nothing.
I've tried the following:
Checked I could access the site-association file over https with no redirects
Enabled developer mode and used universal link debug feature: pasted the same link - Developer mode says it will open the app.
I've carried out the sysdiagnose; And there are entries in there for our app in swcutil_show.txt. Snipped below:
Service: applinks
App ID: <my fully qualified app bundle id>
App Version: 760.0
App PI: <LSPersistentIdentifier 0x6b8008930> { v = 0, t = 0x8, u = 0x45c, db = DC8D18A2-430D-4AD4-A5BE-B7A003CF9A6F, {length = 8, bytes = 0x5c04000000000000} }
Domain: www.<mydomain>.com
Patterns: {"/":"/cc/*"}, {"?":{"t":"*"},"/":"/md/"}
User Approval: unspecified
Site/Fmwk Approval: approved
Flags:
Last Checked: 2025-04-29 09:10:21 +0000
Next Check: 2025-05-04 08:42:50 +0000
--------------------------------------------------------------------------------
Service: applinks
App ID: <my fully qualified app bundle id>
App Version: 760.0
App PI: <LSPersistentIdentifier 0x6b8008930> { v = 0, t = 0x8, u = 0x45c, db = DC8D18A2-430D-4AD4-A5BE-B7A003CF9A6F, {length = 8, bytes = 0x5c04000000000000} }
Domain: <mydomain>.com
Patterns: {"/":"/cc/*"}, {"?":{"t":"*"},"/":"/md/"}
User Approval: unspecified
Site/Fmwk Approval: approved
Flags:
Last Checked: 2025-04-29 09:10:21 +0000
Next Check: 2025-05-04 08:42:50 +0000
--------------------------------------------------------------------------------
Service: applinks
App ID: <my fully qualified app bundle id>
App Version: 760.0
App PI: <LSPersistentIdentifier 0x6b8008930> { v = 0, t = 0x8, u = 0x45c, db = DC8D18A2-430D-4AD4-A5BE-B7A003CF9A6F, {length = 8, bytes = 0x5c04000000000000} }
Domain: *.<mydomain>.com
Patterns: {"/":"/cc/*"}, {"?":{"t":"*"},"/":"/md/"}
User Approval: unspecified
Site/Fmwk Approval: approved
Flags:
Last Checked: 2025-04-29 09:10:21 +0000
Next Check: 2025-05-04 08:42:50 +0000
--------------------------------------------------------------------------------
The version numbers match the installed version of my app
I've tried running logging and just capturing logs before and after I press the "open in ", but there's nothing suspicious in there.
And the kicker - it's only happening on a single device. No other devices are experiencing 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
Goal: Manually install an explicit version of Rosetta2
Background:
Me and some customers have an old app (intel) which perfectly worked with Rosetta2. In the last week of April most macheines were updated to Mac Os 15.4.1. and the app still starts but certain functionality is bronken. Some fields ind the forms don't write back to the database, some data can't be read from the database.
(Most installations will fade out over the next month but it would be great to have the app fully working for data migration.)
First try was to step back to 15.4. (Clean Install - Install App - Rosetta installs as expected): no change, app still broken
Second try back to 15: (Clean Install - Install App - Rosetta installs as expected): App still broken (!) This is interesting as the app worked for month using Mac Os 15!
Third try: Back to MacOS 14 (Clean Install - Install App - Rosetta installs as expected): App is working like nothing happend.
(All attempts on same hardware of course.)
Reasoning:
Rosetta2 was the only software (besides the app itself) installed after clean MacOS installs. Now, my guess is that there were might be a change in Rosetta2 as the app worked on MacOs 15 up the update 15.4.1. was installed.
Checking versions (pkgutil --pkg-info com.apple.pkg.RosettaUpdateAuto):
Rosetta version MacOS 14: 1.0.0.0.1.1722778371
Rosetta version on MacOS 15.4.1: 1.0.0.0.1.1744447383
To fully verify the cause it would be great to uninstall Rosetta on MacOS15.4.1 machine and explicit install lower version (1.0.0.0.1.1722778371) which must be available somewhere as MacOS14 still gets this version.
I know how to uninstall - is there a possibility to manually install an explicit version of Rosetta2?
Topic:
App & System Services
SubTopic:
General
So I have been working with the screen time api. however I still cant get it to work to reshield certain apps after a certain time because for example Dispatch Queue just gets terminated after a certain time.
This is my code right now but the reshielding doesn't get called. Please help I have been working on this since weeks and weeks.
import ManagedSettings
import DeviceActivity
import Foundation
class ShieldActionExtension: ShieldActionDelegate {
let store = ManagedSettingsStore()
let center = DeviceActivityCenter()
override func handle(action: ShieldAction, for application: ApplicationToken, completionHandler: @escaping (ShieldActionResponse) -> Void) {
switch action {
case .primaryButtonPressed:
// Unshield the app
store.shield.applications?.remove(application)
// Encode and persist ApplicationToken
if let encoded = try? PropertyListEncoder().encode([application]) {
UserDefaults(suiteName: "group.Organization.BrainRipe.cmonnow")?.set(encoded, forKey: "StoredApplicationTokens")
}
let unshieldDurationMinutes = 2
let now = Date()
guard let endDate = Calendar.current.date(byAdding: .minute, value: unshieldDurationMinutes, to: now) else {
completionHandler(.close)
return
}
let activityName = DeviceActivityName("com.myapp.shield.reapply")
let schedule = DeviceActivitySchedule(
intervalStart: Calendar.current.dateComponents([.hour, .minute], from: now),
intervalEnd: Calendar.current.dateComponents([.hour, .minute], from: endDate),
repeats: false
)
do {
try center.startMonitoring(activityName, during: schedule)
} catch {
print("Error starting monitoring: \(error)")
}
completionHandler(.close)
case .secondaryButtonPressed:
completionHandler(.defer)
@unknown default:
fatalError("Unhandled ShieldAction case.")
}
}
}
import DeviceActivity
import ManagedSettings
import Foundation
// Optionally override any of the functions below.
// Make sure that your class name matches the NSExtensionPrincipalClass in your Info.plist.
class DeviceActivityMonitorExtension: DeviceActivityMonitor {
let store = ManagedSettingsStore()
override func intervalDidStart(for activity: DeviceActivityName) {
super.intervalDidStart(for: activity)
// Handle the start of the interval.
}
override func intervalDidEnd(for activity: DeviceActivityName) {
guard let data = UserDefaults(suiteName: "group.Organization.BrainRipe.cmonnow")?.data(forKey: "StoredApplicationTokens"),
let tokens = try? PropertyListDecoder().decode([ApplicationToken].self, from: data) else {
return
}
let tokenSet = Set(tokens)
if store.shield.applications == nil {
store.shield.applications = tokenSet
} else {
store.shield.applications?.formUnion(tokenSet)
}
// Clear tokens after use
UserDefaults(suiteName: "group.Organization.BrainRipe.cmonnow")?.removeObject(forKey: "StoredApplicationTokens")
}
}
Topic:
App & System Services
SubTopic:
General
Tags:
SwiftUI
Family Controls
Managed Settings
Screen Time
Hi all,
I'm working on a Screen Time-based app with gamification features for families, where both children and parents interact and compare usage stats. The endgoal of the app is to motivate for less screentime or more use of productive apps. I'm testing Apple's Family Controls API, which works great for getting data from child devices. However, this API doesn't support fetching screen time data on the parent device itself.
Apps like Jomo appear to provide insights and even their own "calculations" on screen time usage directly on the parent device. I have tested a few apps that showed both the usage data for my children and myself and did some nice things with it like creating stats. I've gone through the documentation and APIs extensively, but I can’t figure out how they’re doing this.
As far as I can tell the only solution would be a custom VPN or MDM. However as far as I can tell Jomo for example does not use either of those.
My questions are:
Am I missing some API
Are apps like Jomo using private APIs which they have been granted access to from Apple?
Is there any way to access similar data on a parent device without using MDM or VPN?
Any guidance or clarification would be greatly appreciated!
Hello,
The purpose of "Screen Time Passcode" under Settings/Screen Time is to protect Screen Time preferences and it is asked every time the user updates Downtime, App Limits, Content & Privacy Restrictions and so on.
But the private passcode is not requested if the user disables Screen Time for a particular app (only Face ID or phone passcode is requested, but not the private Screen Time passcode).
I think this is a mistake, I think the purpose of a private Screen Time passcode is to protect all settings, including apps that use this API, right?
Is there any solution to this?
Thank you.
All the threads only contain system calls. The crashed thread only contains a single call to my app's code which is main.swift:13.
What could cause such a crash?
crash.crash
Hi everyone,
I’m working with the ManagedSettingsStore API for managing Screen Time restrictions and I have a specific question:
Is it possible for an app to block itself using ManagedSettingsStore() — for example, by applying an application category restriction or setting a specific block on its own bundle ID?
If so, what strategies or best practices are recommended to avoid accidentally blocking the app itself while applying restrictions to other apps or categories?
I haven’t found any official documentation confirming whether the system prevents self-blocking automatically or if this is something developers need to manage explicitly.
Thanks for any clarification or advice you can provide!
Hello,
I added a printer using lpadmin command.
` lpadmin "-p", "print_queue", "-D", "print queue", "-P", "temp/data/driver.ppd", "-E", "-o", "printer-error-policy=abort-job", "-o", "printer-is-shared=false", "-o", "cupsIPPSupplies=false", "-o", "cupsSNMPSupplies=false", "-o", "ColorModel=Color", "-o", "Media=A3", "-o", "OutputPaperSize=A3"
then I set default printing options for your user account via lpoptions
`lpoptions "-p", "print_queue", "-o", "Duplex=DuplexNoTumble", "-o", "Media=A3"
But still default values in system print dialog are set to a4 and grayscale. Why? Is there any way how to change it to correspond with values set by these commands?
Also tried to change driver files defaults, but again, nothing.
Topic:
App & System Services
SubTopic:
General
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.
Using Apple SwiftUI Translate library: when calling:
try await session.prepareTranslation()
the first time, the API's Language Download sheet does not show (or shows briefly and dismisses immediately) Even when the sheet doesn't show, the keyboard is lowered, as though the sheet would be appearing, but then the keyboard raises as though the sheet was dismissed.
The following Errors are printed in the console dozens of times; but on all subsequent executions, the API Language Download sheet shows as expected.
The trigger code is in a function which is executed when a Translate button is tapped.
Any ideas would be welcome!
Console Error on first execution only
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}
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}
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: 0x300df3c30> BundleID: (null) digest: 7749FEEE-F663-39B4-AD68-A18CFF762CCC - <ISImageDescriptor: 0x3033b26c0> - (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: 0x300d0fb70>,Type: com.apple.appprotection.badge.faceid - <ISImageDescriptor: 0x3033ad0e0> - (32.00, 32.00)@2x v:0 l:5 a:0:0:0:0 t:() b:0 s:2 ps:0 digest: 648D7A72-90CB-3858-9409-5C554BB43B8E 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}
Connection interrupted, finishing translation with error Error Domain=TranslationErrorDomain Code=14 "(null)"
Got response from extension with error: Error Domain=TranslationErrorDomain Code=14 "(null)"
Reported that remote UI finished but didn't get finished configuration, reporting the error as: Error Domain=TranslationErrorDomain Code=20 "(null)"
VS terminated with error: Error Domain=_UIViewServiceErrorDomain Code=1 "(null)" UserInfo={Terminated=disconnect method}
Reported that remote UI finished but didn't get finished configuration, reporting the error as: Error Domain=TranslationErrorDomain Code=14 "(null)"
VS terminated with error: Error Domain=_UIViewServiceErrorDomain Code=1 "(null)" UserInfo={Terminated=disconnect method}
VS terminated with error: Error Domain=_UIViewServiceErrorDomain Code=1 "(null)" UserInfo={Terminated=disconnect method}
VS terminated with error: Error Domain=_UIViewServiceErrorDomain Code=1 "(null)" UserInfo={Terminated=disconnect method}
VS terminated with error: Error Domain=_UIViewServiceErrorDomain Code=1 "(null)" UserInfo={Terminated=disconnect method}
Trigger the Translation:
// check if we need to create a translation configuration
if configuration == nil {
configuration = TranslationSession.Configuration.init(
source: Locale.Language(identifier: sourceLanguageCode),
target: Locale.Language(identifier: targetLanguageCode)
)
} else {
// or just update the target code then invalidate the config to re-trigger the refresh
of .translationTask()
configuration?.source = Locale.Language(identifier: sourceLanguageCode)
configuration?.target = Locale.Language(identifier: targetLanguageCode)
configuration?.invalidate()
}
Prepare and check if Download sheet should be presented:
.translationTask(configuration) { session in
do {
// prepare translation & present API download sheet if lanugage download needed.
try await session.prepareTranslation()
} catch {
print("Translate failed: \(error)")
}
}
Hello,
We're facing an issue with app links failing and falling back to browser website journeys. Our apple-app-site-association file is hosted publicly and the app to app journeys have been working correctly up to very recently - we are trying to identify any potential network infra changes that could have impacted the Apple CDN being able to retrieve the apple-app-site-association file.
We can see in the iPhone OS logs that the links cannot be verified by the swcd process, and using the app-site-association.cdn-apple.com/a/v1 api via curl can also see the CDN has no record of the AASA file.
Due to the traffic being SSL and to a high volume enterprise site it is difficult for use to trace activity through anything other that the source IPs - we cannot filter on user-agent for "AASA-Bot/1.0.0" as breaking the SSL would be impactful due to the load. Is it possible to get a network range used by the Apple CDN to retrieve the AASA file as this would help us identify potential blocking behaviour?
Thank you.
app packged with Xcode16 crashed on iOS12 certainly. My question is:
is it known issue for Apple team?
to resolve this issue, what can we developers do?
This is
Hello,
In our application, we have implemented an app extension to allow users to open the main app directly from the share activity window. To achieve this, we used the openURL(:) method from the NSExtensionContext class, as documented here: openURL(:).
However, we received one post from Apple stating that opening the main app directly is typically only supported in extensions such as Today widgets or iMessage apps. They also mentioned that this approach may require an additional review during the App Store submission process.
Link: https://developer.apple.com/documentation/foundation/nsextensioncontext/1416791-openurl
Could someone clarify:
If using openURL(_:) in a share extension to open the main app would lead to potential issues during App Store submission?
Are there specific guidelines or alternative approaches we should follow to ensure compliance?
Any insights or recommendations would be greatly appreciated.
Thank you!
Topic:
App & System Services
SubTopic:
General
Tags:
Mobile Core Services
Developer Tools
Extensions
We have found a large number of memory-related crashes in iOS18, and multiple issues have finally pointed to this crash line xzm_xzone_malloc_tiny_outlined. Do not know how to solve it now
In a project having both an app and a website, the following two website urls are to be handed over to the corresponding app:
https://www.example.com/search?plus https://www.example.com/search?query=something
In AASA file, this becomes:
"components": [ { "/": "/search", "?": { "plus": "", "query": "?*" } }
However, finally it does not work for both urls. Only the one with "query" works by hand over to app.
For investigation, I have tried this for the problematic link:
"components": [ { "/": "/search", "?": "plus" }
and this works.
How can I get both to work?
(note that for the sake of brevity, only a portion of the AASA files are shown)
I created a new project, packaged it with my own enterprise certificate, installed and used it. There were no problems on most devices. However, on some devices with system versions of 18.3 and 18.4, the app crashes when opened after trusting the certificate. It seems that there is something wrong with the certificate, but I have confirmed that the certificate is fine. May I ask what the cause of this issue is?
Topic:
App & System Services
SubTopic:
General
As the title says.
This happens even when not in dark mode.
When I launch the Quick Look Preview Extension target in Xcode, an app called Quick Look Simulator opens with an almost empty window:
Online I read that the Terminal command qlmanage allows to test Quick Look plugins (which I think were an older format for creating Quick Look extensions), but running
qlmanage -p /path/to/previewed/file -c public.text -g /path/to/QuickLookPreviewExtension.appex
(where QuickLookPreviewExtension.appex is generated by the Xcode build and is located in the DerivedData folder) gives an error
Can't get generator at QuickLookPreviewExtension.appex
How can I debug a Quick Look Preview Extension?
An error was reported when requesting permissions on devices with iOS 16.2 16.3. It is not an emulator.
Through the log records, the following Error message appears
Error Domain=FamilyControls.FamilyControlsError Code=3 "(null)"
Error Domain=FamilyControls.FamilyControlsError Code=4 "(null)"
Error Domain=FamilyControls.FamilyControlsError Code=5 "(null)"
func requestScreenTime() async -> Bool {
do {
try await AuthorizationCenter.shared.requestAuthorization(for: .individual)
return AuthorizationCenter.shared.authorizationStatus == .approved
} catch {
print("\(error)")
return false
}
}
Since iOS 18.4 and macOS 15.4 updating the calendar of an (ek)event (to another accounts calendar) or detaching an repeating event throws an error while saving:
"Access denied"
EKEventStore.save(event, span: .thisEvent, commit: true)
catch {
"Access denied"
}