diff --git a/Parse/Internal/Object/PFObjectPrivate.h b/Parse/Internal/Object/PFObjectPrivate.h index 51c3a5689..5ce305ff2 100644 --- a/Parse/Internal/Object/PFObjectPrivate.h +++ b/Parse/Internal/Object/PFObjectPrivate.h @@ -97,7 +97,7 @@ - (PFObjectEstimatedData *)_estimatedData; -#if PARSE_OSX_ONLY +#if PF_TARGET_OS_OSX // Not available publicly, but available for testing - (instancetype)refresh; diff --git a/Parse/Internal/PFApplication.m b/Parse/Internal/PFApplication.m index c91ac566f..e46c26d8d 100644 --- a/Parse/Internal/PFApplication.m +++ b/Parse/Internal/PFApplication.m @@ -35,7 +35,7 @@ + (instancetype)currentApplication { ///-------------------------------------- - (BOOL)isAppStoreEnvironment { -#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR +#if TARGET_OS_IOS && !TARGET_IPHONE_SIMULATOR return ([[NSBundle mainBundle] pathForResource:@"embedded" ofType:@"mobileprovision"] == nil); #endif diff --git a/Parse/Internal/PFDevice.m b/Parse/Internal/PFDevice.m index 67a9c1df0..642a48491 100644 --- a/Parse/Internal/PFDevice.m +++ b/Parse/Internal/PFDevice.m @@ -133,7 +133,7 @@ - (NSString *)operatingSystemBuild { - (BOOL)isJailbroken { BOOL jailbroken = NO; -#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR +#if TARGET_OS_IOS && !TARGET_IPHONE_SIMULATOR DIR *dir = opendir("/"); if (dir != NULL) { jailbroken = YES; diff --git a/Parse/Internal/PFFileManager.m b/Parse/Internal/PFFileManager.m index ea4eb24be..e898c0b24 100644 --- a/Parse/Internal/PFFileManager.m +++ b/Parse/Internal/PFFileManager.m @@ -19,7 +19,7 @@ static NSString *const _PFFileManagerParseDirectoryName = @"Parse"; static NSDictionary *_PFFileManagerDefaultDirectoryFileAttributes() { -#if TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR +#if !PF_TARGET_OS_OSX return @{ NSFileProtectionKey : NSFileProtectionCompleteUntilFirstUserAuthentication }; #else return nil; @@ -28,7 +28,7 @@ static NSDataWritingOptions _PFFileManagerDefaultDataWritingOptions() { NSDataWritingOptions options = NSDataWritingAtomic; -#if TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR +#if !PF_TARGET_OS_OSX options |= NSDataWritingFileProtectionCompleteUntilFirstUserAuthentication; #endif return options; @@ -92,7 +92,7 @@ + (BFTask *)createDirectoryIfNeededAsyncAtPath:(NSString *)path } } -#if TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR +#if TARGET_OS_IOS || TARGET_OS_WATCH // No backups for Apple TV, since everything is cache. if (options & PFFileManagerOptionSkipBackup) { [self _skipBackupOnPath:path]; } @@ -246,7 +246,12 @@ - (instancetype)initWithApplicationIdentifier:(NSString *)applicationIdentifier - (NSString *)parseDefaultDataDirectoryPath { // NSHomeDirectory: Returns the path to either the user's or application's // home directory, depending on the platform. Sandboxed by default on iOS. -#if PARSE_IOS_ONLY +#if PF_TARGET_OS_OSX + NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES); + NSString *directoryPath = [paths firstObject]; + directoryPath = [directoryPath stringByAppendingPathComponent:_PFFileManagerParseDirectoryName]; + directoryPath = [directoryPath stringByAppendingPathComponent:self.applicationIdentifier]; +#else NSString *directoryPath = nil; if (self.applicationGroupIdentifier) { NSURL *containerPath = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:self.applicationGroupIdentifier]; @@ -255,11 +260,6 @@ - (NSString *)parseDefaultDataDirectoryPath { } else { return [self parseLocalSandboxDataDirectoryPath]; } -#else - NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES); - NSString *directoryPath = [paths firstObject]; - directoryPath = [directoryPath stringByAppendingPathComponent:_PFFileManagerParseDirectoryName]; - directoryPath = [directoryPath stringByAppendingPathComponent:self.applicationIdentifier]; #endif BFTask *createDirectoryTask = [[self class] createDirectoryIfNeededAsyncAtPath:directoryPath @@ -271,7 +271,9 @@ - (NSString *)parseDefaultDataDirectoryPath { } - (NSString *)parseLocalSandboxDataDirectoryPath { -#if TARGET_OS_IPHONE +#if PF_TARGET_OS_OSX + return [self parseDefaultDataDirectoryPath]; +#else NSString *library = [NSHomeDirectory() stringByAppendingPathComponent:@"Library"]; NSString *privateDocuments = [library stringByAppendingPathComponent:@"Private Documents"]; NSString *directoryPath = [privateDocuments stringByAppendingPathComponent:_PFFileManagerParseDirectoryName]; @@ -281,8 +283,6 @@ - (NSString *)parseLocalSandboxDataDirectoryPath { [createDirectoryTask waitForResult:nil withMainThreadWarning:NO]; return directoryPath; -#else - return [self parseDefaultDataDirectoryPath]; #endif } @@ -294,7 +294,7 @@ - (NSString *)parseCacheItemPathForPathComponent:(NSString *)component { NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); NSString *folderPath = paths.firstObject; folderPath = [folderPath stringByAppendingPathComponent:_PFFileManagerParseDirectoryName]; -#if !TARGET_OS_IPHONE +#if PF_TARGET_OS_OSX // We append the applicationId in case the OS X application isn't sandboxed, // to avoid collisions in the generic ~/Library/Caches/Parse/------ dir. folderPath = [folderPath stringByAppendingPathComponent:self.applicationIdentifier]; diff --git a/Parse/Internal/PFLocationManager.h b/Parse/Internal/PFLocationManager.h index 78b032192..768b1e2d5 100644 --- a/Parse/Internal/PFLocationManager.h +++ b/Parse/Internal/PFLocationManager.h @@ -9,10 +9,12 @@ #import +#import + @class CLLocation; @class CLLocationManager; -#if TARGET_OS_IPHONE +#if !PF_TARGET_OS_OSX @class UIApplication; @@ -39,7 +41,7 @@ typedef void(^PFLocationManagerLocationUpdateBlock)(CLLocation *location, NSErro - (instancetype)initWithSystemLocationManager:(CLLocationManager *)manager; -#if TARGET_OS_IPHONE +#if !PF_TARGET_OS_OSX - (instancetype)initWithSystemLocationManager:(CLLocationManager *)manager application:(UIApplication *)application diff --git a/Parse/Internal/PFReachability.m b/Parse/Internal/PFReachability.m index 53cf2aaa4..64fcb733f 100644 --- a/Parse/Internal/PFReachability.m +++ b/Parse/Internal/PFReachability.m @@ -66,7 +66,7 @@ + (BOOL)_reachabilityStateForFlags:(SCNetworkConnectionFlags)flags { } } -#if TARGET_OS_IPHONE +#if !PF_TARGET_OS_OSX if (((flags & kSCNetworkReachabilityFlagsIsWWAN) == kSCNetworkReachabilityFlagsIsWWAN) && ((flags & kSCNetworkReachabilityFlagsConnectionRequired) == 0)) { // ... but WWAN connections are OK if the calling application diff --git a/Parse/PFConstants.h b/Parse/PFConstants.h index 61950c3ed..efda07f86 100644 --- a/Parse/PFConstants.h +++ b/Parse/PFConstants.h @@ -24,9 +24,6 @@ extern NSInteger const PARSE_API_VERSION; #pragma mark - Platform ///-------------------------------------- -#define PARSE_IOS_ONLY (TARGET_OS_IPHONE) -#define PARSE_OSX_ONLY (TARGET_OS_MAC && !(TARGET_OS_IPHONE)) - extern NSString *const _Nonnull kPFDeviceType; ///-------------------------------------- @@ -468,7 +465,7 @@ extern NSString *const _Nonnull PFNetworkNotificationURLResponseBodyUserInfoKey; #endif #ifndef PF_TARGET_OS_OSX -# define PF_TARGET_OS_OSX TARGET_OS_MAC && !TARGET_OS_IOS && !TARGET_OS_WATCH && !TARGET_OS_TV +# define PF_TARGET_OS_OSX (TARGET_OS_MAC && !TARGET_OS_IOS && !TARGET_OS_WATCH && !TARGET_OS_TV) #endif ///-------------------------------------- diff --git a/Parse/PFObject.h b/Parse/PFObject.h index 0e1caf436..4006424e1 100644 --- a/Parse/PFObject.h +++ b/Parse/PFObject.h @@ -394,7 +394,7 @@ NS_REQUIRES_PROPERTY_DEFINITIONS */ @property (nonatomic, assign, readonly, getter=isDataAvailable) BOOL dataAvailable; -#if PARSE_IOS_ONLY +#if TARGET_OS_IOS /** Refreshes the PFObject with the current data from the server. diff --git a/Parse/PFPush.m b/Parse/PFPush.m index 1e4f05251..76e531142 100644 --- a/Parse/PFPush.m +++ b/Parse/PFPush.m @@ -28,6 +28,7 @@ #import "PFQueryPrivate.h" #import "PFUserPrivate.h" #import "Parse_Private.h" +#import "PFApplication.h" static Class _pushInternalUtilClass = nil; @@ -286,9 +287,9 @@ + (void)unsubscribeFromChannelInBackground:(NSString *)channel block:(PFBooleanR #pragma mark - Handling Notifications ///-------------------------------------- -#if PARSE_IOS_ONLY +#if TARGET_OS_IOS + (void)handlePush:(NSDictionary *)userInfo { - UIApplication *application = [UIApplication sharedApplication]; + UIApplication *application = [PFApplication currentApplication].systemApplication; if (application.applicationState != UIApplicationStateActive) { return; } diff --git a/Parse/Parse.h b/Parse/Parse.h index 326d95059..7d964876d 100644 --- a/Parse/Parse.h +++ b/Parse/Parse.h @@ -171,7 +171,7 @@ NS_ASSUME_NONNULL_BEGIN */ + (NSString *)containingApplicationBundleIdentifierForDataSharing PF_WATCH_UNAVAILABLE PF_TV_UNAVAILABLE; -#if PARSE_IOS_ONLY +#if TARGET_OS_IOS ///-------------------------------------- #pragma mark - Configuring UI Settings diff --git a/Parse/Parse.m b/Parse/Parse.m index c677a0d24..e6717c549 100644 --- a/Parse/Parse.m +++ b/Parse/Parse.m @@ -186,7 +186,7 @@ + (BOOL)isLocalDatastoreEnabled { #pragma mark - User Interface ///-------------------------------------- -#if PARSE_IOS_ONLY +#if TARGET_OS_IOS + (void)offlineMessagesEnabled:(BOOL)enabled { // Deprecated method - shouldn't do anything. diff --git a/Tests/Other/ExtensionDataSharing/PFExtensionDataSharingTestHelper.m b/Tests/Other/ExtensionDataSharing/PFExtensionDataSharingTestHelper.m index 5c126b4f9..2e8b7ec69 100644 --- a/Tests/Other/ExtensionDataSharing/PFExtensionDataSharingTestHelper.m +++ b/Tests/Other/ExtensionDataSharing/PFExtensionDataSharingTestHelper.m @@ -32,11 +32,11 @@ + (NSString *)sharedTestDirectoryPath { } + (NSString *)sharedTestDirectoryPathForGroupIdentifier:(NSString *)groupIdentifier { -#if TARGET_OS_IPHONE - return [[PFExtensionDataSharingTestHelper sharedTestDirectoryPath] stringByAppendingPathComponent:groupIdentifier]; -#else +#if PF_TARGET_OS_OSX NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES); return [paths firstObject]; +#else + return [[PFExtensionDataSharingTestHelper sharedTestDirectoryPath] stringByAppendingPathComponent:groupIdentifier]; #endif } diff --git a/Tests/Other/LocationManager/CLLocationManager+TestAdditions.m b/Tests/Other/LocationManager/CLLocationManager+TestAdditions.m index 6e90549d9..db87940f5 100644 --- a/Tests/Other/LocationManager/CLLocationManager+TestAdditions.m +++ b/Tests/Other/LocationManager/CLLocationManager+TestAdditions.m @@ -9,6 +9,8 @@ #import "CLLocationManager+TestAdditions.h" +#import + #import "PFTestSwizzlingUtilities.h" @interface CLLocationManager () @@ -31,7 +33,7 @@ @implementation CLLocationManager (TestAdditions) + (void)setMockingEnabled:(BOOL)enabled { // There is no ability to use real CLLocationManager on Mac, due to permission requests -#if PARSE_OSX_ONLY +#if PF_TARGET_OS_OSX if (!enabled) { return; }