Fix crashes when failing to download Notification attachments #1029
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #586 and Unity crash 411
Description
One Line Summary
This PR prevents crashes due to failures when writing downloaded notification attachments (images) to a temporary file location.
Details
These crashes are not easily reproduce-able, but can happen in the following scenarios according to Apple
For iOS 13+ devices we will now use writeData:error: which returns a boolean and populates the NSError parameter with the failure reason if it fails.
For < iOS 13 we will place a try catch around writeData: to avoid crashes.
In both cases we will log the failure reason. Note that this is logged on the NotificationServiceExtension process not the main app process.
Motivation
Prevent the crashes below
#586 and Unity crash 411
Testing
Manual testing
I tested on an iOS 15 device that uses the new writeData:error: API. However I was unable to reproduce a failure.
Affected code checklist
Checklist
Overview
Testing
Final pass
This change is