Sfoglia il codice sorgente

Bump FirePerf and Core versions to 8.6.1 (#8580)

* Bump FirePerf and Core versions to 8.6.1
* Fix to ensure that the installation ID is right set for sending events. (#8578)
Co-authored-by: Visu <visumickey@gmail.com>
Maksym Malyhin 4 anni fa
parent
commit
38d4f0c634

+ 4 - 4
Firebase.podspec

@@ -1,6 +1,6 @@
 Pod::Spec.new do |s|
   s.name             = 'Firebase'
-  s.version          = '8.6.0'
+  s.version          = '8.6.1'
   s.summary          = 'Firebase'
 
   s.description      = <<-DESC
@@ -39,7 +39,7 @@ Simplify your app development, grow your user base, and monetize more effectivel
   end
 
   s.subspec 'CoreOnly' do |ss|
-    ss.dependency 'FirebaseCore', '8.6.0'
+    ss.dependency 'FirebaseCore', '8.6.1'
     ss.source_files = 'CoreOnly/Sources/Firebase.h'
     ss.preserve_paths = 'CoreOnly/Sources/module.modulemap'
     if ENV['FIREBASE_POD_REPO_FOR_DEV_POD'] then
@@ -168,8 +168,8 @@ Simplify your app development, grow your user base, and monetize more effectivel
 
   s.subspec 'Performance' do |ss|
     ss.dependency 'Firebase/CoreOnly'
-    ss.ios.dependency 'FirebasePerformance', '~> 8.6.0'
-    ss.tvos.dependency 'FirebasePerformance', '~> 8.6.0'
+    ss.ios.dependency 'FirebasePerformance', '~> 8.6.1'
+    ss.tvos.dependency 'FirebasePerformance', '~> 8.6.1'
   end
 
   s.subspec 'RemoteConfig' do |ss|

+ 1 - 1
FirebaseCore.podspec

@@ -1,6 +1,6 @@
 Pod::Spec.new do |s|
   s.name             = 'FirebaseCore'
-  s.version          = '8.6.0'
+  s.version          = '8.6.1'
   s.summary          = 'Firebase Core'
 
   s.description      = <<-DESC

+ 1 - 1
FirebasePerformance.podspec

@@ -1,6 +1,6 @@
 Pod::Spec.new do |s|
   s.name             = 'FirebasePerformance'
-  s.version          = '8.6.0'
+  s.version          = '8.6.1'
   s.summary          = 'Firebase Performance'
 
   s.description      = <<-DESC

+ 3 - 0
FirebasePerformance/CHANGELOG.md

@@ -1,3 +1,6 @@
+# Version 8.6.1
+* Fix the case where the event were dropped for missing a critical field in the event.
+
 # Version 8.6.0
 * Add Firebase Performance support for Swift Package Manager. (#6528)
 * Fix a crash due to a race condition. (#8485)

+ 3 - 3
FirebasePerformance/Sources/FPRClient.m

@@ -271,7 +271,6 @@
   });
 
   // Attempts to dispatch events if successfully retrieve installation ID.
-  __block firebase_perf_v1_PerfMetric curEvent = event;
   [self.installations
       installationIDWithCompletion:^(NSString *_Nullable identifier, NSError *_Nullable error) {
         if (error) {
@@ -279,8 +278,9 @@
                       error.description);
         } else {
           dispatch_group_async(self.eventsQueueGroup, self.eventsQueue, ^{
-            curEvent.application_info.app_instance_id = FPREncodeString(identifier);
-            [self.gdtLogger logEvent:event];
+            firebase_perf_v1_PerfMetric updatedEvent = event;
+            updatedEvent.application_info.app_instance_id = FPREncodeString(identifier);
+            [self.gdtLogger logEvent:updatedEvent];
           });
         }
       }];

+ 22 - 4
FirebasePerformance/Tests/Unit/FPRClientTest.m

@@ -17,6 +17,7 @@
 #import "FirebasePerformance/Sources/Configurations/FPRConfigurations+Private.h"
 #import "FirebasePerformance/Sources/FPRClient+Private.h"
 #import "FirebasePerformance/Sources/FPRClient.h"
+#import "FirebasePerformance/Sources/FPRNanoPbUtils.h"
 #import "FirebasePerformance/Sources/Loggers/FPRGDTLogger.h"
 #import "FirebasePerformance/Sources/Loggers/FPRGDTLogger_Private.h"
 
@@ -29,6 +30,8 @@
 #import <OCMock/OCMock.h>
 #import "SharedTestUtilities/GDTCORTransportFake.h"
 
+NSString *const kFPRMockInstallationId = @"mockId";
+
 @interface FPRClientTest : FPRTestCase
 
 /** Configuration which can be assigned as a fake object for event dispatch control. */
@@ -47,7 +50,7 @@
   // Arrange installations object.
   FPRFakeInstallations *installations = [FPRFakeInstallations installations];
   self.client = [[FPRClient alloc] init];
-  installations.identifier = @"mockId";
+  installations.identifier = kFPRMockInstallationId;
   self.client.installations = (FIRInstallations *)installations;
 
   // Arrange remote config object.
@@ -73,6 +76,9 @@
   // Act on event logging call.
   [self.client processAndLogEvent:perfMetric];
 
+  firebase_perf_v1_PerfMetric expectedMetric = perfMetric;
+  expectedMetric.application_info.app_instance_id = FPREncodeString(kFPRMockInstallationId);
+
   // Wait for async job to execute event logging.
   dispatch_group_wait(self.client.eventsQueueGroup, DISPATCH_TIME_FOREVER);
 
@@ -82,8 +88,10 @@
         (GDTCORTransportFake *)self.client.gdtLogger.gdtfllTransport;
     XCTAssertEqual(fakeGdtTransport.logEvents.count, 1);
     GDTCOREvent *event = fakeGdtTransport.logEvents.firstObject;
+    XCTAssertNotNil(
+        FPRDecodeString([(FPRGDTEvent *)event.dataObject metric].application_info.app_instance_id));
     XCTAssertEqualObjects([event.dataObject transportBytes],
-                          [[FPRGDTEvent gdtEventForPerfMetric:perfMetric] transportBytes]);
+                          [[FPRGDTEvent gdtEventForPerfMetric:expectedMetric] transportBytes]);
   });
 }
 
