1919static NSString *const _PFFileManagerParseDirectoryName = @" Parse" ;
2020
2121static NSDictionary *_PFFileManagerDefaultDirectoryFileAttributes () {
22- #if TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR
22+ #if !PF_TARGET_OS_OSX
2323 return @{ NSFileProtectionKey : NSFileProtectionCompleteUntilFirstUserAuthentication };
2424#else
2525 return nil ;
2828
2929static NSDataWritingOptions _PFFileManagerDefaultDataWritingOptions () {
3030 NSDataWritingOptions options = NSDataWritingAtomic;
31- #if TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR
31+ #if !PF_TARGET_OS_OSX
3232 options |= NSDataWritingFileProtectionCompleteUntilFirstUserAuthentication;
3333#endif
3434 return options;
@@ -92,7 +92,7 @@ + (BFTask *)createDirectoryIfNeededAsyncAtPath:(NSString *)path
9292 }
9393 }
9494
95- #if TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR
95+ #if TARGET_OS_IOS || TARGET_OS_WATCH // No backups for Apple TV, since everything is cache.
9696 if (options & PFFileManagerOptionSkipBackup) {
9797 [self _skipBackupOnPath: path];
9898 }
@@ -246,7 +246,12 @@ - (instancetype)initWithApplicationIdentifier:(NSString *)applicationIdentifier
246246- (NSString *)parseDefaultDataDirectoryPath {
247247 // NSHomeDirectory: Returns the path to either the user's or application's
248248 // home directory, depending on the platform. Sandboxed by default on iOS.
249- #if PARSE_IOS_ONLY
249+ #if PF_TARGET_OS_OSX
250+ NSArray *paths = NSSearchPathForDirectoriesInDomains (NSApplicationSupportDirectory, NSUserDomainMask, YES );
251+ NSString *directoryPath = [paths firstObject ];
252+ directoryPath = [directoryPath stringByAppendingPathComponent: _PFFileManagerParseDirectoryName];
253+ directoryPath = [directoryPath stringByAppendingPathComponent: self .applicationIdentifier];
254+ #else
250255 NSString *directoryPath = nil ;
251256 if (self.applicationGroupIdentifier ) {
252257 NSURL *containerPath = [[NSFileManager defaultManager ] containerURLForSecurityApplicationGroupIdentifier: self .applicationGroupIdentifier];
@@ -255,11 +260,6 @@ - (NSString *)parseDefaultDataDirectoryPath {
255260 } else {
256261 return [self parseLocalSandboxDataDirectoryPath ];
257262 }
258- #else
259- NSArray *paths = NSSearchPathForDirectoriesInDomains (NSApplicationSupportDirectory, NSUserDomainMask, YES );
260- NSString *directoryPath = [paths firstObject ];
261- directoryPath = [directoryPath stringByAppendingPathComponent: _PFFileManagerParseDirectoryName];
262- directoryPath = [directoryPath stringByAppendingPathComponent: self .applicationIdentifier];
263263#endif
264264
265265 BFTask *createDirectoryTask = [[self class ] createDirectoryIfNeededAsyncAtPath: directoryPath
@@ -271,7 +271,9 @@ - (NSString *)parseDefaultDataDirectoryPath {
271271}
272272
273273- (NSString *)parseLocalSandboxDataDirectoryPath {
274- #if TARGET_OS_IPHONE
274+ #if PF_TARGET_OS_OSX
275+ return [self parseDefaultDataDirectoryPath ];
276+ #else
275277 NSString *library = [NSHomeDirectory () stringByAppendingPathComponent: @" Library" ];
276278 NSString *privateDocuments = [library stringByAppendingPathComponent: @" Private Documents" ];
277279 NSString *directoryPath = [privateDocuments stringByAppendingPathComponent: _PFFileManagerParseDirectoryName];
@@ -281,8 +283,6 @@ - (NSString *)parseLocalSandboxDataDirectoryPath {
281283 [createDirectoryTask waitForResult: nil withMainThreadWarning: NO ];
282284
283285 return directoryPath;
284- #else
285- return [self parseDefaultDataDirectoryPath ];
286286#endif
287287}
288288
@@ -294,7 +294,7 @@ - (NSString *)parseCacheItemPathForPathComponent:(NSString *)component {
294294 NSArray *paths = NSSearchPathForDirectoriesInDomains (NSCachesDirectory, NSUserDomainMask, YES );
295295 NSString *folderPath = paths.firstObject ;
296296 folderPath = [folderPath stringByAppendingPathComponent: _PFFileManagerParseDirectoryName];
297- #if !TARGET_OS_IPHONE
297+ #if PF_TARGET_OS_OSX
298298 // We append the applicationId in case the OS X application isn't sandboxed,
299299 // to avoid collisions in the generic ~/Library/Caches/Parse/------ dir.
300300 folderPath = [folderPath stringByAppendingPathComponent: self .applicationIdentifier];
0 commit comments