* 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.
* FIRInstanceIDKeyPairStore fix SecKeyRef memory management issue
* [WIP] FIRInstanceIDKeyPairStore - perform operations in the order they were scheduled
* Revert "[WIP] FIRInstanceIDKeyPairStore - perform operations in the order they were scheduled"
This reverts commit 7ff7b51236.
* FIRInstanceIDKeyPairStore - schedule updating public and private keys at once (not from a callback) to avoid modifications of keychain in between. Update `self.keyPair` before updating keychain for all cases.
* Chengelog
* Don't use dispatch_group, rely on `FIRInstanceIDKeychain` serialized implementation instead
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.