* Fix container instantiation timing, IID startup.
The container instantiation could happen at the wrong time, before all
components have been added to the container. This fixes it, and also
moves IID to use the proper instantiation timing instead of relying on
the `configureWithApp:` call. This is part continuation of #3147, where
I'll be fixing the rest of the SDKs in follow up PRs.
* Typo
* Further work on instantiation timing.
This moves the instantiation of components to after the FirebaseApp is
completely configured and assigned, as it should be. This also exposed
a recursive issue with IID calling the Messaging singleton, which in
turn called IID and instantiated multiple instances.
A change was made to break the cycle: the Messaging `isAutoInitEnabled`
call was changed to a static method vs an instance method, allowing IID
to call it during initialization without instantiating the Messaging
instance (since it doesn't have a direct dependency on it).
* Revert unintentional formatting of entire FIRMessaging file.
* Fix tests.
* Format InstanceID.m
* Remove unused import.
* Fix ComponentContainer test.
* Minor PR feedback.
* Ensure Messaging instance is usable after FIRApp's `delete`
This fixes#3411. Test fails before the code change, and succeeds
afterwards.
* Update CHANGELOG.md
* Use Bug number instead of PR number
* Add test_spec for FCM
* FIRMessagingRemoteNotificationsProxyTest - don't use OCMPartialMock([UIApplication sharedApplication]) to avoid crashing tests on iOS 8 (#3094)
This is official image notification support for FCM. Now an image can be rendered in notification when user enable service extension and calling the extensionHelper API.
* FirebaseMessaging: `NSUserDefaults` replaced by `GULUserDefaults`
* FirebaseMessaging: `GoogleUtilities/UserDefaults` added to dependencies. `GoogleUtilities` dependencies version updated to `~> 5.3`
* FIRMessagingPubSub: imports order
The singleton is cached and vended from the Core component system, we
shouldn't wrap it in a dispatch_async or cache it with a global variable.
This matches a change internally that has been made and shipped.
* Prevent Messaging and IID singleton usage during tests.
* Remove other uses of static Messaging instance.
* Removed usages of messagingForTests.
* Remove unused imports, unify testing code.
* Use local import path instead of framework import.