@@ -311,7 +311,10 @@ - (void)processDidCrashDuringPreviousExecution {
311311
312312#pragma mark - API: Logging
313313- (void )log : (NSString *)msg {
314- FIRCLSLog (@" %@ " , msg);
314+ [self waitForContextInit: @" log"
315+ callback: ^{
316+ FIRCLSLog (@" %@ " , msg);
317+ }];
315318}
316319
317320- (void )logWithFormat : (NSString *)format , ... {
@@ -354,17 +357,26 @@ - (void)deleteUnsentReports {
354357
355358#pragma mark - API: setUserID
356359- (void )setUserID : (nullable NSString *)userID {
357- FIRCLSUserLoggingRecordInternalKeyValue (FIRCLSUserIdentifierKey, userID);
360+ [self waitForContextInit: @" setUserID"
361+ callback: ^{
362+ FIRCLSUserLoggingRecordInternalKeyValue (FIRCLSUserIdentifierKey, userID);
363+ }];
358364}
359365
360366#pragma mark - API: setCustomValue
361367
362368- (void )setCustomValue : (nullable id )value forKey : (NSString *)key {
363- FIRCLSUserLoggingRecordUserKeyValue (key, value);
369+ [self waitForContextInit: @" setCustomValue"
370+ callback: ^{
371+ FIRCLSUserLoggingRecordUserKeyValue (key, value);
372+ }];
364373}
365374
366375- (void )setCustomKeysAndValues : (NSDictionary *)keysAndValues {
367- FIRCLSUserLoggingRecordUserKeysAndValues (keysAndValues);
376+ [self waitForContextInit: @" setCustomKeysAndValues"
377+ callback: ^{
378+ FIRCLSUserLoggingRecordUserKeysAndValues (keysAndValues);
379+ }];
368380}
369381
370382#pragma mark - API: Development Platform
@@ -414,19 +426,29 @@ - (void)recordError:(NSError *)error {
414426
415427- (void )recordError : (NSError *)error userInfo : (NSDictionary <NSString *, id> *)userInfo {
416428 NSString *rolloutsInfoJSON = [_remoteConfigManager getRolloutAssignmentsEncodedJsonString ];
417- FIRCLSUserLoggingRecordError (error, userInfo, rolloutsInfoJSON);
429+ [self waitForContextInit: @" recordError"
430+ callback: ^{
431+ FIRCLSUserLoggingRecordError (error, userInfo, rolloutsInfoJSON);
432+ }];
418433}
419434
420435- (void )recordExceptionModel : (FIRExceptionModel *)exceptionModel {
421436 NSString *rolloutsInfoJSON = [_remoteConfigManager getRolloutAssignmentsEncodedJsonString ];
422- FIRCLSExceptionRecordModel (exceptionModel, rolloutsInfoJSON);
437+ [self waitForContextInit: @" recordExceptionModel"
438+ callback: ^{
439+ FIRCLSExceptionRecordModel (exceptionModel, rolloutsInfoJSON);
440+ }];
423441}
424442
425443- (void )recordOnDemandExceptionModel : (FIRExceptionModel *)exceptionModel {
426- [self .managerData.onDemandModel
427- recordOnDemandExceptionIfQuota: exceptionModel
428- withDataCollectionEnabled: [self .dataArbiter isCrashlyticsCollectionEnabled ]
429- usingExistingReportManager: self .existingReportManager];
444+ [self waitForContextInit: @" recordOnDemandExceptionModel"
445+ callback: ^{
446+ [self .managerData.onDemandModel
447+ recordOnDemandExceptionIfQuota: exceptionModel
448+ withDataCollectionEnabled: [self .dataArbiter
449+ isCrashlyticsCollectionEnabled ]
450+ usingExistingReportManager: self .existingReportManager];
451+ }];
430452}
431453
432454#pragma mark - FIRSessionsSubscriber
@@ -456,7 +478,7 @@ - (void)rolloutsStateDidChange:(FIRRolloutsState *_Nonnull)rolloutsState {
456478 reportID: currentReportID];
457479}
458480
459- #pragma mark - Private Helpsers
481+ #pragma mark - Private Helpers
460482- (void )waitForContextInit : (NSString *)contextLog callback : (void (^)(void ))callback {
461483 if (!_contextInitPromise) {
462484 FIRCLSErrorLog (@" Crashlytics method called before SDK was initialized: %@ " , contextLog);
0 commit comments