Tag: icloud

CoreData和iCloud

我正在开发一个核心数据应用程序,并且正在考虑添加iCloud支持,但是在networking上浏览之后,我经常听说iCloud + CoreData是不可靠的,经常会中断。 这是真的? 我正在阅读的关于核心数据主题的一本书提到iCloud + CoreData在iOS 5中不可靠,但已经得到修复,但是我也听到相反的观点,iCloud + CoreData在iOS 6中依然不可靠。如果是这样自定义格式的数据库有帮助吗? 任何帮助将不胜感激。

为什么ubiquityIdentityToken返回零?

NSFileManager.defaultManager().ubiquityIdentityToken某些设备上的NSFileManager.defaultManager().ubiquityIdentityToken在某些情况下返回nil,即使我在Capabilities中设置了iCloud Documents ,并且在设备上login到iCloud。 ubiquityIdentityToken如何可靠地运行? 难道我做错了什么? 在iPhone上,它会正确地返回一个真实的令牌,但是在iPad上它会返回零,即使我login。

将应用程序还原到新设备时,iOS钥匙串存储是否存在?

我的问题直接与这个问题有关,但不同的是: iOS:新设备或恢复的钥匙串 。 如果您将信息存储在钥匙串存储中,它会被备份到iTunes和iCloud中,以便在将其恢复到其他设备时,数据将被保存。 对于OP自己的问题的部分回答是: 但是现在我读到只有在iTunes中encryption备份(不知道iCloud备份)时才能恢复钥匙串。 接受的答案是: 您可以使用iCloud传输数据,但这并不安全! 保存这个数据ENCRYPTED在你的服务器上,让应用程序读取这个数据将是一个解决scheme。 顺便说一句。 你不应该在钥匙串中保存未encryption的合理数据。 越狱后,钥匙链可以很容易被读取。 开发人员是否可以对代码中的数据进行encryption,或者通过iTunes或iCloud用户如何处理其备份来确定备份是否已encryption? 这个答案对我来说非常重要,因为我正在设置一个应用程序的初始启动date,这个应用程序决定了在应用程序订阅之前必须重新订阅多久。 这些信息必须在旧设备和新设备之间共享,即使应用程序在一段时间内被移除,也仍然保留在一台设备上。

NSMetaDataQuery永远不会callbackNSMetadataQueryDidFinishGatheringNotification

对于我正在写的iCloud插件,我订阅了我的iCloudpipe理器类到这些iCloud NSMetaDataQuery观察者: // Add a predicate for finding the documents NSString* filePattern = [NSString stringWithFormat:@"*.%@", @"*"]; self.metadataQuery = [[NSMetadataQuery alloc] init]; // Before starting to query, it is required to set the search scope. arrayWithObject:NSMetadataQueryUbiquitousDocumentsScope]]; // It is also required to set a search predicate. [self.metadataQuery setPredicate:[NSPredicate predicateWithFormat:@"%K LIKE %@", NSMetadataItemFSNameKey, filePattern]]; // Listen for […]

应用程序删除后的iOS应用程序持久性设置

我们正在创build一个应用程序如下: 用户从2个免费的“令牌”开始 用户可以通过购买$ .99的应用程序购买一包10个代币 我们使用NSUserDefaults实现了这个NSUserDefaults来保存令牌的数量。 有没有办法让我们的免费2令牌设置持久? 即使他们删除了应用程序? 现在你可以删除应用程序并重新安装以获得2个令牌。 iOS 5有NSUbiquitousKeyValueStore将设置保存到iCloud,是更好的? 如果没有,我们将不得不使用一个Web服务… 注:这个应用程序是在MonoTouch,但可能无关的问题。 此外,在我们的应用程序,用户不会重新安装应用程序获得2个令牌(没有其他设置或游戏进度将失去)。

CKFetchNotificationChangesOperation返回旧的通知

