* Add initial code hash generation implementation
* Adding auth state to iOS keychain
* Cleanup logging and error handling for initial auth persistence implementation (#5413)
* Cleanup logging and error handling for initial auth persistence implementation
* Update Nullability of error fields and reformat
* Move the error domain and enum into the AuthPersistence file
* Format Mach files
* Externalize handling of nullable error and greedily return on error
* Add initial code hash generation implementation
* Adding auth state to iOS keychain
* Cleanup logging and error handling for initial auth persistence implementation (#5413)
* Cleanup logging and error handling for initial auth persistence implementation
* Update Nullability of error fields and reformat
* Move the error domain and enum into the AuthPersistence file
* Format Mach files
* Externalize handling of nullable error and greedily return on error
* Add unittests for AppDistribution auth persistence
* Split out the keychain calls from control flow and error handling
* Add mocking and tests for auth persistence tests
* Remove debug logging
* Update styling
* Re-add resources to podspec and break out block for readability
Co-authored-by: Jeremy Durham <jeremydurham@google.com>
Co-authored-by: Pranav Rajgopal <pranavrajgopal@google.com>
Add initial code hash generation implementation
Generate a code hash by getting the architecture and uuids for the app, sorting the list lexicographically by architecture, concatenating the uuids and generate a hash using SHA1 (for legacy purposes). We then use the code hash to verify against a hash returned from the server to determine whether the current running version is the latest version.
* Initial commit for Firebase App Distribution New Build Alerts SDK
* Added public header and implemented the public methods
* Added App Delegate swizzling for the App Auth library
Co-authored-by: Jeremy Durham <jeremydurham@google.com>