Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PushKit Crash due to Late Processing #4419

Closed
ismailgulek opened this issue Jun 10, 2021 · 1 comment · Fixed by #4424
Closed

PushKit Crash due to Late Processing #4419

ismailgulek opened this issue Jun 10, 2021 · 1 comment · Fixed by #4424
Labels

Comments

@ismailgulek
Copy link
Contributor

ismailgulek commented Jun 10, 2021

Sometimes when we receive a VoIP push, we kill the app intentionally because app protected data is not available. Next time user opens the app and background the app, that VoIP push not processed is received in the PKPushRegistryDelegate. And this leads to an expired call invite for the iOS app and leaving us desperate about Apple's PushKit restrictions, which mandates us to report a new incoming call to the CallKit. In this case, OS terminates the app.

@ismailgulek ismailgulek changed the title VoIP Push Latency PushKit Crash due to Late Processing Jun 10, 2021
@ismailgulek
Copy link
Contributor Author

ismailgulek commented Jun 11, 2021

Documentation of isProtectedDataAvailable says:

The value of this property is false if data protection is enabled and the device is currently locked. The value of this property is set to true if the device is unlocked or if content protection is not enabled.
When the value of this property is false, files that were assigned the _complete_ or _completeUnlessOpen_ protection key cannot be read or written by your app. The user must unlock the device before your app can access them.

So it wasn't a wise decision to terminate the app when the property is false, because we're not enabled an extra Data Protection for the app and iOS should be on completeUntilFirstUserAuthentication by default, which means we should be able to access data after first unlock of the device until another reboot. Also we're using the same level of protection for keychain items, so they should be accessible too. Also NSE could fetch the event and decrypt it, so we should be able to process app data at that time. It seems we can remove this check.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant