I'm using the Screen Time API to shield apps the user selects. The problem is, that the apps are always shielded, even outside of the schedule. Here is my function initiateMonitoring:
func initiateMonitoring(scheduleStart: DateComponents, scheduleEnd: DateComponents) {
let schedule = DeviceActivitySchedule(
intervalStart: scheduleStart,
intervalEnd: scheduleEnd,
repeats: true
)
let center = DeviceActivityCenter()
do {
try center.startMonitoring(.daily, during: schedule)
logger.log("STARTED MONITORING")
} catch {
logger.log("FAILED MONITORING: \(error.localizedDescription)")
}
}
The expected result should be that the selected Apps should be blocked during the schedule the user specified, but not outside the schedule, but it is blocked 24/7. I've experimented with the DateComponents,
but the issue may be somewhere else.
What's maybe interesting is, I tried Logging
the DeviceActivityMonitor
and somehow it doesn't get called. The logging-output from initiateMonitoring
is printed in the console,
but for the DeviceActivityMonitor
it's not. I implemented it as recommended as a separate Extension Target. For more context, here is my DeviceActivityMonitor:
class DeviceActivityMonitorExtension: DeviceActivityMonitor {
let store = ManagedSettingsStore()
let logger = Logger()
override func intervalDidStart(for activity: DeviceActivityName) {
super.intervalDidStart(for: activity)
logger.log("INTERVAL STARTED")
let model = ShieldManager.shared
let applications = model.selectionToDiscourage.applicationTokens
let categories = model.selectionToDiscourage.categoryTokens
let webCategories = model.selectionToDiscourage.webDomainTokens
store.shield.applications = applications.isEmpty ? nil : applications
store.shield.applicationCategories = ShieldSettings.ActivityCategoryPolicy.specific(categories, except: Set())
store.shield.webDomains = webCategories.isEmpty ? nil : webCategories
}
...
What's confusing me is that the apps are in fact shielded, so the MonitorExtension
should be called, but neither the logging
works nor my separate ShieldConfigurationExtension,
maybe the issues are connected...
Any help would be gladly appreciated!