From 6beaee02d637e601882de643bb830501e989f4ee Mon Sep 17 00:00:00 2001 From: Worthing ~ <115107835+w-goog@users.noreply.github.com> Date: Fri, 7 Aug 2026 13:23:57 -0700 Subject: [PATCH] g-orchestrated: Consolidate SDK logging parameters into GIDSignInPreferences Replace the GIDVersion() and GIDEnvironment() free functions with the +sdkVersion and +environment class methods, and add +loggingParameters to supply the standard gpsdk and gidenv parameters in one place. No behavior change. --- GoogleSignIn/Sources/GIDGoogleUser.m | 3 +-- GoogleSignIn/Sources/GIDSignIn.m | 10 ++++------ GoogleSignIn/Sources/GIDSignInPreferences.h | 12 +++++++++--- GoogleSignIn/Sources/GIDSignInPreferences.m | 16 ++++++++++------ .../Tests/Unit/GIDSignInPreferencesTest.m | 18 ++++++++++++++---- GoogleSignIn/Tests/Unit/GIDSignInTest.m | 10 ++++++---- 6 files changed, 44 insertions(+), 25 deletions(-) diff --git a/GoogleSignIn/Sources/GIDGoogleUser.m b/GoogleSignIn/Sources/GIDGoogleUser.m index 1da8f972..f67bb4c8 100644 --- a/GoogleSignIn/Sources/GIDGoogleUser.m +++ b/GoogleSignIn/Sources/GIDGoogleUser.m @@ -153,8 +153,7 @@ - (void)refreshTokensIfNeededWithCompletion:(GIDGoogleUserCompletion)completion [additionalParameters addEntriesFromDictionary: self.authState.lastTokenResponse.request.additionalParameters]; #endif // TARGET_OS_IOS && !TARGET_OS_MACCATALYST - additionalParameters[kSDKVersionLoggingParameter] = GIDVersion(); - additionalParameters[kEnvironmentLoggingParameter] = GIDEnvironment(); + [additionalParameters addEntriesFromDictionary:[GIDSignInPreferences loggingParameters]]; OIDTokenRequest *tokenRefreshRequest = [self.authState tokenRefreshRequestWithAdditionalParameters:additionalParameters]; diff --git a/GoogleSignIn/Sources/GIDSignIn.m b/GoogleSignIn/Sources/GIDSignIn.m index a8cf1ce7..82a8b039 100644 --- a/GoogleSignIn/Sources/GIDSignIn.m +++ b/GoogleSignIn/Sources/GIDSignIn.m @@ -579,9 +579,9 @@ - (void)disconnectWithCompletion:(nullable GIDDisconnectCompletion)completion { revokeURLString = [NSString stringWithFormat:@"%@&%@=%@&%@=%@", revokeURLString, kSDKVersionLoggingParameter, - GIDVersion(), + [GIDSignInPreferences sdkVersion], kEnvironmentLoggingParameter, - GIDEnvironment()]; + [GIDSignInPreferences environment]]; NSURL *revokeURL = [NSURL URLWithString:revokeURLString]; [self startFetchURL:revokeURL fromAuthState:authState @@ -918,8 +918,7 @@ - (void)authorizationRequestWithOptions:(GIDSignInInternalOptions *)options comp #elif TARGET_OS_OSX || TARGET_OS_MACCATALYST [additionalParameters addEntriesFromDictionary:options.extraParams]; #endif // TARGET_OS_OSX || TARGET_OS_MACCATALYST - additionalParameters[kSDKVersionLoggingParameter] = GIDVersion(); - additionalParameters[kEnvironmentLoggingParameter] = GIDEnvironment(); + [additionalParameters addEntriesFromDictionary:[GIDSignInPreferences loggingParameters]]; return additionalParameters; } @@ -1054,8 +1053,7 @@ - (void)maybeFetchToken:(GIDAuthFlow *)authFlow { emmSupport:authFlow.emmSupport isPasscodeInfoRequired:passcodeInfoRequired.length > 0]]; #endif // TARGET_OS_IOS && !TARGET_OS_MACCATALYST - additionalParameters[kSDKVersionLoggingParameter] = GIDVersion(); - additionalParameters[kEnvironmentLoggingParameter] = GIDEnvironment(); + [additionalParameters addEntriesFromDictionary:[GIDSignInPreferences loggingParameters]]; OIDTokenRequest *tokenRequest; if (!authState.lastTokenResponse.accessToken && diff --git a/GoogleSignIn/Sources/GIDSignInPreferences.h b/GoogleSignIn/Sources/GIDSignInPreferences.h index 8bdb6719..5bf45ec1 100644 --- a/GoogleSignIn/Sources/GIDSignInPreferences.h +++ b/GoogleSignIn/Sources/GIDSignInPreferences.h @@ -21,11 +21,17 @@ NS_ASSUME_NONNULL_BEGIN extern NSString *const kSDKVersionLoggingParameter; extern NSString *const kEnvironmentLoggingParameter; -NSString* GIDVersion(void); +@interface GIDSignInPreferences : NSObject -NSString* GIDEnvironment(void); +/// Returns the current Google Sign-In SDK version, prefixed so that `gid` version values can +/// be distinguished from other values reported under the legacy `gpsdk` logging key. ++ (NSString *)sdkVersion; -@interface GIDSignInPreferences : NSObject +/// Returns the current Apple execution environment, such as `ios` or `macos`. ++ (NSString *)environment; + +/// Returns the standard logging parameters to send with requests to Google's servers. ++ (NSDictionary *)loggingParameters; + (NSString *)googleAuthorizationServer; + (NSString *)googleTokenServer; diff --git a/GoogleSignIn/Sources/GIDSignInPreferences.m b/GoogleSignIn/Sources/GIDSignInPreferences.m index 3f0e27d1..022a76e7 100644 --- a/GoogleSignIn/Sources/GIDSignInPreferences.m +++ b/GoogleSignIn/Sources/GIDSignInPreferences.m @@ -44,14 +44,13 @@ #define STR(x) STR_EXPAND(x) #define STR_EXPAND(x) #x -// The prefixed sdk version string to differentiate gid version values used with the legacy gpsdk -// logging key. -NSString* GIDVersion(void) { +@implementation GIDSignInPreferences + ++ (NSString *)sdkVersion { return [NSString stringWithFormat:@"gid-%@", @STR(GID_SDK_VERSION)]; } -// Get the current Apple execution environment. -NSString* GIDEnvironment(void) { ++ (NSString *)environment { NSString *appleEnvironment = kAppleEnvironmentUnknown; #if TARGET_OS_MACCATALYST @@ -80,7 +79,12 @@ return appleEnvironment; } -@implementation GIDSignInPreferences ++ (NSDictionary *)loggingParameters { + return @{ + kSDKVersionLoggingParameter : [self sdkVersion], + kEnvironmentLoggingParameter : [self environment], + }; +} + (NSString *)googleAuthorizationServer { return kLSOServer; diff --git a/GoogleSignIn/Tests/Unit/GIDSignInPreferencesTest.m b/GoogleSignIn/Tests/Unit/GIDSignInPreferencesTest.m index 80fa8949..3dff02e4 100644 --- a/GoogleSignIn/Tests/Unit/GIDSignInPreferencesTest.m +++ b/GoogleSignIn/Tests/Unit/GIDSignInPreferencesTest.m @@ -21,13 +21,13 @@ @interface GIDSignInPreferencesTest : XCTestCase @implementation GIDSignInPreferencesTest -- (void)testGIDVersion { - NSString *version = GIDVersion(); +- (void)testSDKVersion { + NSString *version = [GIDSignInPreferences sdkVersion]; XCTAssertTrue([version hasPrefix:@"gid-"]); } -- (void)testGIDEnvironment { - NSString *environment = GIDEnvironment(); +- (void)testEnvironment { + NSString *environment = [GIDSignInPreferences environment]; NSString *expectedEnvironment; #if TARGET_OS_MACCATALYST @@ -44,4 +44,14 @@ - (void)testGIDEnvironment { XCTAssertEqualObjects(environment, expectedEnvironment); } +- (void)testLoggingParameters { + NSDictionary *params = [GIDSignInPreferences loggingParameters]; + + XCTAssertEqual(params.count, (NSUInteger)2); + XCTAssertEqualObjects(params[kSDKVersionLoggingParameter], + [GIDSignInPreferences sdkVersion]); + XCTAssertEqualObjects(params[kEnvironmentLoggingParameter], + [GIDSignInPreferences environment]); +} + @end diff --git a/GoogleSignIn/Tests/Unit/GIDSignInTest.m b/GoogleSignIn/Tests/Unit/GIDSignInTest.m index ab1c4003..36cb3047 100644 --- a/GoogleSignIn/Tests/Unit/GIDSignInTest.m +++ b/GoogleSignIn/Tests/Unit/GIDSignInTest.m @@ -1723,9 +1723,11 @@ - (void)verifyAndRevokeToken:(NSString *)token NSDictionary *> *params = queryComponent.dictionaryValue; XCTAssertEqualObjects([params valueForKey:@"token"], token, @"token parameter should match"); - XCTAssertEqualObjects([params valueForKey:kSDKVersionLoggingParameter], GIDVersion(), + XCTAssertEqualObjects([params valueForKey:kSDKVersionLoggingParameter], + [GIDSignInPreferences sdkVersion], @"SDK version logging parameter should match"); - XCTAssertEqualObjects([params valueForKey:kEnvironmentLoggingParameter], GIDEnvironment(), + XCTAssertEqualObjects([params valueForKey:kEnvironmentLoggingParameter], + [GIDSignInPreferences environment], @"Environment logging parameter should match"); // Emulate result back from server. [self didFetch:nil error:nil]; @@ -1891,8 +1893,8 @@ - (void)OAuthLoginWithAddScopesFlow:(BOOL)addScopesFlow XCTAssertNotNil(_savedAuthorizationRequest); NSDictionary *params = _savedAuthorizationRequest.additionalParameters; XCTAssertEqualObjects(params[@"include_granted_scopes"], @"true"); - XCTAssertEqualObjects(params[kSDKVersionLoggingParameter], GIDVersion()); - XCTAssertEqualObjects(params[kEnvironmentLoggingParameter], GIDEnvironment()); + XCTAssertEqualObjects(params[kSDKVersionLoggingParameter], [GIDSignInPreferences sdkVersion]); + XCTAssertEqualObjects(params[kEnvironmentLoggingParameter], [GIDSignInPreferences environment]); XCTAssertNotNil(_savedAuthorizationCallback); #if TARGET_OS_IOS || TARGET_OS_MACCATALYST XCTAssertEqual(_savedPresentingViewController, _presentingViewController);