Using reflection for iOS 13 API writeData:error: #1030
Merged
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.
Description
One Line Summary
Using reflection for the iOS 13+ writeData:error: api introduced in pr #1029.
Details
Our build scripts still require Xcode 10 which is not aware of iOS 13+ APIs. PR #1029 added an iOS 13 API, but did not use reflection for it resulting in build failure when trying to release a new binary.
We need to use NSInvocation for reflection because performSelector cannot take pointer parameters.
Motivation
This PR fixes using an iOS 13 api without reflection which caused build failure for the build_fat_framework.sh script.
This issue was introduced by pr #1029
Testing
Manual testing
I tested both success and failure on an iOS 15 device. The error had a proper description and when successful the image appeared in the notification.
Affected code checklist
Checklist
Overview
Testing
Final pass
This change is