-->

Develop parental app in iOS

2020-07-11 06:39发布

问题:

There are few sources which say the Device Enrolment Program (DET) is the way to create Parental Apps like Kidslox. However, the program says that it manages the corporate devices you own. Then how would it manage the devices we don't own or to say how would it control the distribution over AppStore.

Somewhere it is also mentioned that this can be handled by MDM profile. I have no experience on working with that and also not very sure if this is the solution.

So, these are my queries after a long time spent searching on this :

  1. What is the standard way to create such apps ? Server management is of course one part, but I am focusing on client side implementation like network accessibility, app accessibility, child time management - all under one roof.
  2. Is there any SDK/Library (Swift preferably) provided by Apple for this (NOT THE DISTRIBUTION but for development) ?
  3. Are there open source libraries which are used for developing such apps ?
  4. Any post/blog which covers the implementation.

I would love to hear thoughts from everyone, but I am looking for answers from devs who have experience working on such apps or are developing such apps.

回答1:

Please review the following answer on StackOverflow:

  • Ourpact Parenting Control IOS
    • Github MDM Server
    • Apple Documentation

It covers how OurPact uses MDM to deploy a profile to a child's phone, the MDM server is a nice example server implementation overview.

An alternative option is to use an Apple Parental gate, my sense would be to recommend you take a look at the following example, not as restrictive but useful:

  • https://github.com/owlcoding/PMParentalGate

this is a drop-in piece of code that can be used to create a parent gate.

[[PMParentalGateQuestion sharedGate] presentGateWithText:nil timeout:10 finishedBlock:^(BOOL allowPass, GateResult result) {
    if (allowPass) {
        [Flurry logEvent:@"unlockAllPressed" withParameters:@{@"moduleId": self.quiz.purchaseID}];
        [MBProgressHUD showHUDAddedTo:self.view animated:YES];
        [[InAppPurchaseHelper sharedInstance] buyProductWithId:@"fullpro"];
    }
}];

I hope the above helps.