Post

Replies

Boosts

Views

Activity

Regression: iOS 18.2 heavy delay of local push notifications (even time sensitive notifications)
Hello! I am working on an app that requires to send a local push notification to the user from an app extension (from the ShieldActionDelegate to be precise). This is suggested by DTS as a workaround for this issue: https://forums.developer.apple.com/forums/thread/766644 But now, on the iOS 18.2 beta, local push notifications are delayed by up to 10 seconds, even though the push notification is classified as .timeSensitive, leading to a very bad user experience (where to user has to sit and wait for the notification to arrive without knowing how long it will take). This only happens when Apple Intelligence is turned on. This had happened previously on the iOS 18.1 beta but was fixed for the final release: https://forums.developer.apple.com/forums/thread/764848 But now the issue came back on the latest iOS 18.2 beta. I have documented the new behavior in FB15668616 Any help is appreciated!
3
3
2.1k
Nov ’24
ShieldConfiguration does not update when token is moved from one store to another (while app in foreground)
Hello fellow Screen Time Fans! I am encountering a strange problem since I started working with the Screen Time framework, and I don’t know what I’m doing wrong: Imagine the app has two ManagedSettingsStores: one to block apps during work hours (let’s say from 9am to 5pm) and one to block apps in the evening (let’s say from 5:30pm till midnight). Imagine, the user has blocked Instagram in both. When the user has Instagram open at 4:59pm it shows the Block during Work Hours Shield (so far, so good). At 5pm, the shield is removed, and the user can use Instagram. Then, at 5:30 the a shield is activated again: this time, the Instagram token is added to the evening store. However, there is no new ShieldConfiguration requested from the ShieldConfigurationDataSource. Instead, the previous shield from the work hour block is re-used and shown. To me, it appears that the Framework does not request new shields, when the token is moved from one store to another while the app remains in foreground. The Shield is only re-rendered when the user closes the shielded app and re-opens it. This is really confusing behavior and I would like to fix it. Did anyone here encounter something similar, and has a suggestion or workaround? My feedback is also documented in FB14237883.
1
0
605
Oct ’24
Wake-up detection with HealthKit
Hello HealthKit Experts & Enthusiasts! I am building an app called one sec which forces people to take a deep breath before they can use social media apps (it’s using Shortcuts Automations for that). One important feature of one sec is the Good Morning Countdown: For a specified time after waking up (e.g. 30mins) selected apps are blocked completely. This helps to start the day screen-free. They way it works is, the user grants access to read HKCategoryTypeIdentifier.sleepAnalysis data. I have implemented a HKObserverQuery and enableBackgroundDelivery in order to be informed whenever new HKCategoryTypeIdentifier.sleepAnalysis becomes available. I noticed that when I have my device connected to Xcode, this works as expected. However, when I quit the app and launch it from my Home Screen, my observer query is not informed about new sleep data (except when my app is running in foreground). Any ideas? Furthermore, I have noticed that sometimes sleep data is provided delayed to HealthKit, many minutes (sometimes even longer) after waking up, no sleep samples are to be found in the Health app. Of course, for my app it is crucial to get accurate + timely so apps can be blocked accordingly. Is this an issue that the Apple Watch first needs to send the samples to the phone? Thanks a lot for your help!
1
1
848
Sep ’24
Canceling request to […].DeviceActivityMonitorExtension because it exceeded its allowed time.
Hello, I am working on an app that schedules a device activity monitor from the screen time API. I noticed that sometimes scheduling an activity monitor won’t work and instead I see this log: Canceling request to […].DeviceActivityMonitorExtension because it exceeded its allowed time. What does this mean? What exactly is exceeding its allowed time? Would love to get some feedback on this so I can prevent this from happening. Thanks a lot for any help and have a nice day!
0
1
629
Jun ’24
iOS 17.4: Safari Extensions broken?
We’ve received a lot of user complains after the latest iOS 17.4 update. Our Safari extension does not work as reliably as it used to be (sometimes it’s just not loaded, or very slowly). Is this a known issue? Are any workarounds available? On iOS 17.5 the problem seems to be fixed, but I’m still wondering for a workaround because we dont know how long until 17.5 is released.
1
0
1.1k
Jun ’24
New SwiftUI Text with relative date
Hello, I would like to make use of the new SwiftUI Text API for a Lockscreen Widget, but I wasn't able to figure out how I can achieve what I envision: I am looking for a way to display the days, hours, minutes since the time stamp. Of course, whenever day=0, they shouldn't be displayed. Whenever day>0, minutes can be dropped. So I assume I can set maxFieldCount: 2 for that. This is my current code: Text( .currentDate, format: .reference( to: entry.lastUseDate, allowedFields: [.day, .hour, .minute], maxFieldCount: 2, thresholdField: .day ) ) This is how it looks like; somehow the minutes are not displayed. What am I doing wrong?
0
2
443
Jun ’24
Background Safari Tab contributing to DeviceActivityMonitor usage threshold?
I am currently debugging an issue with DeviceActivityMonitor where the threshold is reached even though the target app (e.g. Instagram) is not being used actively. I noticed that the device with the unexpected behavior had the instagram.com website opened in the Safari web browser (among hundreds of other tabs). That tab was not actively used either (not in foreground, Safari app neither used). However, I was wondering if it can happen that this website is contributing towards the threshold as well even though it is in background and not used? Otherwise I cannot explain myself this strange behavior.
0
0
645
Apr ’24
all my DeviceActivitySchedules are killed when granting unrelated 4th party app access to screen time API permission
I have two repeating DeviceActivitySchedules running in my app and noticed a super strange behavior: whenever I modify Screen Time API permission settings (granting an additional app permission, or removing permission for a different app (completely different unrelated screen time apps from App Store)) all my DeviceActivitySchedules are cancelled and the intervalDidEnd callbacks are called my permission is not modified in this scenario this is a super strange and unexpected behavior is anyone able to reproduce this? for me this happens 100% of the times I do this any known workarounds?
0
0
701
Mar ’24
DeviceActivityEvent with threshold spanning over midnight → threshold not working
Hello, I am using a DeviceActivityEvent to limit access to an app after the user has spent x minutes on it. Sometimes it can happen that a DeviceActivitySchedule spans from 11:55pm - 12:25am (just an example). In these cases, I have noticed, the DeviceActivityMonitorExtension’s eventDidReachThreshold is not called after the user has reached the threshold time interval in the observed app. I assume this is because we have transitioned over midnight and something weird happens to the DeviceActivitySchedule. I’ve tried adding the day components to the DeviceActivitySchedule as well, but then it fails completely. Any advice how to handle this? I could, of course, create two separate DeviceActivitySchedules: one for before midnight, and one for after. But depending on the user’s real app usage that could lead to slightly different (and unexpected) behavior.
0
0
737
Mar ’24
eventDidReachThreshold triggered while target app is in background
Hello! I am using the eventDidReachThreshold callback in the DeviceActivityMonitor in order to shield a target app after the user has spend x amount of time on it (e.g. x = 5 minutes). Many times this works fine, and I can trigger my shield after the specified threshold has been met. However sometimes, when they leave the target app before the threshold has been reached, the eventDidReachThreshold callback gets called randomly while they are doing something else on their phone (e.g. using a different app, on the Home Screen, phone locked…). From my perspective this does not make sense, since they are not actively spending time on the target app, and that time should not be counted towards the target app’s threshold. And it is also very confusing for the users because they will then find a blocked target app even though they haven’t used their time budget completely. This is not related to the intervalDidStart / intervalDidEnd callbacks, because they are not correlating with the timing of when the eventDidReachThreshold callback is called unexpectedly. Any ideas what this could be related to?
0
0
645
Mar ’24
Reporter.jar: Download subscription offer code redemption data for specific date
Hello! I am looking to access data on how many times (on a specific day, week, or month) an alphanumeric subscription offer code has been redeemed (to track affiliate marketing). Right now, I am using the Reporter.jar tool like this: java -jar Reporter.jar p=Reporter.properties a=1234567 m=Robot.XML Sales.getReport 123456789, Subscription, Summary, Daily, 20230120, 1_3 As a result, a long list of subscription events is downloaded, however it is not clear which date a particular event did occur on. It seems like actually they pile up with every additional day. These are the columns that I can see: App Name, App Apple ID, Subscription Name, Subscription Apple ID, Subscription Group ID, Standard Subscription Duration, Subscription Offer Name, Promotional Offer ID, Customer Price, Customer Currency, Developer Proceeds, Proceeds Currency, Preserved Pricing, Proceeds Reason, Client, Device, State, Country, Active Standard Price Subscriptions, Active Free Trial Introductory Offer Subscriptions, Active Pay Up Front Introductory Offer Subscriptions, Active Pay As You Go Introductory Offer Subscriptions, Free Trial Promotional Offer Subscriptions, Pay Up Front Promotional Offer Subscriptions, Pay As You Go Promotional Offer Subscriptions, Free Trial Offer Code Subscriptions, Pay Up Front Offer Code Subscriptions, Pay As You Go Offer Code Subscriptions, Marketing Opt-Ins, Billing Retry, Grace Period, Subscribers As you can see, a date is not among them. Would be great if anyone has feedback on how to make this happen!
0
0
1.1k
Jan ’23
How to change the company icon on the App Store
Hello! I saw that iOS 14 shows a little icon on the App Store for each developer (see attached screenshot). Is it possible to change that icon and to replace it with the company logo? I‘d think that this option should be available somewhere on iTunes Connect but I couldn't find it so far... Thanks a lot and have a nice day! – Frederik
5
0
2.3k
Nov ’21
Evaluate Quality of SHMatch
Hello good morning lovely ShazamKit team! I was wondering if there's a way to evaluate the result (SHMatch) to be able to estimate if this is a very good match (the catalog is very certain that this is correct), or if this is at the lower end of the spectrum of certainty. Thanks a lot and have a nice day! – Frederik
1
0
1k
Sep ’21
Inconsistent HomeKit identifiers
My app Homie allows users to pin certain values, accessories or scenes to their menu bar for quick access, such as HMAccessory. To remember which devices and accessories a user has pinned to the Menu Bar, I store their uniqueIdentifier. However, I noticed that from time to time this uniqueIdentifier changes (this often happens after restarting the computer or installing a macOS software update). In this case, the device is not re-identified and the pinned-status is lost. The user is confused, because they think my app didn't store their information probably. And I am confused because the identifier is not consistent across app-starts. For reference: I am not asking to have consistent identifiers between different devices, I am asking to have consistent identifiers on the very same device. Reference: FB9052957
1
0
912
Jun ’21