Unable to set shield.applications for store container com.XXXXX.TestScreentimeAPI and name Default: Error Domain=CryptoKit.CryptoKitError Code=3

[Question] Are there any minimum and recommended hardware specifications (iPhone model) for Screen Time API to operate correctly ? I'm not sure but in my guess, when application's token created, Screen Time seems to use CryptoKit's functions which are based on a specific hardware encryption configuration not supporting all of the iPhone models.

[Reproduction]

  1. FamilyActivityPicker shows the application list of the child device on the parent device remotely.

  2. Selects a few of child's applications from the FamilyActivityPicker View.

  3. Transfers the object of FamilyActivitySelection class, which contains the selected applications tokens, to the child device through CloudKit.

  4. Try to assign the selected application tokens to the shielding related variable of ManagedSettingsStore object on the child device by below statements.

    "let applications = newValue.applicationTokens store.shield.applications = applications.isEmpty ? nil : applications"

[Result] Shows an error message like below and the selected applications have not been shielded

"Unable to set shield.applications for store container com.XXXXX.TestScreentimeAPI and name Default: Error Domain=CryptoKit.CryptoKitError Code=3 "(null)"

[Test devices]

  • iPhone 13 Pro (iOS 16.5) for child
  • iPhone SE2 (iOS 16.5) for parent

[Additional explanation] In case of using below devices, the selected applications have been shielded successfully without showing any error message.

  • iPhone 13 Pro (iOS 16.5) for child
  • iPhone 11 Pro (iOS 16.5) for parent