[AppCheck] Reset to attestation flow if assertion flow fails #76
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.
There are two flows for App Attest: attestation and then assertion. Up until this PR, there was no retry mechanism for the assertion flow. This PR adds behavior to fall back to the attestation phase in the event an assertion cannot be generated by Apple's DeviceCheck framework using the prior attestation artifacts.
Not addressed – changing where some attestation artifacts are stored (currently in user defaults). This is not ideal as the artifact may survive device migration and backup. That being said, such an issue should surface during the assertion flow, which should, with this PR, now fall back to the attestation flow (which is what we would need to do anyway if the artifact could not be found).
Note, I think the split diff is easier to use when reviewing.