Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions FirebaseMessaging.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,7 @@ device, and it is completely free.
'Firebase/InstanceID/Public/*.h',
'FirebaseInstallations/Source/Library/Private/*.h',
]
s.requires_arc = [
base_dir + 'Sources/*.m',
base_dir + 'Sources/Token/*.m'
]

s.public_header_files = base_dir + 'Sources/Public/FirebaseMessaging/*.h'
s.library = 'sqlite3'
s.pod_target_xcconfig = {
Expand All @@ -61,7 +58,11 @@ device, and it is completely free.
s.test_spec 'unit' do |unit_tests|
unit_tests.scheme = { :code_coverage => true }
unit_tests.platforms = {:ios => '10.0', :osx => '10.12', :tvos => '10.0'}
unit_tests.source_files = 'FirebaseMessaging/Tests/UnitTests*/*.{m,h,swift}'
unit_tests.source_files = [
'FirebaseMessaging/Tests/UnitTests*/*.{m,h,swift}',
'SharedTestUtilities/URLSession/*.[mh]',
]

unit_tests.requires_app_host = true
unit_tests.pod_target_xcconfig = {
'CLANG_ENABLE_OBJC_WEAK' => 'YES'
Expand Down
8 changes: 4 additions & 4 deletions FirebaseMessaging/Sources/FIRMessaging.m
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,15 @@
#endif

#import "FirebaseMessaging/Sources/Public/FirebaseMessaging/FIRMessaging.h"
#import <GoogleUtilities/GULAppDelegateSwizzler.h>
#import <GoogleUtilities/GULAppEnvironmentUtil.h>
#import <GoogleUtilities/GULReachabilityChecker.h>
#import <GoogleUtilities/GULUserDefaults.h>
#import "Firebase/InstanceID/Private/FIRInstanceID_Private.h"
#import "FirebaseCore/Sources/Private/FirebaseCoreInternal.h"
#import "FirebaseInstallations/Source/Library/Public/FirebaseInstallations/FirebaseInstallations.h"
#import "FirebaseMessaging/Sources/Interop/FIRMessagingInterop.h"
#import "FirebaseMessaging/Sources/Public/FirebaseMessaging/FIRMessagingExtensionHelper.h"
#import "GoogleUtilities/AppDelegateSwizzler/Public/GoogleUtilities/GULAppDelegateSwizzler.h"
#import "GoogleUtilities/Environment/Public/GoogleUtilities/GULAppEnvironmentUtil.h"
#import "GoogleUtilities/Reachability/Public/GoogleUtilities/GULReachabilityChecker.h"
#import "GoogleUtilities/UserDefaults/Public/GoogleUtilities/GULUserDefaults.h"
#import "Interop/Analytics/Public/FIRAnalyticsInterop.h"

#import "FirebaseMessaging/Sources/FIRMessagingAnalytics.h"
Expand Down
4 changes: 2 additions & 2 deletions FirebaseMessaging/Sources/FIRMessagingPubSub.m
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@

#import "FirebaseMessaging/Sources/FIRMessagingPubSub.h"

#import <GoogleUtilities/GULSecureCoding.h>
#import <GoogleUtilities/GULUserDefaults.h>
#import "Firebase/InstanceID/Private/FIRInstanceID_Private.h"
#import "FirebaseMessaging/Sources/Public/FirebaseMessaging/FIRMessaging.h"
#import "GoogleUtilities/Environment/Public/GoogleUtilities/GULSecureCoding.h"
#import "GoogleUtilities/UserDefaults/Public/GoogleUtilities/GULUserDefaults.h"

#import "FirebaseMessaging/Sources/FIRMessagingDefines.h"
#import "FirebaseMessaging/Sources/FIRMessagingLogger.h"
Expand Down
4 changes: 2 additions & 2 deletions FirebaseMessaging/Sources/FIRMessagingUtilities.m
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@

#import "FirebaseMessaging/Sources/FIRMessagingUtilities.h"

#import <GoogleUtilities/GULAppEnvironmentUtil.h>
#import <GoogleUtilities/GULUserDefaults.h>
#import "FirebaseCore/Sources/Public/FirebaseCore/FIROptions.h"
#import "FirebaseMessaging/Sources/FIRMessagingLogger.h"
#import "GoogleUtilities/Environment/Public/GoogleUtilities/GULAppEnvironmentUtil.h"
#import "GoogleUtilities/UserDefaults/Public/GoogleUtilities/GULUserDefaults.h"

static const uint64_t kBytesToMegabytesDivisor = 1024 * 1024LL;
NSString *const kFIRMessagingInstanceIDUserDefaultsKeyLocale =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@

#import "FirebaseMessaging/Sources/Token/FIRMessagingCheckinPreferences.h"

#import <GoogleUtilities/GULUserDefaults.h>
#import "FirebaseMessaging/Sources/FIRMessagingUtilities.h"
#import "FirebaseMessaging/Sources/Token/FIRMessagingCheckinService.h"
#import "GoogleUtilities/UserDefaults/Public/GoogleUtilities/GULUserDefaults.h"

const NSTimeInterval kFIRMessagingDefaultCheckinInterval = 7 * 24 * 60 * 60; // 7 days.
static NSString *const kCheckinKeychainContentSeparatorString = @"|";
Expand Down
46 changes: 34 additions & 12 deletions FirebaseMessaging/Sources/Token/FIRMessagingCheckinService.m
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,13 @@

#import "FirebaseMessaging/Sources/Token/FIRMessagingCheckinService.h"

#import <GoogleUtilities/GULAppEnvironmentUtil.h>
#import "FirebaseMessaging/Sources/FIRMessagingDefines.h"
#import "FirebaseMessaging/Sources/FIRMessagingLogger.h"
#import "FirebaseMessaging/Sources/FIRMessagingUtilities.h"
#import "FirebaseMessaging/Sources/NSError+FIRMessaging.h"
#import "FirebaseMessaging/Sources/Token/FIRMessagingAuthService.h"
#import "FirebaseMessaging/Sources/Token/FIRMessagingCheckinPreferences.h"
#import "GoogleUtilities/Environment/Public/GoogleUtilities/GULAppEnvironmentUtil.h"

static NSString *const kDeviceCheckinURL = @"https://device-provisioning.googleapis.com/checkin";

Expand All @@ -39,19 +39,44 @@
static NSUInteger const kCheckinVersion = 2;
static NSUInteger const kFragment = 0;

@interface FIRMessagingCheckinService () {
NSURLSession *_session;
}
@interface FIRMessagingCheckinService ()

@property(nonatomic, readwrite, strong) NSURLSession *session;

@end

@implementation FIRMessagingCheckinService

- (instancetype)init {
self = [super init];
if (self) {
// Create an URLSession once, even though checkin should happen about once a day
NSURLSessionConfiguration *config = NSURLSessionConfiguration.defaultSessionConfiguration;
config.timeoutIntervalForResource = 60.0f; // 1 minute
config.allowsCellularAccess = YES;

self.session = [NSURLSession sessionWithConfiguration:config];
self.session.sessionDescription = @"com.google.iid-checkin";
}
return self;
}
- (void)dealloc {
[_session invalidateAndCancel];
[self.session invalidateAndCancel];
}

- (void)checkinWithExistingCheckin:(FIRMessagingCheckinPreferences *)existingCheckin
completion:(FIRMessagingDeviceCheckinCompletion)completion {
if (self.session == nil) {
FIRMessagingLoggerError(kFIRMessagingMessageCodeService005,
@"Inconsistent state: NSURLSession has been invalidated");
NSError *error =
[NSError messagingErrorWithCode:kFIRMessagingErrorCodeRegistrarFailedToCheckIn
failureReason:@"Failed to checkin. NSURLSession is invalid."];
if (completion) {
completion(nil, error);
}
return;
}
NSURL *url = [NSURL URLWithString:kDeviceCheckinURL];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setValue:@"application/json" forHTTPHeaderField:@"content-type"];
Expand Down Expand Up @@ -149,18 +174,15 @@ - (void)checkinWithExistingCheckin:(FIRMessagingCheckinPreferences *)existingChe
completion(checkinPreferences, nil);
}
};
NSURLSessionConfiguration *config = NSURLSessionConfiguration.defaultSessionConfiguration;
config.timeoutIntervalForResource = 60.0f; // 1 minute
_session = [NSURLSession sessionWithConfiguration:config];
_session.sessionDescription = @"com.google.iid-checkin";
NSURLSessionDataTask *task = [_session dataTaskWithRequest:request completionHandler:handler];