我正在使用一个基于CloudKit的应用程序,它使用CKSubscription通知来跟踪对公共数据库的更改。 每当应用程序收到一个推送通知,我检查CKFetchNotificationChangesOperation通知队列,并标记处理后读取每个通知: __block NSMutableArray *notificationIds = [NSMutableArray new]; CKFetchNotificationChangesOperation *operation = [[CKFetchNotificationChangesOperation alloc] initWithPreviousServerChangeToken:self.serverChangeToken]; operation.notificationChangedBlock = ^(CKNotification *notification) { [notificationIds addObject:notification.notificationID]; [self processRemoteNotification:notification withCompletionHandler:completionHandler]; }; __weak CKFetchNotificationChangesOperation *operationLocal = operation; operation.fetchNotificationChangesCompletionBlock = ^(CKServerChangeToken *serverChangeToken, NSError *operationError) { if (operationError) { NSLog(@"Unable to fetch queued notifications: %@", operationError); } else { self.serverChangeToken = serverChangeToken; completionHandler(UIBackgroundFetchResultNewData); // […]

iCloud +在iPhone Documents文件夹中存储媒体

和许多开发者一样,我最近也收到了一封来自苹果的电子邮件,声称我们应该将数据从文档目录移动到另一个文件夹,以便更加精简地备份到iCloud。 在最近的testing中,似乎[你的应用程序]在其“文档”文件夹中存储了相当数量的数据。 由于每天通过Wi-Fi为每个用户的iOS设备执行iCloud备份,因此通过最大限度地减less应用存储的数据量来确保最佳的用户体验非常重要。 instapaper成名的Marco Arment很好的解决了这个问题,那就是存储可下载文件的推荐位置在/ Library / Caches中。 但是问题是,当操作系统决定设备在存储上运行时,/ tmp和/ Caches都可以被“清除”。 如果您的应用程序已被清理,那么由您的应用程序下载并存储在您的用户的数据将消失。 当然,用户会责怪你而不是苹果。 该怎么办?

下载iCloud文件的方法? 很混乱?

我在我的应用程序中支持基本的iCloud支持(同步更改,无处不在等),但迄今为止一个至关重要的缺失是缺less对云中存在(或已有更改)文件的“下载”支持,与当前磁盘上的内容同步。 我在我的应用程序中添加了以下方法,基于一些苹果提供的代码,进行了一些调整: 下载方法: – (BOOL)downloadFileIfNotAvailable:(NSURL*)file { NSNumber* isIniCloud = nil; if ([file getResourceValue:&isIniCloud forKey:NSURLIsUbiquitousItemKey error:nil]) { // If the item is in iCloud, see if it is downloaded. if ([isIniCloud boolValue]) { NSNumber* isDownloaded = nil; if ([file getResourceValue:&isDownloaded forKey:NSURLUbiquitousItemIsDownloadedKey error:nil]) { if ([isDownloaded boolValue]) return YES; // Download the file. NSFileManager* fm = [NSFileManager […]

我如何使用iCloud在我的应用程序之间同步.zip文件?

是否可以将.zipfile upload到iCloud ,然后在所有用户的iOS设备上进行同步? 如果是这样,我该怎么做呢? 如果有任何文件大小限制,那么也提到最大。 文件大小允许。

为什么我的应用程序在使用此代码排除iCloud备份文件后仍然被拒绝?

我已经添加了下面的代码,从iCloud备份中排除文件,但我的申请仍然被拒绝: – (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL { if (&NSURLIsExcludedFromBackupKey == nil) { // iOS <= 5.0.1 const char* filePath = [[URL path] fileSystemRepresentation]; const char* attrName = "com.apple.MobileBackup"; u_int8_t attrValue = 1; int result = setxattr(filePath, attrName, &attrValue, sizeof(attrValue), 0, 0); return result == 0; } else { // iOS >= 5.1 NSLog(@"%d",[URL setResourceValue:[NSNumber numberWithBool:YES] forKey:NSURLIsExcludedFromBackupKey error:nil]); […]