mirror of
https://github.com/firebase/firebase-ios-sdk
synced 2026-11-09 22:36:01 +05:45
Co-authored-by: Nick Cooke <36927374+ncooke3@users.noreply.github.com> In a Simulator, AppCheckDebugProvider now uses the debug token that `firebase appcheck:debugtokens:create` saves to ~/.config/configstore/firebase-appcheck.json on the host, so apps launched from Xcode work without manually registering a token. The token is looked up by each app's Google App ID through SIMULATOR_HOST_HOME. The lookup is compiled out on devices, macOS and Mac Catalyst. No public API changes. Debug tokens are now resolved in this order: 1. AppCheckDebugToken or FIRAAppCheckDebugToken environment variable 2. Token from the CLI config store (Simulator only) 3. Token stored in UserDefaults 4. Newly generated UUID The config store comes before the stored token so a newly provisioned token takes effect without reinstalling the app. Logging: - I-FAA004003: debug token loaded from the config store. - I-FAA004004: exchanging the config store token failed; suggests re-running the CLI with --force and relaunching. - I-FAA004002: exchanging an environment variable token failed; now names the variables instead of showing an unrelated local token. - I-FAA004005: the config store exists but can't be read or parsed. A missing file, or a path where it can't exist (e.g., ~/.config is a regular file), is silent. Exchange-failure warnings are skipped when the server is unreachable, and no message includes the token.
78 lines
2.9 KiB
Objective-C
78 lines
2.9 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 "FirebaseAppCheck/Sources/Core/FIRAppCheckLogger.h"
|
|
|
|
#import "FirebaseCore/Extension/FirebaseCoreInternal.h"
|
|
|
|
NS_ASSUME_NONNULL_BEGIN
|
|
|
|
FIRLoggerService kFIRLoggerAppCheck = @"[FirebaseAppCheck]";
|
|
|
|
// FIRAppCheck.m
|
|
NSString *const kFIRLoggerAppCheckMessageCodeProviderFactoryIsMissing = @"I-FAA002001";
|
|
NSString *const kFIRLoggerAppCheckMessageCodeProviderIsMissing = @"I-FAA002002";
|
|
|
|
// FIRAppCheckDebugProvider.m
|
|
NSString *const kFIRLoggerAppCheckMessageDebugProviderIncompleteFIROptions = @"I-FAA004001";
|
|
NSString *const kFIRLoggerAppCheckMessageCodeDebugTokenExchangeFailed = @"I-FAA004002";
|
|
NSString *const kFIRLoggerAppCheckMessageCodeDebugTokenFromConfigStore = @"I-FAA004003";
|
|
NSString *const kFIRLoggerAppCheckMessageCodeConfigStoreDebugTokenExchangeFailed = @"I-FAA004004";
|
|
NSString *const kFIRLoggerAppCheckMessageCodeDebugToken = @"I-FAA005001";
|
|
|
|
// FIRAppCheckDebugTokenConfigStore.m
|
|
NSString *const kFIRLoggerAppCheckMessageCodeDebugTokenConfigStoreUnreadable = @"I-FAA004005";
|
|
|
|
// FIRDeviceCheckProvider.m
|
|
NSString *const kFIRLoggerAppCheckMessageDeviceCheckProviderIncompleteFIROptions = @"I-FAA006001";
|
|
|
|
// FIRRecaptchaProvider.m
|
|
NSString *const kFIRLoggerAppCheckMessageRecaptchaProviderIncompleteFIROptions = @"I-FAA007001";
|
|
NSString *const kFIRLoggerAppCheckMessageRecaptchaProviderMissingSiteKey = @"I-FAA007002";
|
|
NSString *const kFIRLoggerAppCheckMessageRecaptchaProviderMissingRecaptchaEnterpriseSDK =
|
|
@"I-FAA007003";
|
|
|
|
// FIRDefaultProviderFactory.m
|
|
NSString *const kFIRLoggerAppCheckMessageCodeDeviceCheckProviderUnavailable = @"I-FAA008002";
|
|
|
|
#pragma mark - Log functions
|
|
|
|
void FIRAppCheckDebugLog(NSString *messageCode, NSString *message, ...) {
|
|
va_list args_ptr;
|
|
va_start(args_ptr, message);
|
|
FIRLogBasic(FIRLoggerLevelDebug, kFIRLoggerAppCheck, messageCode, message, args_ptr);
|
|
va_end(args_ptr);
|
|
}
|
|
|
|
#pragma mark - Helper functions
|
|
|
|
GACAppCheckLogLevel FIRGetGACAppCheckLogLevel(void) {
|
|
FIRLoggerLevel loggerLevel = FIRGetLoggerLevel();
|
|
switch (loggerLevel) {
|
|
case FIRLoggerLevelError:
|
|
return GACAppCheckLogLevelError;
|
|
case FIRLoggerLevelWarning:
|
|
case FIRLoggerLevelNotice:
|
|
return GACAppCheckLogLevelWarning;
|
|
case FIRLoggerLevelInfo:
|
|
return GACAppCheckLogLevelInfo;
|
|
case FIRLoggerLevelDebug:
|
|
return GACAppCheckLogLevelDebug;
|
|
}
|
|
}
|
|
|
|
NS_ASSUME_NONNULL_END
|