NSURLSessionDataTask *task = [self.session dataTaskWithRequest:request completionHandler:handler];
[task resume];
}

- (void)stopFetching {
[_session invalidateAndCancel];
[self.session invalidateAndCancel];
// The session cannot be reused after invalidation. Dispose it to prevent accident reusing.
_session = nil;
self.session = nil;
}

#pragma mark - Private
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,13 @@

#import "FirebaseMessaging/Sources/Token/FIRMessagingTokenOperation.h"

#import <GoogleUtilities/GULAppEnvironmentUtil.h>
#import "FirebaseInstallations/Source/Library/Private/FirebaseInstallationsInternal.h"
#import "FirebaseMessaging/Sources/FIRMessagingLogger.h"
#import "FirebaseMessaging/Sources/FIRMessagingUtilities.h"
#import "FirebaseMessaging/Sources/FIRMessaging_Private.h"
#import "FirebaseMessaging/Sources/NSError+FIRMessaging.h"
#import "FirebaseMessaging/Sources/Token/FIRMessagingCheckinPreferences.h"
#import "GoogleUtilities/Environment/Public/GoogleUtilities/GULAppEnvironmentUtil.h"

static const NSInteger kFIRMessagingPlatformVersionIOS = 2;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
*/

#import <TargetConditionals.h>
#if !TARGET_OS_MACCATALYST && !TARGET_OS_IOS
// Skip keychain tests on Catalyst and iOS
#if !TARGET_OS_MACCATALYST && !SWIFT_PACKAGE
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is MacOS ok now? I suspect this should be iOS, tvOS and not Catalyst, not macOS, not Swift Package.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this builds on non swift package, when use swift package, it failed at least for iOS and tvOS locally. I'm guessing CI wasn't running tvOS that's why it was passing for previous change.

// Skip keychain tests on Catalyst and swift package

#import <XCTest/XCTest.h>
#import "OCMock.h"
Expand Down
Loading