@@ -96,6 +104,9 @@
   // Act on event logging call.
   [self.client processAndLogEvent:perfMetric];
 
+  firebase_perf_v1_PerfMetric expectedMetric = perfMetric;
+  expectedMetric.application_info.app_instance_id = FPREncodeString(kFPRMockInstallationId);
+
   // Wait for async job to execute event logging.
   dispatch_group_wait(self.client.eventsQueueGroup, DISPATCH_TIME_FOREVER);
 
@@ -105,8 +116,10 @@
         (GDTCORTransportFake *)self.client.gdtLogger.gdtfllTransport;
     XCTAssertEqual(fakeGdtTransport.logEvents.count, 1);
     GDTCOREvent *event = fakeGdtTransport.logEvents.firstObject;
+    XCTAssertNotNil(
+        FPRDecodeString([(FPRGDTEvent *)event.dataObject metric].application_info.app_instance_id));
     XCTAssertEqualObjects([event.dataObject transportBytes],
-                          [[FPRGDTEvent gdtEventForPerfMetric:perfMetric] transportBytes]);
+                          [[FPRGDTEvent gdtEventForPerfMetric:expectedMetric] transportBytes]);
   });
 }
 
@@ -118,6 +131,9 @@
   // Act on event logging call.
   [self.client processAndLogEvent:perfMetric];
 
+  firebase_perf_v1_PerfMetric expectedMetric = perfMetric;
+  expectedMetric.application_info.app_instance_id = FPREncodeString(kFPRMockInstallationId);
+
   // Wait for async job to execute event logging.
   dispatch_group_wait(self.client.eventsQueueGroup, DISPATCH_TIME_FOREVER);
 
@@ -127,8 +143,10 @@
         (GDTCORTransportFake *)self.client.gdtLogger.gdtfllTransport;
     XCTAssertEqual(fakeGdtTransport.logEvents.count, 1);
     GDTCOREvent *event = fakeGdtTransport.logEvents.firstObject;
+    XCTAssertNotNil(
+        FPRDecodeString([(FPRGDTEvent *)event.dataObject metric].application_info.app_instance_id));
     XCTAssertEqualObjects([event.dataObject transportBytes],
-                          [[FPRGDTEvent gdtEventForPerfMetric:perfMetric] transportBytes]);
+                          [[FPRGDTEvent gdtEventForPerfMetric:expectedMetric] transportBytes]);
   });
 }
 

+ 1 - 1
Package.swift

@@ -17,7 +17,7 @@
 
 import PackageDescription
 
-let firebaseVersion = "8.6.0"
+let firebaseVersion = "8.6.1"
 
 let package = Package(
   name: "Firebase",