Family Controls

RSS for tag

Prevent access to the Screen Time API without guardian approval and provide opaque tokens that represent apps and websites.

Posts under Family Controls tag

82 Posts
Sort by:
Post not yet marked as solved
2 Replies
401 Views
I got a client request to build a parental control app like Parentkit(https://parentkit.co/) or Ourpact (http://ourpact.com/) to help parents manage their children devices. After doing some research online, I figured that it could be a MDM feature and requires an apple enterprise account for implementation. However, Apple developer program support does not allow me to create an enterprise account for developing a MDM system for non-company members. They also said that any non-company use of MDM is not allowed by Apple. If what they said is true, MDM implementation should not be allowed in the abovementioned parental control apps. Would they be using other means without the need to register an enterprise account to archieve real-time, over-the-air control on device restriction? If that is the case, what else I should read and work on to build a parental control apps like those without registering an enterprise account?
Posted
by
Post not yet marked as solved
16 Replies
2.6k Views
I've created a test project in which I can successfully receive the FamilyControl authorization for the child device. Then on the parent device(where the parent account is logged in as the iCloud account), I basically used the following test code as provided in the documentation FamilyActivityPicker struct ExampleView: View {   @State var selection = FamilyActivitySelection()   @State var isPresented = false   var body: some View {     Button("Present FamilyActivityPicker") { isPresented = true }     .sheet(isPresented: $isPresented) {       FamilyActivityPicker(selection: $selection)     }     .onChange(of: selection) { newSelection in       let applications = selection.applications       let categories = selection.categories       let webDomains = selection.webDomains     }   } } I get the following error on the view : The operation couldn't be completed. (FamilyControls.ActivityPickerRemoteViewError error 1) For authorization errors I was able to look into the FamilyControlsError enum in the FamilyControls framework, but I can't find an enum for ActivityPickerRemoteViewError. Any idea as to why it's failing to load? I believe I am using the right setup in terms of the account that I am logged in to. I do have the FamilyControl capability, and I was able to successfully provide authorization for the child. Is there any other prerequisite that needs to be done to load the FamilyActivityPicker? Also, Do you know where I can find the error codes corresponding to ActivityPickerRemoteViewError ? What does error 1 indicate? I do see the following in the console logs : 2021-06-09 16:42:38.430112-0400 NN Family Control[849:38700] [lifecycle] [u 9F1F2B94-76F6-4D8F-ADE3-6D1C14EE5074:m (null)] [com.apple.FamilyControls.ActivityPickerExtension(1)] Connection to plugin interrupted while in use. 2021-06-09 16:42:38.476929-0400 NN Family Control[849:38704] [lifecycle] [u 9F1F2B94-76F6-4D8F-ADE3-6D1C14EE5074:m (null)] [com.apple.FamilyControls.ActivityPickerExtension(1)] Connection to plugin invalidated while in use.
Posted
by
Post not yet marked as solved
4 Replies
1.3k Views
I was able to start the device activity monitor. I was able to see the Device Activity Monitor Extension as a process, and was able to attach to it via Xcode. Now I am trying block a specific 3rd party application, via the Shield. I am using this piece of code for intervalDidStart :    override func intervalDidStart(for activity: DeviceActivityName) {     NSLog("Interval started for Device Activity")     let blockedApps : Set<Application> = [Application(bundleIdentifier: "com.facebook.Facebook")]     store.application.blockedApplications = blockedApps     super.intervalDidStart(for: activity) } I've declared store in the DeviceActivityMonitor class as follows :    let store = ManagedSettingsStore() This is the error I see in the Console: Error Domain=UsageTrackingErrorDomain Code=1 "Something without a application-identifier entitlement tried to manage usage budgets" UserInfo={NSLocalizedDescription=Something without a application-identifier entitlement tried to manage usage budgets} The above use case should work right? I should be able to apply the settings inside DeviceActivityMonitorExtension? What does the application-identifier entitlement look like? How do I use it?
Posted
by
Post not yet marked as solved
1 Replies
765 Views
Where is the "screen time" API documentation? I've found interfaces in the frameworks themselves with little documentation but the web doesn't provide any helpful documentation, examples, or guidelines to leverage the new APIs.
Posted
by
Post not yet marked as solved
1 Replies
1.2k Views
I am able to see the list of Applications using the Family ActivityPicker on the child but not able to see it on the parent device. I can see the list of categories but there aren't any applications on each of the categories. My expectation is to see the applications which are installed on the child device. Please correct me if that is not the expected behavior. The family sharing is setup correctly, and on requesting authorization, it does fail to get the authorization as expected, because it's the parent account. I do see the correct behavior on the child device. I did provide authorization and I can see the list of applications inside the picker on Beta 2. On the parent device I see the following errors in the console : Connection error from Optional("com.apple.ManagedSettingsAgent"): Couldn’t communicate with a helper application.  Attempts remaining: 1 Failed to fetch effective value for com.apple.ManagedSettings.effective-media-settings.changed: Couldn’t communicate with a helper application. Failed to open usage store with error: The file “Store.plist” couldn’t be opened because there is no such file. Any ideas?
Posted
by
Post not yet marked as solved
16 Replies
5.1k Views
I've been trying to get something to work with the Screen Time API, but almost everything related to it is completely and truly broken/unimplemented. I've tried all of this in the iOS 15 Beta 2 and 3 and Xcode 13 Beta 2 and 3. These are just a handful of the bugs I came across: Screen Time APIs do not work on the simulator. Calling AuthorizationCenter.shared.requestAuthorization on a simulator with a logged in child account always results in "FamilyControls.FamilyControlsError Code=3" FamilyActivityPicker does not list installed apps on either of the guardian's or child's devices, it only lists the categories. It's not clear at this point whether FamilyActivityPicker needs to be called on the parent or the child device. Assuming restrictions can actually be set, there is no API to allow setting up of restrictions for individual kids. After successfully authorizing a child device via AuthorizationCenter.shared.requestAuthorization, DeviceActivityCenter.startMonitoring always results in an MonitoringError.unauthorized error. AuthorizationCenter.requestAuthorization error in callback cannot be mapped back to FamilyControlsError because it is a plain NSError with an error code and FamilyControlsError does not expose an initialiser that takes a rawValue. Even though an app is authorized to managed ScreenTime on a child device, the child can always just delete the app. (I would try to submit a bug with device diagnostics about this using Feedback Assistant, but to top it all off at the moment I am receiving an error in FA that says "Unable to gather diagnostics" / "A problem was encountered when trying to gather diagnostics. Try gathering diagnostics again"). There's no device activity / shield configuration or shield action extension templates in Xcode. For those wondering, I created a CallDirectory extension and then changed the NSExtensionPointIdentifier in the plist to the appropriate value. What is the appropriate value? It's not mentioned in the documentation :), so I had to dig around in the Xcode support files to find out the following identifiers: com.apple.ManagedSettings.shield-action-service com.apple.ManagedSettingsUI.shield-configuration-service com.apple.deviceactivity.monitor-extension And this leads me to my last item: the documentation which is absolutely lacking. There is no programming guide for the frameworks and the Homework app we saw developed during WWDC is not available. It's not clear how the settings from the guardian app get applied to the child app. Is there a built-in mechanism or do we need to use our own implementation to transfer those changes (via push or whatever)? Of course I reported almost all of this via Feedback Assistant, but considering I had previous feedback for other APIs sit there untouched for years in the past, it's really frustrating and it feels like I'm just talking to myself with those bug reports. So, did I do something wrong and completely misinterpreted the capabilities and functionality of the ScreenTime API or is it truly broken and non-functional in iOS 15 Beta 2/3? There's absolutely no mention of these issues in the release notes so I am starting to question my sanity here.
Posted
by
Post not yet marked as solved
0 Replies
383 Views
I am facing this issue when i start monitoring error The operation couldn’t be completed. (DeviceActivity.DeviceActivityCenter.MonitoringError error 0.) source code in didFinishLaunchingWithOptions center.requestAuthorization{ result in     print(result)       switch result {       case .success():         print("success")                   switch self.center.authorizationStatus {         case .approved:           print("approved")                       let center = DeviceActivityCenter()           do {             try center.startMonitoring(.daily, during: self.schedule)           } catch {             print("error (error.localizedDescription)")           }            case .denied:           print("denied")         case .notDetermined:           print("not determined")         }       case .failure(let error):         print(error.localizedDescription)                 }     }
Posted
by
Post not yet marked as solved
8 Replies
1.3k Views
Several questions to some intentions behind the frameworks and specific issues with it's usage, underlined with filed Feedback Assistant reports. (see below) Understanding of the Application class Such class can be either instantiated with the token (which only the OS provides with the FamilyActivityPicker) or through a bundleIdentifier. When is it intended to use the bundleIdentifier initializer? Currently it is not possible to set a threshold limit on an application created via bundleIdentifier because the DeviceActivityEvent only accepts a Set<ApplicationToken> which a developer can not instantiate. Family Picker Is it intended to use this picker only on the child's device or can the parent see which apps are installed on the child's device? (FB9375607 & FB9375638) If so, how do you imagine when a new app get's installed, does the guardian have to regularly check if a new app is installed and if so update it's settings on the child device? How can an app obtain the app icon of such an application or category? (FB9375449) ShieldConfiguration & Action When a schedule's callback happens (FB9375294) and an application is shielded we receive the localizedDisplayName of such application to show it in the shield UI. In the WWDC session it was said that you could have an action that let's you do a network request to e.g. ask the guardian to lift the restriction which is located in a different extension. Will the localizedDisplayName be available to be included in the request so that the guardian knows which app they lift the restriction on? Filed Feedback Assistant Tickets: Start monitoring returns Unauthorized when the device is authorized - FB9375294 Provide an app icon for an application instance - FB9375449 FamilyActivityPicker does not list apps on authorized child device - FB9375607 Show installed apps from child on guardians phone - FB9375638
Posted
by
Post not yet marked as solved
0 Replies
342 Views
We have a learning website for children. We have had multiple customer reports of some of our pages, e.g., https://www.ixl.com/math/grade-3/find-equivalent-fractions-using-area-models-two-models and https://www.ixl.com/standards/minnesota/ela/grade-3, being blocked with "Limit Adult Websites" turned on in the Screen Time settings. What causes websites to be blocked with "Limit Adult Websites" turned on? How can we prevent our children friendly pages from being blocked with this setting? Is there anything Apple can do to address this? Thank you!
Posted
by
Post not yet marked as solved
0 Replies
308 Views
Could we detect the Lock/Unlock and Screen State Using Screen Time API. In the Screen Time API when we shield the discourage application. At that time you are using State object MyModal(). Where we can find that MyModal Class.
Posted
by
Post not yet marked as solved
1 Replies
576 Views
i have two physical devices one for parent and one for child. on the child device. AuthorizationCenter.shared.requestAuthorization returns me .success but on the parent device it always fails with receiving that "The operation couldn’t be completed. (FamilyControls.FamilyControlsError error 2.)" what are the reasons that may cause this error on the parent device?
Posted
by
Post not yet marked as solved
1 Replies
613 Views
Hi! There weren't any mentions in the video and documentation on how the Screen Time API handles multiple children and multiple devices. Specifically, cases like this: Multiple children with one device per child Multiple children with multiple devices per child (e.g. iPhone + iPad) Parent/guardian with multiple devices The FamilyActivityPicker doesn't take any parameters. What will happen when a parent with multiple kids opens the picker? Thanks.
Posted
by
Post not yet marked as solved
1 Replies
499 Views
Hello! There was mentioned in the WWDC session that Also, on-device web content filters built with the Network Extensions framework can be included in your app and will be installed automatically and cannot be removed. But there is a notice in documentation for Content Filter Providers that You can use content filter providers in apps ... on iOS supervised devices only Can we rely on the fact that the documentation is not updated yet and com.apple.developer.family-controls entitlement with authorized app on child device would be enough for on-device web content filtering? We can't prove this with ourselves while the entitlement is only for Development where Content Filter Providers are allowed for default.
Posted
by
Post not yet marked as solved
1 Replies
435 Views
I am building an app that uses DeviceActivity framework. Looking at the documentation, I need to subclass (https://developer.apple.com/documentation/deviceactivity/deviceactivitymonitor), I need to "subclass DeviceActivityMonitor and designate the subclass as the principal class of my app extension. I am wondering how to designate my subclass as the principal class. (I am new to iOS development :) .
Posted
by
Post not yet marked as solved
0 Replies
233 Views
I believe I deserve the bounty hunter price for this one. Procedure on how to bypass screen time and access adult websites. This method will work on iPad, iPhone, MacBook Pro, iMac, MiniMac Line 1 - Turn on screen time Line 2 - Set a passcode  Line 3 iPhone/iPad - Go to Content & Privacy Restrictions > Content Restrictions > Web Content > Limit Adult Websites Line 3 -- iMac/MacBookPro/miniSystem Preferences > Screen Time > Content Restrictions > Web Content > Limit Adult Websites By completing lines 1-3 the device won't be able to access any adult websites on Safari ONLY. The way to bypass this is to download google chrome on the device, after the download is complete navigate to the search engine. Line 4 - Search for "*******", or  "xnxx", or Xvids on google chrome -- if you try to enter the websites it won't allow you on the iPad and iPhone. But it will allow you to enter on iMac, MacBook Pro and MiniMac (If you toggle between Videos and Images on google search you can see explicit content which or not blocked). Which proves that the Screen Time does not work on Chrome, if you try Safari it won't allow you to enter or see any adult content. To bypass on the iPhone and iPad Try Line 5 Line 5 - To bypass on the iPhone and iPad search on chrome "xnxx Japan", "xnxx China", "xnxx India", "xnxx arabic" and toggle to the video or image tab.  The goal here is to find a video or image that will allow to enter the website base on their native language of upload. This is not allow you to enter if it is in English or if it was upload in America.  To show that this works on the iPhone or iPad redo 1-Line 3 and turn Screen Time on and Blah Blah Blah Line 6 - Go to chrome search for "xnxx Japan" and toggle to the video tab  Line 7 - Click on the first video (which was uploaded Jun 15 2018) if it does not let you in restart the divide and try again and it should work. Try second Video. Try "*******".                                                                !!!!SCREEN TIME IS BROKEN!!!! Nick from Apple Product Security told me I and quote  " Features like Screen Time are designed to provide parents with the tools to understand and manage their children’s device usage. Screen Time is not intended to protect a device against manipulation." Which makes SCREEN TIME a complete JOOKE Fix the bug and pay me for the bounty!  Ps... Here is a Solution on How to prevent Children from watch ****  Line 8 - Go to Content & Privacy Restrictions > Content Restrictions > Web Content > Limit Adult Websites Line 9 - Under Never Allow click on it and type the physical URL address  https://www.xnxx.com https://www.*******.com Blah Blah Blah Parental Advisory Explicit Content
Posted
by
Post not yet marked as solved
0 Replies
278 Views
I have been having an issue where my screentime calculates how long I am using “Safari” along with how long I am using each individual website. For example, if I used Wikipedia for 30 minutes, then my screen time would record 30 minutes for Wikipedia AND 30 minutes for safari. Because of this, my screentime is highly inaccurate. Is there anyway to resolve this issue so it only calculates either the website or Safari?
Posted
by
Post not yet marked as solved
0 Replies
372 Views
Dear Friends, We are having a hard time understanding a concept that relates to the app idea that we are planning to develop. Imagine that we have an app called A. that requires the user's screen time usage information for selected apps like Udemy, Duolingo, and such. Our concept does not require any kind of app tracking or anything else, the only information that we need to acquire is the screen time information of the user. Accordingly, we have found an API namely Screen Time API, however, within the documentations and open topics, we couldn’t exactly be sure that we would be allowed to have such information. In this sense, we will need your kind support directing us around the idea and API. The app will provide a futuristic, ToDo, and agile-oriented device usage environment for users to track their daily objectives by directly using the screen time information (of the apps, not just the overall phone usage). Are we able to extract Screen Time information of the user's various apps? Are we able to use the Screen Time API, no questions asked? Do we need to create a proposal for the AppStore team that elaborates our idea for the App publishment? Regards.
Posted
by