diff --git a/FirebaseAppCheck.podspec b/FirebaseAppCheck.podspec index 67a158b2199..5bb198f7561 100644 --- a/FirebaseAppCheck.podspec +++ b/FirebaseAppCheck.podspec @@ -44,7 +44,7 @@ Pod::Spec.new do |s| s.osx.weak_framework = 'DeviceCheck' s.tvos.weak_framework = 'DeviceCheck' - s.dependency 'AppCheckCore', '~> 11.3' + s.dependency 'AppCheckCore', '~> 12.0' s.dependency 'FirebaseAppCheckInterop', '~> 12.19.0' s.dependency 'FirebaseCore', '~> 12.19.0' s.dependency 'GoogleUtilities/Environment', '~> 8.1' diff --git a/FirebaseAppCheck/Sources/AppAttestProvider/FIRAppAttestProvider.m b/FirebaseAppCheck/Sources/AppAttestProvider/FIRAppAttestProvider.m index 9ed9232fdd9..5976936c0e9 100644 --- a/FirebaseAppCheck/Sources/AppAttestProvider/FIRAppAttestProvider.m +++ b/FirebaseAppCheck/Sources/AppAttestProvider/FIRAppAttestProvider.m @@ -16,7 +16,13 @@ #import "FirebaseAppCheck/Sources/Public/FirebaseAppCheck/FIRAppAttestProvider.h" -#import +#if __has_include() +#import +#elif __has_include("AppCheckCore-Swift.h") +#import "AppCheckCore-Swift.h" +#else +@import AppCheckCore; +#endif #import "FirebaseAppCheck/Sources/Core/FIRApp+AppCheck.h" #import "FirebaseAppCheck/Sources/Core/FIRAppCheckLogger.h" diff --git a/FirebaseAppCheck/Sources/Core/Errors/FIRAppCheckErrorUtil.m b/FirebaseAppCheck/Sources/Core/Errors/FIRAppCheckErrorUtil.m index 67ad05133ae..f188e4fe792 100644 --- a/FirebaseAppCheck/Sources/Core/Errors/FIRAppCheckErrorUtil.m +++ b/FirebaseAppCheck/Sources/Core/Errors/FIRAppCheckErrorUtil.m @@ -16,12 +16,18 @@ #import "FirebaseAppCheck/Sources/Core/Errors/FIRAppCheckErrorUtil.h" -#import +#if __has_include() +#import +#elif __has_include("AppCheckCore-Swift.h") +#import "AppCheckCore-Swift.h" +#else +@import AppCheckCore; +#endif @implementation FIRAppCheckErrorUtil + (NSError *)publicDomainErrorWithError:(NSError *)error { - if ([error.domain isEqualToString:GACAppCheckErrorDomain]) { + if ([error.domain isEqualToString:@"com.google.app_check_core"]) { return [self publicDomainErrorWithGACError:error]; } else if ([error.domain isEqualToString:FIRAppCheckErrorDomain]) { return error; @@ -30,7 +36,7 @@ + (NSError *)publicDomainErrorWithError:(NSError *)error { return [self unknownErrorWithError:error]; } -/// Converts an App Check Core error (`GACAppCheckErrorDomain`) to a public error +/// Converts an App Check Core error (`@"com.google.app_check_core"`) to a public error /// (`FIRAppCheckErrorDomain`). + (NSError *)publicDomainErrorWithGACError:(NSError *)appCheckCoreError { FIRAppCheckErrorCode errorCode; diff --git a/FirebaseAppCheck/Sources/Core/FIRAppCheck.m b/FirebaseAppCheck/Sources/Core/FIRAppCheck.m index 18cee204af6..ade0964920a 100644 --- a/FirebaseAppCheck/Sources/Core/FIRAppCheck.m +++ b/FirebaseAppCheck/Sources/Core/FIRAppCheck.m @@ -16,7 +16,13 @@ #import "FirebaseAppCheck/Sources/Public/FirebaseAppCheck/FIRAppCheck.h" -#import +#if __has_include() +#import +#elif __has_include("AppCheckCore-Swift.h") +#import "AppCheckCore-Swift.h" +#else +@import AppCheckCore; +#endif #import #import diff --git a/FirebaseAppCheck/Sources/Core/FIRAppCheckLogger.h b/FirebaseAppCheck/Sources/Core/FIRAppCheckLogger.h index 0307272802a..373f43b22e7 100644 --- a/FirebaseAppCheck/Sources/Core/FIRAppCheckLogger.h +++ b/FirebaseAppCheck/Sources/Core/FIRAppCheckLogger.h @@ -16,7 +16,13 @@ #import -#import +#if __has_include() +#import +#elif __has_include("AppCheckCore-Swift.h") +#import "AppCheckCore-Swift.h" +#else +@import AppCheckCore; +#endif #import "FirebaseCore/Extension/FirebaseCoreInternal.h" diff --git a/FirebaseAppCheck/Sources/Core/FIRAppCheckSettings.h b/FirebaseAppCheck/Sources/Core/FIRAppCheckSettings.h index 60bf31eaf0e..bab68c6f645 100644 --- a/FirebaseAppCheck/Sources/Core/FIRAppCheckSettings.h +++ b/FirebaseAppCheck/Sources/Core/FIRAppCheckSettings.h @@ -16,7 +16,13 @@ #import -#import +#if __has_include() +#import +#elif __has_include("AppCheckCore-Swift.h") +#import "AppCheckCore-Swift.h" +#else +@import AppCheckCore; +#endif @class FIRApp; @class GULUserDefaults; @@ -27,7 +33,7 @@ FOUNDATION_EXPORT NSString *const kFIRAppCheckTokenAutoRefreshEnabledUserDefault FOUNDATION_EXPORT NSString *const kFIRAppCheckTokenAutoRefreshEnabledInfoPlistKey; /// Handles storing and updating the Firebase app check wide settings and parameters. -@interface FIRAppCheckSettings : GACAppCheckSettings +@interface FIRAppCheckSettings : NSObject /// If Firebase app check token auto-refresh is allowed. @property(nonatomic, assign) BOOL isTokenAutoRefreshEnabled; diff --git a/FirebaseAppCheck/Sources/Core/FIRAppCheckSettings.m b/FirebaseAppCheck/Sources/Core/FIRAppCheckSettings.m index a9486925304..c8fe9942b9e 100644 --- a/FirebaseAppCheck/Sources/Core/FIRAppCheckSettings.m +++ b/FirebaseAppCheck/Sources/Core/FIRAppCheckSettings.m @@ -39,6 +39,8 @@ @interface FIRAppCheckSettings () @implementation FIRAppCheckSettings +@synthesize isTokenAutoRefreshEnabled = _isTokenAutoRefreshEnabled; + - (instancetype)initWithApp:(FIRApp *)firebaseApp userDefault:(GULUserDefaults *)userDefaults mainBundle:(NSBundle *)mainBundle { @@ -49,7 +51,7 @@ - (instancetype)initWithApp:(FIRApp *)firebaseApp _mainBundle = mainBundle; _userDefaultKey = [kFIRAppCheckTokenAutoRefreshEnabledUserDefaultsPrefix stringByAppendingString:firebaseApp.name]; - [super setIsTokenAutoRefreshEnabled:NO]; + _isTokenAutoRefreshEnabled = NO; _isTokenAutoRefreshConfigured = NO; } return self; @@ -60,7 +62,7 @@ - (BOOL)isTokenAutoRefreshEnabled { if (self.isTokenAutoRefreshConfigured) { // Return value form the in-memory cache to avoid accessing the user default or bundle when // not required. - return [super isTokenAutoRefreshEnabled]; + return _isTokenAutoRefreshEnabled; } // Check user defaults for a value set during the previous launch. @@ -76,9 +78,9 @@ - (BOOL)isTokenAutoRefreshEnabled { if (isTokenAutoRefreshEnabledNumber != nil) { // Update in-memory cache. self.isTokenAutoRefreshConfigured = YES; - self.isTokenAutoRefreshEnabled = isTokenAutoRefreshEnabledNumber.boolValue; + _isTokenAutoRefreshEnabled = isTokenAutoRefreshEnabledNumber.boolValue; // Return the value. - return [super isTokenAutoRefreshEnabled]; + return _isTokenAutoRefreshEnabled; } // Fallback to the global data collection flag. @@ -95,7 +97,7 @@ - (BOOL)isTokenAutoRefreshEnabled { - (void)setIsTokenAutoRefreshEnabled:(BOOL)isTokenAutoRefreshEnabled { @synchronized(self) { self.isTokenAutoRefreshConfigured = YES; - [super setIsTokenAutoRefreshEnabled:isTokenAutoRefreshEnabled]; + _isTokenAutoRefreshEnabled = isTokenAutoRefreshEnabled; [self.userDefaults setBool:isTokenAutoRefreshEnabled forKey:self.userDefaultKey]; } } diff --git a/FirebaseAppCheck/Sources/Core/FIRAppCheckToken+Internal.h b/FirebaseAppCheck/Sources/Core/FIRAppCheckToken+Internal.h index b9237a51b7e..f3d2b9353da 100644 --- a/FirebaseAppCheck/Sources/Core/FIRAppCheckToken+Internal.h +++ b/FirebaseAppCheck/Sources/Core/FIRAppCheckToken+Internal.h @@ -18,7 +18,13 @@ #import -#import +#if __has_include() +#import +#elif __has_include("AppCheckCore-Swift.h") +#import "AppCheckCore-Swift.h" +#else +@import AppCheckCore; +#endif NS_ASSUME_NONNULL_BEGIN diff --git a/FirebaseAppCheck/Sources/Core/FIRHeartbeatLogger+AppCheck.h b/FirebaseAppCheck/Sources/Core/FIRHeartbeatLogger+AppCheck.h index bc90f7d2620..4489ec873c0 100644 --- a/FirebaseAppCheck/Sources/Core/FIRHeartbeatLogger+AppCheck.h +++ b/FirebaseAppCheck/Sources/Core/FIRHeartbeatLogger+AppCheck.h @@ -16,14 +16,20 @@ #import "FirebaseCore/Extension/FIRHeartbeatLogger.h" -#import +#if __has_include() +#import +#elif __has_include("AppCheckCore-Swift.h") +#import "AppCheckCore-Swift.h" +#else +@import AppCheckCore; +#endif NS_ASSUME_NONNULL_BEGIN @interface FIRHeartbeatLogger (AppCheck) /// Returns a closure that adds a heartbeat logging header to a `URLRequest`. -- (GACAppCheckAPIRequestHook)requestHook; +- (void (^)(NSMutableURLRequest *))requestHook; @end diff --git a/FirebaseAppCheck/Sources/Core/FIRHeartbeatLogger+AppCheck.m b/FirebaseAppCheck/Sources/Core/FIRHeartbeatLogger+AppCheck.m index 25ad308f253..75ccba2d604 100644 --- a/FirebaseAppCheck/Sources/Core/FIRHeartbeatLogger+AppCheck.m +++ b/FirebaseAppCheck/Sources/Core/FIRHeartbeatLogger+AppCheck.m @@ -21,7 +21,7 @@ @implementation FIRHeartbeatLogger (AppCheck) -- (GACAppCheckAPIRequestHook)requestHook { +- (void (^)(NSMutableURLRequest *))requestHook { return ^(NSMutableURLRequest *request) { NSString *heartbeatsValue = [self headerValue]; if (heartbeatsValue) { diff --git a/FirebaseAppCheck/Sources/Core/FIRInternalAppCheckProvider.h b/FirebaseAppCheck/Sources/Core/FIRInternalAppCheckProvider.h index 594fe3d36dc..58ba92cc761 100644 --- a/FirebaseAppCheck/Sources/Core/FIRInternalAppCheckProvider.h +++ b/FirebaseAppCheck/Sources/Core/FIRInternalAppCheckProvider.h @@ -16,7 +16,13 @@ #import -#import +#if __has_include() +#import +#elif __has_include("AppCheckCore-Swift.h") +#import "AppCheckCore-Swift.h" +#else +@import AppCheckCore; +#endif NS_ASSUME_NONNULL_BEGIN diff --git a/FirebaseAppCheck/Sources/DebugProvider/FIRAppCheckDebugProvider.m b/FirebaseAppCheck/Sources/DebugProvider/FIRAppCheckDebugProvider.m index 0498b3ca8d8..d08e314b3ed 100644 --- a/FirebaseAppCheck/Sources/DebugProvider/FIRAppCheckDebugProvider.m +++ b/FirebaseAppCheck/Sources/DebugProvider/FIRAppCheckDebugProvider.m @@ -16,7 +16,13 @@ #import "FirebaseAppCheck/Sources/Public/FirebaseAppCheck/FIRAppCheckDebugProvider.h" -#import +#if __has_include() +#import +#elif __has_include("AppCheckCore-Swift.h") +#import "AppCheckCore-Swift.h" +#else +@import AppCheckCore; +#endif #import "FirebaseAppCheck/Sources/Core/FIRApp+AppCheck.h" #import "FirebaseAppCheck/Sources/Core/FIRAppCheckLogger.h" diff --git a/FirebaseAppCheck/Sources/DeviceCheckProvider/FIRDeviceCheckProvider.m b/FirebaseAppCheck/Sources/DeviceCheckProvider/FIRDeviceCheckProvider.m index e5dada66e37..04472e28268 100644 --- a/FirebaseAppCheck/Sources/DeviceCheckProvider/FIRDeviceCheckProvider.m +++ b/FirebaseAppCheck/Sources/DeviceCheckProvider/FIRDeviceCheckProvider.m @@ -18,7 +18,13 @@ #import "FirebaseAppCheck/Sources/Public/FirebaseAppCheck/FIRDeviceCheckProvider.h" -#import +#if __has_include() +#import +#elif __has_include("AppCheckCore-Swift.h") +#import "AppCheckCore-Swift.h" +#else +@import AppCheckCore; +#endif #import "FirebaseAppCheck/Sources/Core/FIRApp+AppCheck.h" #import "FirebaseAppCheck/Sources/Core/FIRAppCheckLogger.h" diff --git a/FirebaseAppCheck/Sources/RecaptchaProvider/FIRRecaptchaProvider.m b/FirebaseAppCheck/Sources/RecaptchaProvider/FIRRecaptchaProvider.m index fff15f2c418..4ff98c6903b 100644 --- a/FirebaseAppCheck/Sources/RecaptchaProvider/FIRRecaptchaProvider.m +++ b/FirebaseAppCheck/Sources/RecaptchaProvider/FIRRecaptchaProvider.m @@ -17,7 +17,13 @@ #import "FirebaseAppCheck/Sources/Public/FirebaseAppCheck/FIRRecaptchaProvider.h" #import "FirebaseAppCheck/Sources/RecaptchaProvider/FIRRecaptchaProvider+Internal.h" -#import +#if __has_include() +#import +#elif __has_include("AppCheckCore-Swift.h") +#import "AppCheckCore-Swift.h" +#else +@import AppCheckCore; +#endif #if SWIFT_PACKAGE #if (TARGET_OS_IOS && !TARGET_OS_MACCATALYST) || TARGET_OS_VISION diff --git a/FirebaseAppCheck/Tests/Unit/AppAttestProvider/FIRAppAttestProviderTests.m b/FirebaseAppCheck/Tests/Unit/AppAttestProvider/FIRAppAttestProviderTests.m index 23636a0e46c..76662ca7634 100644 --- a/FirebaseAppCheck/Tests/Unit/AppAttestProvider/FIRAppAttestProviderTests.m +++ b/FirebaseAppCheck/Tests/Unit/AppAttestProvider/FIRAppAttestProviderTests.m @@ -16,7 +16,13 @@ #import -#import +#if __has_include() +#import +#elif __has_include("AppCheckCore-Swift.h") +#import "AppCheckCore-Swift.h" +#else +@import AppCheckCore; +#endif #import #import diff --git a/FirebaseAppCheck/Tests/Unit/Core/Errors/FIRAppCheckErrorUtilTests.m b/FirebaseAppCheck/Tests/Unit/Core/Errors/FIRAppCheckErrorUtilTests.m index 5d5d0f3098c..c14f5b58b6c 100644 --- a/FirebaseAppCheck/Tests/Unit/Core/Errors/FIRAppCheckErrorUtilTests.m +++ b/FirebaseAppCheck/Tests/Unit/Core/Errors/FIRAppCheckErrorUtilTests.m @@ -18,7 +18,13 @@ #import -#import +#if __has_include() +#import +#elif __has_include("AppCheckCore-Swift.h") +#import "AppCheckCore-Swift.h" +#else +@import AppCheckCore; +#endif static NSString *const kTestErrorDomain = @"com.google.test.error-domain"; static NSInteger kTestErrorCode = 42; @@ -54,7 +60,7 @@ - (void)testPublicDomainErrorForPublicError { } - (void)testPublicDomainErrorForGACErrorUnknown { - NSError *unknownError = [NSError errorWithDomain:GACAppCheckErrorDomain + NSError *unknownError = [NSError errorWithDomain:@"com.google.app_check_core" code:GACAppCheckErrorCodeUnknown userInfo:self.userInfo]; @@ -68,7 +74,7 @@ - (void)testPublicDomainErrorForGACErrorUnknown { } - (void)testPublicDomainErrorForGACErrorServerUnreachable { - NSError *serverError = [NSError errorWithDomain:GACAppCheckErrorDomain + NSError *serverError = [NSError errorWithDomain:@"com.google.app_check_core" code:GACAppCheckErrorCodeServerUnreachable userInfo:self.userInfo]; @@ -83,7 +89,7 @@ - (void)testPublicDomainErrorForGACErrorServerUnreachable { - (void)testPublicDomainErrorForGACErrorInvalidConfiguration { NSError *invalidConfigurationError = - [NSError errorWithDomain:GACAppCheckErrorDomain + [NSError errorWithDomain:@"com.google.app_check_core" code:GACAppCheckErrorCodeInvalidConfiguration userInfo:self.userInfo]; @@ -99,7 +105,7 @@ - (void)testPublicDomainErrorForGACErrorInvalidConfiguration { } - (void)testPublicDomainErrorForGACErrorKeychain { - NSError *keychainError = [NSError errorWithDomain:GACAppCheckErrorDomain + NSError *keychainError = [NSError errorWithDomain:@"com.google.app_check_core" code:GACAppCheckErrorCodeKeychain userInfo:self.userInfo]; @@ -113,7 +119,7 @@ - (void)testPublicDomainErrorForGACErrorKeychain { } - (void)testPublicDomainErrorForGACErrorUnsupported { - NSError *unsupportedError = [NSError errorWithDomain:GACAppCheckErrorDomain + NSError *unsupportedError = [NSError errorWithDomain:@"com.google.app_check_core" code:GACAppCheckErrorCodeUnsupported userInfo:self.userInfo]; @@ -129,7 +135,7 @@ - (void)testPublicDomainErrorForGACErrorUnsupported { - (void)testPublicDomainErrorForGACErrorUnrecognizedCode { NSInteger unrecognizedErrorCode = -1000; // Not part of the GACAppCheckErrorCode enum - NSError *unknownError = [NSError errorWithDomain:GACAppCheckErrorDomain + NSError *unknownError = [NSError errorWithDomain:@"com.google.app_check_core" code:unrecognizedErrorCode userInfo:self.userInfo]; @@ -147,7 +153,8 @@ - (void)testPublicDomainErrorForGACErrorUnrecognizedCode { } - (void)testPublicDomainErrorForUnrecognizedDomainError { - // Error from an unrecognized domain (i.e., not FIRAppCheckErrorDomain or GACAppCheckErrorDomain). + // Error from an unrecognized domain (i.e., not FIRAppCheckErrorDomain or + // @"com.google.app_check_core"). NSError *unrecognizedError = [NSError errorWithDomain:kTestErrorDomain code:kTestErrorCode userInfo:self.userInfo]; diff --git a/FirebaseAppCheck/Tests/Unit/Core/FIRAppCheckLoggerTests.m b/FirebaseAppCheck/Tests/Unit/Core/FIRAppCheckLoggerTests.m index e1f72fc5c2b..4c06f1ba878 100644 --- a/FirebaseAppCheck/Tests/Unit/Core/FIRAppCheckLoggerTests.m +++ b/FirebaseAppCheck/Tests/Unit/Core/FIRAppCheckLoggerTests.m @@ -18,7 +18,13 @@ #import "FirebaseAppCheck/Sources/Core/FIRAppCheckLogger.h" -#import +#if __has_include() +#import +#elif __has_include("AppCheckCore-Swift.h") +#import "AppCheckCore-Swift.h" +#else +@import AppCheckCore; +#endif @interface FIRAppCheckLoggerTests : XCTestCase @end diff --git a/FirebaseAppCheck/Tests/Unit/Core/FIRAppCheckTests.m b/FirebaseAppCheck/Tests/Unit/Core/FIRAppCheckTests.m index a5dec7e50a2..c9b65cdd7a3 100644 --- a/FirebaseAppCheck/Tests/Unit/Core/FIRAppCheckTests.m +++ b/FirebaseAppCheck/Tests/Unit/Core/FIRAppCheckTests.m @@ -405,7 +405,7 @@ - (NSError *)appCheckCoreErrorWithCode:(GACAppCheckErrorCode)code userInfo[NSUnderlyingErrorKey] = underlyingError; userInfo[NSLocalizedFailureReasonErrorKey] = failureReason; - return [NSError errorWithDomain:GACAppCheckErrorDomain code:code userInfo:userInfo]; + return [NSError errorWithDomain:@"com.google.app_check_core" code:code userInfo:userInfo]; } - (FIRAppCheckToken *)validToken { diff --git a/Gemfile b/Gemfile index 118d3289e31..04c3095baf1 100644 --- a/Gemfile +++ b/Gemfile @@ -2,6 +2,8 @@ # commit Gemfile and Gemfile.lock. source 'https://rubygems.org' +# test everything + # To test CocoaPods pre-releases, update to a relevant commit or tag like below. # cocoapods-core and xcodeproj may or may not also need tags. For additional # testing, enable the cron jobs with a global search and replace from your diff --git a/Package.swift b/Package.swift index 9be95063fed..92bb261e317 100644 --- a/Package.swift +++ b/Package.swift @@ -1782,15 +1782,5 @@ func isFoundationModelsSupportedPlatformSwiftSetting() -> SwiftSetting { } func appCheckDependency() -> Package.Dependency { - let appCheckURL = "https://github.com/google/app-check.git" - - if let localPath = Context.environment["FIREBASE_APP_CHECK_LOCAL_PATH"] { - return .package(path: localPath) - } - - if let branch = Context.environment["FIREBASE_APP_CHECK_BRANCH"] { - return .package(url: appCheckURL, branch: branch) - } - - return .package(url: appCheckURL, "11.3.0" ..< "12.0.0") + return .package(url: "https://github.com/google/app-check.git", branch: "pb-swift") } diff --git a/scripts/check_imports.swift b/scripts/check_imports.swift index d7f65ac4b1f..725c80eb330 100755 --- a/scripts/check_imports.swift +++ b/scripts/check_imports.swift @@ -52,6 +52,7 @@ let skipDirPatterns = ["/Sample/", "/Pods/", // Skip existence test for patterns that start with the following: let skipImportPatterns = [ + "AppCheckCore-Swift.h", "FBLPromise", "OCMock", "OCMStubRecorder",