Просмотр исходного кода

Cherry picks for 6.9.0 (#3871)

* fixed "expiclitlySet" typo. (#3853)

* Mark unused variables (#3854)

* Mute FCM deprecated warnings with Xcode 11 and min iOS >= 10 (#3857)

* Add a third slash to make sure generated docs include these comments.b/13812238 (#3846)
Paul Beusterien 6 лет назад
Родитель
Сommit
d69e1bcd2a

+ 2 - 2
Example/Core/Tests/FIRAppTest.m

@@ -651,7 +651,7 @@ NSString *const kFIRTestAppName2 = @"test-app-name-2";
   // Test that the global data collection switch triggers setting Analytics when no explicit flag is
   // set.
   id optionsMock = OCMClassMock([FIROptions class]);
-  OCMStub([optionsMock isAnalyticsCollectionExpicitlySet]).andReturn(NO);
+  OCMStub([optionsMock isAnalyticsCollectionExplicitlySet]).andReturn(NO);
 
   // We need to use the default app name since Analytics only associates with the default app.
   FIRApp *defaultApp = [[FIRApp alloc] initInstanceWithName:kFIRDefaultAppName options:optionsMock];
@@ -670,7 +670,7 @@ NSString *const kFIRTestAppName2 = @"test-app-name-2";
 - (void)testAnalyticsNotSetByGlobalDataCollectionSwitch {
   // Test that the global data collection switch doesn't override an explicitly set Analytics flag.
   id optionsMock = OCMClassMock([FIROptions class]);
-  OCMStub([optionsMock isAnalyticsCollectionExpicitlySet]).andReturn(YES);
+  OCMStub([optionsMock isAnalyticsCollectionExplicitlySet]).andReturn(YES);
   FIRApp *app = [[FIRApp alloc] initInstanceWithName:@"testAnalyticsNotSet" options:optionsMock];
 
   id configurationMock = OCMClassMock([FIRAnalyticsConfiguration class]);

+ 8 - 8
Example/Core/Tests/FIROptionsTest.m

@@ -510,42 +510,42 @@ extern NSString *const kFIRLibraryVersionID;
   NSDictionary *optionsDictionary = @{};
   FIROptions *options = [[FIROptions alloc] initInternalWithOptionsDictionary:optionsDictionary];
   NSDictionary *analyticsOptions = [options analyticsOptionsDictionaryWithInfoDictionary:@{}];
-  XCTAssertFalse([options isAnalyticsCollectionExpicitlySet]);
+  XCTAssertFalse([options isAnalyticsCollectionExplicitlySet]);
 
   // Test deactivation flag.
   optionsDictionary = @{kFIRIsAnalyticsCollectionDeactivated : @YES};
   options = [[FIROptions alloc] initInternalWithOptionsDictionary:optionsDictionary];
   analyticsOptions = [options analyticsOptionsDictionaryWithInfoDictionary:@{}];
-  XCTAssertTrue([options isAnalyticsCollectionExpicitlySet]);
+  XCTAssertTrue([options isAnalyticsCollectionExplicitlySet]);
 
   // If "deactivated" == NO, that doesn't mean it's explicitly set / enabled so it should be treated
   // as if it's not set.
   optionsDictionary = @{kFIRIsAnalyticsCollectionDeactivated : @NO};
   options = [[FIROptions alloc] initInternalWithOptionsDictionary:optionsDictionary];
   analyticsOptions = [options analyticsOptionsDictionaryWithInfoDictionary:@{}];
-  XCTAssertFalse([options isAnalyticsCollectionExpicitlySet]);
+  XCTAssertFalse([options isAnalyticsCollectionExplicitlySet]);
 
   // Test the collection enabled flag.
   optionsDictionary = @{kFIRIsAnalyticsCollectionEnabled : @YES};
   options = [[FIROptions alloc] initInternalWithOptionsDictionary:optionsDictionary];
   analyticsOptions = [options analyticsOptionsDictionaryWithInfoDictionary:@{}];
-  XCTAssertTrue([options isAnalyticsCollectionExpicitlySet]);
+  XCTAssertTrue([options isAnalyticsCollectionExplicitlySet]);
 
   optionsDictionary = @{kFIRIsAnalyticsCollectionEnabled : @NO};
   options = [[FIROptions alloc] initInternalWithOptionsDictionary:optionsDictionary];
   analyticsOptions = [options analyticsOptionsDictionaryWithInfoDictionary:@{}];
-  XCTAssertTrue([options isAnalyticsCollectionExpicitlySet]);
+  XCTAssertTrue([options isAnalyticsCollectionExplicitlySet]);
 
   // Test the old measurement flag.
   options = [[FIROptions alloc] initInternalWithOptionsDictionary:@{}];
   analyticsOptions =
       [options analyticsOptionsDictionaryWithInfoDictionary:@{kFIRIsMeasurementEnabled : @YES}];
-  XCTAssertTrue([options isAnalyticsCollectionExpicitlySet]);
+  XCTAssertTrue([options isAnalyticsCollectionExplicitlySet]);
 
   options = [[FIROptions alloc] initInternalWithOptionsDictionary:@{}];
   analyticsOptions =
       [options analyticsOptionsDictionaryWithInfoDictionary:@{kFIRIsMeasurementEnabled : @NO}];
-  XCTAssertTrue([options isAnalyticsCollectionExpicitlySet]);
+  XCTAssertTrue([options isAnalyticsCollectionExplicitlySet]);
 
   // For good measure, a combination of all 3 (even if they conflict).
   optionsDictionary =
@@ -553,7 +553,7 @@ extern NSString *const kFIRLibraryVersionID;
   options = [[FIROptions alloc] initInternalWithOptionsDictionary:optionsDictionary];
   analyticsOptions =
       [options analyticsOptionsDictionaryWithInfoDictionary:@{kFIRIsMeasurementEnabled : @NO}];
-  XCTAssertTrue([options isAnalyticsCollectionExpicitlySet]);
+  XCTAssertTrue([options isAnalyticsCollectionExplicitlySet]);
 }
 
 - (void)testModifyingOptionsThrows {

+ 12 - 1
Example/Messaging/Tests/FIRMessagingContextManagerServiceTest.m

@@ -83,8 +83,10 @@
   XCTAssertTrue([FIRMessagingContextManagerService handleContextManagerMessage:message]);
 
   XCTAssertEqual(self.scheduledLocalNotifications.count, 1);
-
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
   UILocalNotification *notification = [self.scheduledLocalNotifications firstObject];
+#pragma clang diagnostic pop
   NSDate *date = [self.dateFormatter dateFromString:startTimeString];
   XCTAssertEqual([notification.fireDate compare:date], NSOrderedSame);
 #endif
@@ -134,7 +136,10 @@
   XCTAssertTrue([FIRMessagingContextManagerService handleContextManagerMessage:message]);
 
   XCTAssertEqual(self.scheduledLocalNotifications.count, 1);
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
   UILocalNotification *notification = [self.scheduledLocalNotifications firstObject];
+#pragma clang diagnostic pop
   // schedule notification after start date
   XCTAssertEqual([notification.fireDate compare:startDate], NSOrderedDescending);
   // schedule notification after end date
@@ -163,7 +168,10 @@
   XCTAssertTrue([FIRMessagingContextManagerService handleContextManagerMessage:message]);
 
   XCTAssertEqual(self.scheduledLocalNotifications.count, 1);
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
   UILocalNotification *notification = [self.scheduledLocalNotifications firstObject];
+#pragma clang diagnostic pop
   XCTAssertEqualObjects(notification.userInfo[messageIdentifierKey], messageIdentifier);
   XCTAssertEqualObjects(notification.userInfo[customDataKey], customData);
 #endif
@@ -175,6 +183,8 @@
 - (void)mockSchedulingLocalNotifications {
 #if TARGET_OS_IOS
   id mockApplication = OCMPartialMock([UIApplication sharedApplication]);
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
   __block UILocalNotification *notificationToSchedule;
   [[[mockApplication stub]
       andDo:^(NSInvocation *invocation) {
@@ -189,6 +199,7 @@
         }
         return NO;
       }]];
+#pragma clang diagnostic pop
 #endif
 }
 

+ 1 - 0
Firebase/Core/CHANGELOG.md

@@ -1,5 +1,6 @@
 # v6.3.0 -- M56
 - [changed] Transitive GoogleDataTransport dependency incremented to v2.0.0. (#3729)
+- [fixed] Fixed "expiclitlySet" typo. (#3853)
 
 # v6.2.0 -- M53
 - [added] Added AppKit dependency on macOS and UIKit dependency on iOS and tvOS. (#3459)

+ 1 - 1
Firebase/Core/FIRApp.m

@@ -352,7 +352,7 @@ static NSMutableDictionary *sLibraryVersions;
   }
 
   // Check if the Analytics flag is explicitly set. If so, no further actions are necessary.
-  if ([self.options isAnalyticsCollectionExpicitlySet]) {
+  if ([self.options isAnalyticsCollectionExplicitlySet]) {
     return;
   }
 

+ 1 - 1
Firebase/Core/FIROptions.m

@@ -399,7 +399,7 @@ static NSDictionary *sDefaultOptionsDictionary = nil;
   return [value boolValue];
 }
 
-- (BOOL)isAnalyticsCollectionExpicitlySet {
+- (BOOL)isAnalyticsCollectionExplicitlySet {
   // If it's de-activated, it classifies as explicity set. If not, it's not a good enough indication
   // that the developer wants FirebaseAnalytics enabled so continue checking.
   if (self.isAnalyticsCollectionDeactivated) {

+ 1 - 1
Firebase/Core/Private/FIROptionsInternal.h

@@ -65,7 +65,7 @@ extern NSString *const kServiceInfoFileType;
  * Indicates whether or not Analytics collection was explicitly enabled via a plist flag or at
  * runtime.
  */
-@property(nonatomic, readonly) BOOL isAnalyticsCollectionExpicitlySet;
+@property(nonatomic, readonly) BOOL isAnalyticsCollectionExplicitlySet;
 
 /**
  * Whether or not Analytics Collection was enabled. Analytics Collection is enabled unless

+ 3 - 0
Firebase/Messaging/CHANGELOG.md

@@ -1,3 +1,6 @@
+# 2019-09 -- v4.1.5
+- [fixed] Mute FCM deprecated warnings with Xcode 11 and min iOS >= 10. (#3857)
+
 # 2019-09-03 -- v4.1.4
 - [fixed] Fixed notification open event is not logged when scheduling a local timezone message. (#3670, #3638)
 - [fixed] Fixed FirebaseApp.delete() results in unusable Messaging singleton. (#3411)

+ 1 - 1
Firebase/Messaging/FIRMessaging.m

@@ -874,7 +874,7 @@ const BOOL FIRMessagingIsAPNSSyncMessage(NSDictionary *message) {
 #pragma clang diagnostic push
 #pragma clang diagnostic ignored "-Wunguarded-availability"
     [self.delegate messaging:self didReceiveMessage:remoteMessage];
-#pragma pop
+#pragma clang diagnostic pop
   } else {
     // Delegate methods weren't implemented, so messages are being dropped, log a warning
     FIRMessagingLoggerWarn(kFIRMessagingMessageCodeRemoteMessageDelegateMethodNotImplemented,

+ 4 - 1
Firebase/Messaging/FIRMessagingContextManagerService.m

@@ -149,7 +149,7 @@ typedef NS_ENUM(NSUInteger, FIRMessagingContextManagerMessageType) {
 #pragma clang diagnostic push
 #pragma clang diagnostic ignored "-Wunguarded-availability"
       notification.alertTitle = apsDictionary[kFIRMessagingContextManagerTitleKey];
-#pragma pop
+#pragma clang diagnostic pop
     }
   }
 
@@ -175,7 +175,10 @@ typedef NS_ENUM(NSUInteger, FIRMessagingContextManagerMessageType) {
   if (!application) {
     return;
   }
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
   [application scheduleLocalNotification:notification];
+#pragma clang diagnostic pop
 #endif
 }
 

+ 1 - 1
Firebase/Messaging/FIRMessagingRmq2PersistentStore.m

@@ -106,7 +106,7 @@ NSString * _Nonnull FIRMessagingStringFromSQLiteResult(int result) {
 #pragma clang diagnostic push
 #pragma clang diagnostic ignored "-Wunguarded-availability"
   const char *errorStr = sqlite3_errstr(result);
-#pragma pop
+#pragma clang diagnostic pop
   NSString *errorString = [NSString stringWithFormat:@"%d - %s", result, errorStr];
   return errorString;
 }

+ 1 - 1
FirebaseMessaging.podspec

@@ -1,6 +1,6 @@
 Pod::Spec.new do |s|
   s.name             = 'FirebaseMessaging'
-  s.version          = '4.1.4'
+  s.version          = '4.1.5'
   s.summary          = 'Firebase Messaging for iOS'
 
   s.description      = <<-DESC

+ 4 - 0
FirebaseRemoteConfig/CHANGELOG.md

@@ -1,3 +1,7 @@
+Version 4.4.1
+==================================
+- Fix docs issue. (#3846)
+
 Version 4.3.0
 ==================================
 - Open source. (TBD)

+ 4 - 4
FirebaseRemoteConfig/Sources/Public/FIRRemoteConfig.h

@@ -44,12 +44,12 @@ typedef NS_ENUM(NSInteger, FIRRemoteConfigFetchStatus) {
 
 /// Indicates whether updated data was successfully fetched and activated.
 typedef NS_ENUM(NSInteger, FIRRemoteConfigFetchAndActivateStatus) {
-  // The remote fetch succeeded and fetched data was activated.
+  /// The remote fetch succeeded and fetched data was activated.
   FIRRemoteConfigFetchAndActivateStatusSuccessFetchedFromRemote,
-  // The fetch and activate succeeded from already fetched but yet unexpired config data. You can
-  // control this using minimumFetchInterval property in FIRRemoteConfigSettings.
+  /// The fetch and activate succeeded from already fetched but yet unexpired config data. You can
+  /// control this using minimumFetchInterval property in FIRRemoteConfigSettings.
   FIRRemoteConfigFetchAndActivateStatusSuccessUsingPreFetchedData,
-  // The fetch and activate failed.
+  /// The fetch and activate failed.
   FIRRemoteConfigFetchAndActivateStatusError
 } NS_SWIFT_NAME(RemoteConfigFetchAndActivateStatus);
 

+ 4 - 0
GoogleUtilities/CHANGELOG.md

@@ -1,3 +1,7 @@
+# 6.3.0
+- GULSecureCoding introduced. (#3707)
+- Mark unused variables. (#3854)
+
 # 6.2.5
 - Remove test-only method and update tests to include Catalyst. (#3544)
 

+ 2 - 8
GoogleUtilities/ISASwizzler/GULObjectSwizzler.m

@@ -99,12 +99,9 @@
   Class targetClass = isClassSelector ? object_getClass(_generatedClass) : _generatedClass;
   IMP implementation = method_getImplementation(method);
   const char *typeEncoding = method_getTypeEncoding(method);
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wunused-variable"
-  BOOL success = class_addMethod(targetClass, selector, implementation, typeEncoding);
+  BOOL success __unused = class_addMethod(targetClass, selector, implementation, typeEncoding);
   NSAssert(success, @"Unable to add selector %@ to class %@", NSStringFromSelector(selector),
            NSStringFromClass(targetClass));
-#pragma clang diagnostic pop
 }
 
 - (void)setAssociatedObjectWithKey:(NSString *)key
@@ -139,12 +136,9 @@
     NSAssert(class_getInstanceSize(_originalClass) == class_getInstanceSize(_generatedClass),
              @"The instance size of the generated class must be equal to the original class.");
     objc_registerClassPair(_generatedClass);
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wunused-variable"
-    Class doubleCheckOriginalClass = object_setClass(_swizzledObject, _generatedClass);
+    Class doubleCheckOriginalClass __unused = object_setClass(_swizzledObject, _generatedClass);
     NSAssert(_originalClass == doubleCheckOriginalClass,
              @"The original class must be the same as the class returned by object_setClass");
-#pragma clang diagnostic pop
   } else {
     NSAssert(NO, @"You can't swizzle a nil object");
   }

+ 7 - 7
Metrics/Tests/MetricsTests/example_report.json

@@ -3404,7 +3404,7 @@
               "coverage": 0.8181818181818182
             },
             {
-              "name": "-[FIROptions isAnalyticsCollectionExpicitlySet]",
+              "name": "-[FIROptions isAnalyticsCollectionExplicitlySet]",
               "coverage": 1
             },
             {
@@ -4837,7 +4837,7 @@
               "coverage": 0.8181818181818182
             },
             {
-              "name": "-[FIROptions isAnalyticsCollectionExpicitlySet]",
+              "name": "-[FIROptions isAnalyticsCollectionExplicitlySet]",
               "coverage": 1
             },
             {
@@ -11611,7 +11611,7 @@
               "coverage": 0.8181818181818182
             },
             {
-              "name": "-[FIROptions isAnalyticsCollectionExpicitlySet]",
+              "name": "-[FIROptions isAnalyticsCollectionExplicitlySet]",
               "coverage": 1
             },
             {
@@ -15694,7 +15694,7 @@
               "coverage": 0.8181818181818182
             },
             {
-              "name": "-[FIROptions isAnalyticsCollectionExpicitlySet]",
+              "name": "-[FIROptions isAnalyticsCollectionExplicitlySet]",
               "coverage": 1
             },
             {
@@ -21414,7 +21414,7 @@
               "coverage": 0.8181818181818182
             },
             {
-              "name": "-[FIROptions isAnalyticsCollectionExpicitlySet]",
+              "name": "-[FIROptions isAnalyticsCollectionExplicitlySet]",
               "coverage": 1
             },
             {
@@ -25941,7 +25941,7 @@
               "coverage": 0.8181818181818182
             },
             {
-              "name": "-[FIROptions isAnalyticsCollectionExpicitlySet]",
+              "name": "-[FIROptions isAnalyticsCollectionExplicitlySet]",
               "coverage": 1
             },
             {
@@ -37299,7 +37299,7 @@
               "coverage": 0.8181818181818182
             },
             {
-              "name": "-[FIROptions isAnalyticsCollectionExpicitlySet]",
+              "name": "-[FIROptions isAnalyticsCollectionExplicitlySet]",
               "coverage": 1
             },
             {

+ 1 - 0
Releases/Manifests/6.9.0.json

@@ -2,6 +2,7 @@
   "FirebaseCore":"6.3.0",
   "FirebaseCoreDiagnostics":"1.1.0",
   "FirebaseFirestore":"1.5.1",
+  "FirebaseMessaging":"4.1.5",
   "FirebaseRemoteConfig":"4.4.1",
   "GoogleDataTransport":"2.0.0",
   "GoogleDataTransportCCTSupport":"1.1.0"