Skip to content

Commit 6de9131

Browse files
authored
Bring back the changes of reading the version from FIRCore with fixes + unit test. (#6958)
* Revert "Revert changes in Crashlytics version - as it's causing an issue with the version associated with the crash upload (#6955)" This reverts commit 1adc4a1. * Fix the issue that was causing the problem * Add unit test to make sure this is caught in case of changes.
1 parent 41c612b commit 6de9131

File tree

11 files changed

+79
-24
lines changed

11 files changed

+79
-24
lines changed

Crashlytics/Crashlytics/Components/FIRCLSContext.m

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
#include <stdlib.h>
1818
#include <string.h>
1919

20+
#import "Crashlytics/Shared/FIRCLSConstants.h"
21+
2022
#import "Crashlytics/Crashlytics/Models/FIRCLSFileManager.h"
2123
#import "Crashlytics/Crashlytics/Models/FIRCLSInstallIdentifierModel.h"
2224
#import "Crashlytics/Crashlytics/Models/FIRCLSInternalReport.h"
@@ -400,9 +402,9 @@ static bool FIRCLSContextRecordIdentity(FIRCLSFile* file, const FIRCLSContextIni
400402

401403
FIRCLSFileWriteHashStart(file);
402404

403-
FIRCLSFileWriteHashEntryString(file, "generator", CLS_SDK_GENERATOR_NAME);
404-
FIRCLSFileWriteHashEntryString(file, "display_version", CLS_SDK_DISPLAY_VERSION);
405-
FIRCLSFileWriteHashEntryString(file, "build_version", CLS_SDK_DISPLAY_VERSION);
405+
FIRCLSFileWriteHashEntryString(file, "generator", FIRCLSSDKGeneratorName().UTF8String);
406+
FIRCLSFileWriteHashEntryString(file, "display_version", FIRCLSSDKVersion().UTF8String);
407+
FIRCLSFileWriteHashEntryString(file, "build_version", FIRCLSSDKVersion().UTF8String);
406408
FIRCLSFileWriteHashEntryUint64(file, "started_at", time(NULL));
407409

408410
FIRCLSFileWriteHashEntryString(file, "session_id", initData->sessionId);

Crashlytics/Crashlytics/Controllers/FIRCLSReportUploader.m

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -318,15 +318,15 @@ - (NSMutableURLRequest *)mutableRequestWithURL:(NSURL *)url timeout:(NSTimeInter
318318

319319
NSString *localeId = [self localeIdentifier];
320320

321-
[request setValue:@CLS_SDK_GENERATOR_NAME forHTTPHeaderField:FIRCLSNetworkUserAgent];
321+
[request setValue:FIRCLSSDKGeneratorName() forHTTPHeaderField:FIRCLSNetworkUserAgent];
322322
[request setValue:FIRCLSNetworkApplicationJson forHTTPHeaderField:FIRCLSNetworkAccept];
323323
[request setValue:FIRCLSNetworkUTF8 forHTTPHeaderField:FIRCLSNetworkAcceptCharset];
324324
[request setValue:localeId forHTTPHeaderField:FIRCLSNetworkAcceptLanguage];
325325
[request setValue:localeId forHTTPHeaderField:FIRCLSNetworkContentLanguage];
326326
[request setValue:FIRCLSDeveloperToken forHTTPHeaderField:FIRCLSNetworkCrashlyticsDeveloperToken];
327327
[request setValue:FIRCLSApplicationGetSDKBundleID()
328328
forHTTPHeaderField:FIRCLSNetworkCrashlyticsAPIClientId];
329-
[request setValue:@CLS_SDK_DISPLAY_VERSION
329+
[request setValue:FIRCLSSDKVersion()
330330
forHTTPHeaderField:FIRCLSNetworkCrashlyticsAPIClientDisplayVersion];
331331
[request setValue:[[self dataSource] googleAppID]
332332
forHTTPHeaderField:FIRCLSNetworkCrashlyticsGoogleAppId];

Crashlytics/Crashlytics/FIRCrashlytics.m

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737

3838
#import "Crashlytics/Crashlytics/Helpers/FIRCLSLogger.h"
3939
#import "Crashlytics/Shared/FIRCLSByteUtility.h"
40+
#import "Crashlytics/Shared/FIRCLSConstants.h"
4041
#import "Crashlytics/Shared/FIRCLSFABHost.h"
4142

4243
#import "Crashlytics/Crashlytics/Controllers/FIRCLSReportManager.h"
@@ -94,7 +95,7 @@ - (instancetype)initWithApp:(FIRApp *)app
9495

9596
FIRCLSProfileMark mark = FIRCLSProfilingStart();
9697

97-
NSLog(@"[Firebase/Crashlytics] Version %@", @CLS_SDK_DISPLAY_VERSION);
98+
NSLog(@"[Firebase/Crashlytics] Version %@", FIRCLSSDKVersion());
9899

99100
FIRCLSDeveloperLog("Crashlytics", @"Running on %@, %@ (%@)", FIRCLSHostModelInfo(),
100101
FIRCLSHostOSDisplayVersion(), FIRCLSHostOSBuildVersion());

Crashlytics/Crashlytics/Helpers/FIRCLSDefines.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@
1717
#include <TargetConditionals.h>
1818

1919
// macro trickiness
20-
#define STR_HELPER(x) #x
21-
#define STR(x) STR_HELPER(x)
2220
#define CONCAT_EXPANDED(a, b) a##b
2321
#define CONCAT(a, b) CONCAT_EXPANDED(a, b)
2422

@@ -47,10 +45,6 @@
4745
#define CLS_TARGET_OS_OSX (TARGET_OS_MAC && !TARGET_OS_IPHONE)
4846
#define CLS_TARGET_OS_HAS_UIKIT (TARGET_OS_IOS || TARGET_OS_TV)
4947

50-
#define CLS_SDK_DISPLAY_VERSION STR(DISPLAY_VERSION)
51-
52-
#define CLS_SDK_GENERATOR_NAME (STR(CLS_SDK_NAME) "/" CLS_SDK_DISPLAY_VERSION)
53-
5448
// arch definitions
5549
#if defined(__arm__) || defined(__arm64__) || defined(__arm64e__)
5650
#include <arm/arch.h>

Crashlytics/Crashlytics/Settings/FIRCLSSettingsOnboardingManager.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ - (void)beginSettingsAndOnboardingWithGoogleAppId:(NSString *)googleAppID
8484
// backwards compatibility
8585
// TODO(b/141747635)
8686
self.kitVersionsByKitBundleIdentifier = @{
87-
FIRCLSApplicationGetSDKBundleID() : @CLS_SDK_DISPLAY_VERSION,
87+
FIRCLSApplicationGetSDKBundleID() : FIRCLSSDKVersion(),
8888
};
8989

9090
[self beginSettingsDownload:token waitForCompletion:waitForCompletion];

Crashlytics/Crashlytics/Settings/Operations/FIRCLSDownloadAndSaveSettingsOperation.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ - (NSMutableURLRequest *)mutableRequestWithDefaultHTTPHeaderFieldsAndTimeoutForU
8888
forHTTPHeaderField:@"X-Crashlytics-OS-Build-Version"];
8989
[request setValue:FIRCLSHostOSDisplayVersion()
9090
forHTTPHeaderField:@"X-Crashlytics-OS-Display-Version"];
91-
[request setValue:FIRCLSVersion forHTTPHeaderField:@"X-Crashlytics-API-Client-Version"];
91+
[request setValue:FIRCLSSDKVersion() forHTTPHeaderField:@"X-Crashlytics-API-Client-Version"];
9292

9393
return request;
9494
}

Crashlytics/Crashlytics/Settings/Operations/FIRCLSNetworkOperation.m

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,15 +74,16 @@ - (NSMutableURLRequest *)mutableRequestWithDefaultHTTPHeadersForURL:(NSURL *)url
7474
[request setValue:FIRCLSDeveloperToken forHTTPHeaderField:FIRCLSNetworkCrashlyticsDeveloperToken];
7575
[request setValue:FIRCLSApplicationGetSDKBundleID()
7676
forHTTPHeaderField:FIRCLSNetworkCrashlyticsAPIClientId];
77-
[request setValue:FIRCLSVersion
77+
[request setValue:FIRCLSSDKVersion()
7878
forHTTPHeaderField:FIRCLSNetworkCrashlyticsAPIClientDisplayVersion];
7979
[request setValue:self.googleAppID forHTTPHeaderField:FIRCLSNetworkCrashlyticsGoogleAppId];
8080

8181
return request;
8282
}
8383

8484
- (NSString *)userAgentString {
85-
return [NSString stringWithFormat:@"%@/%@", FIRCLSApplicationGetSDKBundleID(), FIRCLSVersion];
85+
return
86+
[NSString stringWithFormat:@"%@/%@", FIRCLSApplicationGetSDKBundleID(), FIRCLSSDKVersion()];
8687
}
8788

8889
- (NSString *)localeIdentifier {

Crashlytics/Shared/FIRCLSConstants.h

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@
1414

1515
#import <Foundation/Foundation.h>
1616

17-
FOUNDATION_EXPORT NSString *const FIRCLSDeveloperToken;
17+
NS_ASSUME_NONNULL_BEGIN
1818

19-
FOUNDATION_EXPORT NSString *const FIRCLSVersion;
19+
FOUNDATION_EXPORT NSString *const FIRCLSDeveloperToken;
2020

2121
// User Messages
2222
FOUNDATION_EXPORT NSString *const FIRCLSMissingConsumerKeyMsg;
@@ -43,3 +43,9 @@ FOUNDATION_EXPORT NSString *const FIRCLSNetworkCrashlyticsGoogleAppId;
4343
FOUNDATION_EXPORT NSString *const FIRCLSNetworkCrashlyticsOrgId;
4444
FOUNDATION_EXPORT NSString *const FIRCLSNetworkUserAgent;
4545
FOUNDATION_EXPORT NSString *const FIRCLSNetworkUTF8;
46+
47+
NSString *FIRCLSSDKGeneratorName(void);
48+
49+
NSString *FIRCLSSDKVersion(void);
50+
51+
NS_ASSUME_NONNULL_END

Crashlytics/Shared/FIRCLSConstants.m

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,13 @@
1313
// limitations under the License.
1414

1515
#import "Crashlytics/Shared/FIRCLSConstants.h"
16+
#import "FirebaseCore/Sources/Private/FirebaseCoreInternal.h"
1617

1718
#define STR_HELPER(x) #x
1819
#define STR(x) STR_HELPER(x)
1920

2021
NSString* const FIRCLSDeveloperToken = @"77f0789d8e230eccdb4b99b82dccd78d47f9b604";
2122

22-
NSString* const FIRCLSVersion = @STR(DISPLAY_VERSION);
23-
2423
// User Messages
2524
NSString* const FIRCLSMissingConsumerKeyMsg = @"consumer key is nil or zero length";
2625
NSString* const FIRCLSMissingConsumerSecretMsg = @"consumer secret is nil or zero length";
@@ -47,3 +46,15 @@
4746
NSString* const FIRCLSNetworkCrashlyticsOrgId = @"X-Crashlytics-Org-Id";
4847
NSString* const FIRCLSNetworkUserAgent = @"User-Agent";
4948
NSString* const FIRCLSNetworkUTF8 = @"utf-8";
49+
50+
NSString* FIRCLSSDKGeneratorName(void) {
51+
return [NSString stringWithFormat:@"%s/%s", STR(CLS_SDK_NAME), FIRCLSSDKVersion().UTF8String];
52+
}
53+
54+
NSString* FIRCLSSDKVersion(void) {
55+
#ifdef CRASHLYTICS_1P
56+
return [FIRFirebaseVersion() stringByAppendingString:@"_1P"];
57+
#else
58+
return FIRFirebaseVersion();
59+
#endif
60+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
// Copyright 2020 Google LLC
2+
//
3+
// Licensed under the Apache License, Version 2.0 (the "License");
4+
// you may not use this file except in compliance with the License.
5+
// You may obtain a copy of the License at
6+
//
7+
// http://www.apache.org/licenses/LICENSE-2.0
8+
//
9+
// Unless required by applicable law or agreed to in writing, software
10+
// distributed under the License is distributed on an "AS IS" BASIS,
11+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
// See the License for the specific language governing permissions and
13+
// limitations under the License.
14+
15+
#import <XCTest/XCTest.h>
16+
17+
#import "Crashlytics/Shared/FIRCLSConstants.h"
18+
#import "FirebaseCore/Sources/Private/FirebaseCoreInternal.h"
19+
20+
#define STR_HELPER(x) #x
21+
#define STR(x) STR_HELPER(x)
22+
23+
@interface FIRCLSConstantsTest : XCTestCase
24+
25+
@end
26+
27+
@implementation FIRCLSConstantsTest
28+
29+
- (void)testGeneratorName {
30+
NSString *expectedGeneratorName =
31+
[NSString stringWithFormat:@"%s/%s", STR(CLS_SDK_NAME), FIRCLSSDKVersion().UTF8String];
32+
XCTAssertEqualObjects(expectedGeneratorName, FIRCLSSDKGeneratorName());
33+
}
34+
35+
- (void)testSdkVersion {
36+
#ifdef CRASHLYTICS_1P
37+
NSString *expectedSdkVersion = [FIRFirebaseVersion() stringByAppendingString:@"_1P"];
38+
#else
39+
NSString *expectedSdkVersion = FIRFirebaseVersion();
40+
#endif
41+
XCTAssertEqualObjects(expectedSdkVersion, FIRCLSSDKVersion());
42+
}
43+
44+
@end

0 commit comments

Comments
 (0)