Ver código fonte

Fix App Quality Sessions field for Bundle Short Version (#11047)

Sam Edson 3 anos atrás
pai
commit
01f06ac3f2

+ 6 - 3
FirebaseSessions/Sources/ApplicationInfo.swift

@@ -70,12 +70,15 @@ class ApplicationInfo: ApplicationInfoProtocol {
 
   private let networkInformation: NetworkInfoProtocol
   private let envParams: [String: String]
+  private let infoDict: [String: Any]?
 
   init(appID: String, networkInfo: NetworkInfoProtocol = NetworkInfo(),
-       envParams: [String: String] = ProcessInfo.processInfo.environment) {
+       envParams: [String: String] = ProcessInfo.processInfo.environment,
+       infoDict: [String: Any]? = Bundle.main.infoDictionary) {
     self.appID = appID
     networkInformation = networkInfo
     self.envParams = envParams
+    self.infoDict = infoDict
   }
 
   var sdkVersion: String {
@@ -107,11 +110,11 @@ class ApplicationInfo: ApplicationInfoProtocol {
   }
 
   var appBuildVersion: String {
-    return Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? ""
+    return infoDict?["CFBundleVersion"] as? String ?? ""
   }
 
   var appDisplayVersion: String {
-    return Bundle.main.infoDictionary?["CFBundleVersion"] as? String ?? ""
+    return infoDict?["CFBundleShortVersionString"] as? String ?? ""
   }
 
   var osBuildVersion: String {

+ 14 - 0
FirebaseSessions/Tests/Unit/ApplicationInfoTests.swift

@@ -104,4 +104,18 @@ class ApplicationInfoTests: XCTestCase {
     appInfo = ApplicationInfo(appID: "testAppID", envParams: envValues)
     XCTAssertEqual(appInfo.environment, .prod)
   }
+
+  func test_bundleVersions_correspondToVersion() {
+    let appInfo = ApplicationInfo(
+      appID: "testAppID",
+      networkInfo: mockNetworkInfo,
+      envParams: [:],
+      infoDict: [
+        "CFBundleVersion": "54321", // Build Version
+        "CFBundleShortVersionString": "12.34.5", // Display Version
+      ]
+    )
+    XCTAssertEqual(appInfo.appBuildVersion, "54321")
+    XCTAssertEqual(appInfo.appDisplayVersion, "12.34.5")
+  }
 }