mirror of
https://github.com/firebase/firebase-ios-sdk
synced 2026-11-09 22:36:01 +05:45
* Adding error handling and returning correct error codes * * Handling auth cancellation a few other error cases * Adding some logging for EAP (Using NSLogs temporarily. DONOT MERGE) * Add in a setter for clientID to allow overrides (#5514) * Add in a setter for clientID to allow overrides * Update styling * Adding some result parsing logs * Fixing code hash logging * Add FirebaseAppDistribution to ZipBuilder * * Making sure keychain is accesible after first unlock even if app is backgrounded (#5563) * Fix auth persistence logging and invalid type casting (#5631) * Logging app id requesting releases (#5655) * AppDistribution keychain access fixes (#5683) * Using the GULKeychainUtils instead of custom keychain utility. Also added better logging * Updating keychain name and fixing tests * Code review feedback updates * Making serviceID unique per app * Adding gmp app id to the keychain along with the bundle id * Moving Keychain Utility functions in the AuthPersistence class and deleting the utility class * Lazy initialize auth state (#5755) * Lazy initialize auth state * Making sure we dont log an error is auth state is not persisted in the keychain * Switch from NSLog to FIRFADLogger (#5756) * Add FIRLogger * Switch from NSLog to FIRFADLogger * * Use FIS Auth for authenticating the tester * Remove AppAuth and start wiring up interceptor to do sign in * Extracting registration flow UI in interceptor * Adding support for iOS 9 and 10 * Create app distribution api service to handle tester api calls. (#6060) * Pull out calls to the FAD API to make them reuseable * Fix tests and run styl updates * Uncomment FIRFADLog Statements * Use [] accessor rather than . accessor * Re-running style updates * Trying to get these checks to pass the first time around * App distribution signin persist (#6063) * Pull out calls to the FAD API to make them reuseable * Fix tests and run styl updates * Add in UserDefaults storage after a tester has signed in * Add testing for the main AppDistribution file * Ran style.sh * Remove FIRFADLocalStorage and call GULUserDefaults directly. Update tests to stop mocking on teardown. * Add support for dynamic url schemes and fix two crashes (#6081) * Add support for dynamic url schemes and fix two crashes * Add support for dynamic url schemes in the format appdistribution-<app id without colons> * Fix crash when launching an app directly via a URL scheme * Fix a crash on iOS 10 simulator caused by calling NSLogv twice * Remove uses of NSLog * Fix warnings * Switch encodedAppId to be a class method * Fix styles * Create changelog and readme in preparation for release. (#6095) Just changing markdown files so will not wait for gha checks. * Change slices property from copy to strong (#6097) Fix lint warning * Change error handlers to return bool values instead of void (#6101) * Mapping sign in flow errors to app distribution errors. Also renaming AppDelegateInterceptor to FIRAppDistributionUIService (#6099) * Add github action for App Distribution (#6094) * Updating app distribution deployment target to iOS 9 (#6118) * Making sure we return granular errors during sign in persistence. Also fixing some naming and comment issues (#6117) * Encoding colons to dashes in the app id (#6119) * Move Internal headers to Sources (#6106) * Move Internal headers to Sources/ folder * PR feedback * Remove appDistribution from zip builder * Respond to code review feedback (#6138) * Initializing UIWindow using initWithWindowScene for ios 13 and removing UI code from main FIRAppDistribution.m (#6144) * Initializing UIWindow using initWithWindowScene for ios 13. Also making sure we only reset window in the App delegate if a registration flow is in progress. * Remove UI code from main class, add unit tests, and clean up UIService * stylish * Remove defines in favor of solely 'if (@available(iOS 13.0, *))' * Respond to code review feedback Co-authored-by: Cleo Schneider <cleoschneider@google.com> Co-authored-by: Pranav Rajgopal <pranavrajgopal@google.com> Co-authored-by: Cleo Schneider <cleoschneider@google.com>
95 lines
3.1 KiB
Objective-C
95 lines
3.1 KiB
Objective-C
// Copyright 2020 Google LLC
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
#import <Foundation/Foundation.h>
|
|
|
|
#import "FirebaseAppDistribution/Sources/Private/FIRAppDistributionRelease.h"
|
|
#import "FirebaseInstallations/Source/Library/Private/FirebaseInstallationsInternal.h"
|
|
|
|
NS_ASSUME_NONNULL_BEGIN
|
|
|
|
/**
|
|
* @related FIRFADApiError
|
|
*
|
|
* The completion handler invoked when the list releases request returns.
|
|
* If the call fails we return the appropriate `error code`, described by
|
|
* `AppDistributionApiError`.
|
|
*
|
|
* @param releases The releases that are available to be installed.
|
|
* @param error The error describing why the new build request failed.
|
|
*/
|
|
typedef void (^FIRFADFetchReleasesCompletion)(NSArray *_Nullable releases, NSError *_Nullable error)
|
|
NS_SWIFT_NAME(AppDistributionFetchReleasesCompletion);
|
|
|
|
/**
|
|
* @related FIRFADApiError
|
|
*
|
|
* The completion handler invoked when the list releases request returns.
|
|
* If the call fails we return the appropriate `error code`, described by
|
|
* `AppDistributionApiError`.
|
|
*
|
|
* @param identifier The firebase installation identifier
|
|
* @param authTokenResult The installation auth token result.
|
|
* @param error The error describing why the new build request failed.
|
|
*/
|
|
typedef void (^FIRFADGenerateAuthTokenCompletion)(
|
|
NSString *_Nullable identifier,
|
|
FIRInstallationsAuthTokenResult *_Nullable authTokenResult,
|
|
NSError *_Nullable error) NS_SWIFT_NAME(AppDistributionGenerateAuthTokenCompletion);
|
|
|
|
// Label exceptions from AppDistributionApi calls.
|
|
FOUNDATION_EXPORT NSString *const kFIRFADApiErrorDomain;
|
|
|
|
// A service encapsulating calls to the App Distribtuion Tester API
|
|
@interface FIRFADApiService : NSObject
|
|
|
|
// Fetch releases from the AppDistribution Tester API
|
|
+ (void)fetchReleasesWithCompletion:(FIRFADFetchReleasesCompletion)completion;
|
|
|
|
// Generate a Installation Auth Token and fetch the installation id
|
|
+ (void)generateAuthTokenWithCompletion:(FIRFADGenerateAuthTokenCompletion)completion;
|
|
|
|
@end
|
|
|
|
/**
|
|
* @enum AppDistributionApiError
|
|
*/
|
|
typedef NS_ENUM(NSUInteger, FIRFADApiError) {
|
|
// Timeout error.
|
|
FIRFADApiErrorTimeout = 0,
|
|
|
|
// Token generation error
|
|
FIRFADApiTokenGenerationFailure = 1,
|
|
|
|
// Installation Identifier not found error
|
|
FIRFADApiInstallationIdentifierError = 2,
|
|
|
|
// Authentication failed
|
|
FIRFADApiErrorUnauthenticated = 3,
|
|
|
|
// Authorization failed
|
|
FIRFADApiErrorUnauthorized = 4,
|
|
|
|
// Releases or tester not found
|
|
FIRFADApiErrorNotFound = 5,
|
|
|
|
// Api request failure for unknown reason
|
|
FIRApiErrorUnknownFailure = 6,
|
|
|
|
// Failure to parse Api response
|
|
FIRApiErrorParseFailure = 7,
|
|
|
|
} NS_SWIFT_NAME(AppDistributionApiError);
|
|
|
|
NS_ASSUME_NONNULL_END
|