I'd like to allow users to select apps to shield from a DeviceActivityReport (similar to how Apple's Screen Time Settings activity report allows a user to "add limits" to a selected app in the report.
What I need to do is pass an appToken from the DeviceActivityReportExtension to my app.
I realize the extension is sandboxed and doesn't allow "private" data to be seen outside of the sandbox. The docs state:
To protect the user’s privacy, your extension runs in a sandbox. This sandbox prevents your extension from making network requests or moving sensitive content outside the extension’s address space.
However, tokens aren't "sensitive".
I want to pass a token set out of the sandboxed extension so users can select certain apps from the report that my app can use for setting limits, etc.
I thought using App Groups and saving data with UserDefaults with a suiteName for my app group would do it, but it doesn't appear to allow me to pass the token data.
Yes I'm using the same KEY for both as I set a config enum to ensure it's the same and I can pass tokens successfully between other extensions/apps in the app group, but not the report extension.
It seems the app and the extension have their own stores as the report extension can write to and read from a store but despite being the same suiteName, other apps in the app group don't get or send data to the Report Extension. I realize this is probably due to the design with the sandbox to protect user privacy, however it seems an exception should be made for passing tokens (or even better allow passing through another method like a callback, etc).
Is there ay way to accomplish passing a token from the sandboxed report extension to my app?
Post
Replies
Boosts
Views
Activity
When I run Apple's Sample Code
Such as:
https://github.com/apple/sample-cloudkit-privatedb-sync
https://github.com/apple/sample-cloudkit-sharing
Xcode issues a bunch of warnings including:
Capture of 'savedRecord' with non-sendable type 'CKRecord' in a @Sendable closure
Non-sendable type '[CKRecordZone]' passed in implicitly asynchronous call to main actor-isolated function cannot cross actor boundary
Non-sendable type 'CKRecordZone' in asynchronous access to main actor-isolated property 'recordZone' cannot cross actor boundary
Can I rely on this sample code for how to do it for production apps or am I going to run into issues with data consistency, etc?
Aside from ignoring these warnings (or even hiding them), is there anything I can do about them?
Is there a better way to now use CoreData with Async/Await than what the Apple sample code is showing?
I want to make a custom UI that integrates each video feed from my FaceTime group activity participants.
I found the app Share+ in the App Store integrates the video from each FaceTime participant into it's own UI, so I know it's possible.
Can anyone point me to the relevant documentation that shows me how I can get to the video of each FaceTime group member to put in my own AVSampleBufferDisplayLayer or otherwise?