Tag: icloud

即使在执行addSkipBackupAttributeToItemAtURL时,仍然可以备份到iCloud?

我最近的iOS应用程序刚刚被拒绝,因为应用程序正在存储数据的文档,所以它由iCloud备份,这是不允许的,因为数据是从服务器下载。 我正在尝试重build代码,并将数据存储在一个名为Application Application Support的文件夹中时遇到了困难。 但即使我使用addSkipBackupAttributeToItemAtURL它仍然显示为备份到iCloud。 我只针对5.1,所以这不是一个版本问题。 我在下面添加了受影响的代码: NSString *newPath = [NSMutableString stringWithFormat:@"%@/Library/Application Support/", NSHomeDirectory()]; if (![[NSFileManager defaultManager] fileExistsAtPath:newPath]) //Does directory already exist? { if (![[NSFileManager defaultManager] createDirectoryAtPath:newPath withIntermediateDirectories:NO attributes:nil error:&error]) { NSLog(@"Create directory error: %@", error); } } NSString *guidesPath = [newPath stringByAppendingPathComponent:@"/Guides"]; if (![[NSFileManager defaultManager] fileExistsAtPath:guidesPath]) //Does directory already exist? { if (![[NSFileManager defaultManager] […]

iCloud同步钥匙串

在我的应用程序中,我希望能够同步由用户创build的configuration。 我想使用iCloud来同步该configuration,以便在所有设备上始终保持一致。 但是,我使用钥匙串来存储密码。 有没有办法同步钥匙串数据?

为什么连续多次调用NSMetadataQueryDidUpdateNotification?

为了监视我的iCloud容器中的文件更改,我已经注册 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(processiCloudUpdates:) name:NSMetadataQueryDidUpdateNotification object:nil]; 理想情况下,每当我收到更新消息时,我想打开每个UIDocs并检查设置是否已更改。 如果NSMetadataQueryDidUpdateNotification只被调用一次,这将很好。 但是,它被激发了好几次(我没有忘记removeObserver等,有几个实例正在运行),因此,每次更新通知被触发时,加载所有文件是非常不切实际的(如果我有5个文件这被称为4次,我会连续打开20个UIDocs)。 例如,如果我更新一个文件(在我的无处不在的容器中只有一个文件),会发生这种情况: 2012-07-05 10:51:39.565 Meernotes[7842:707] … NSMetadataQuery update 2012-07-05 10:51:42.468 Meernotes[7842:707] … NSMetadataQuery update 2012-07-05 10:51:45.216 Meernotes[7842:707] … NSMetadataQuery update 2012-07-05 10:51:47.036 Meernotes[7842:707] … NSMetadataQuery update 有没有其他方法来确定文件何时更改? NSFileVersion也没有太大的帮助。

iCloud会同步所有应用程序的Document文件夹中的文件吗?

我有一个关于iCloud的问题,希望你能帮助我。 我已经多次阅读了iCloud文档 ,从文档中得到的是iCloud不会将应用程序的Documents文件夹更新到iCloud服务器,除非应用程序configuration了iCloud Entitlements 。 但是,我总是看到一些博客一直在说,iCloud会自动同步设备中所有应用程序的“文档”文件夹中的文件。 我不认为iCloud会这样做,我的意思是在iCloud服务器上只有5GB。 任何人都可以告诉我,如果我是对还是错? 将iCloud同步在所有应用程序的文档文件夹中的文件? 谢谢。

禁用icloud上的文件夹及其所有子文件夹的备份?

我有一个已经运行的企业应用程序,它在文档文件夹内存储了大量的文档。 我希望禁用Documents文件夹内的所有这些文档和文件夹的iCloud备份。 问题是,文件夹内的内容不断dynamic变化,为每个文件添加kCFURLIsExcludedFromBackupKey的想法听起来有点困难,因为我的代码中有多个类可以写入文档目录。 有什么办法可以禁用整个文档文件夹及其子文件夹的上传。

NSMetadataQuery忽略自定义文件包types

我正在使用UIManagedDocument来pipe理我在iCloud中的文件。 设置NSMetadataQuery之后, NSMetadataQuery所示: iCloudQuery = [[NSMetadataQuery alloc] init]; [iCloudQuery setSearchScopes: [NSArray arrayWithObject:NSMetadataQueryUbiquitousDocumentsScope]]; [iCloudQuery setPredicate: [NSPredicate predicateWithFormat:@"%K like %@", NSMetadataItemFSNameKey, @"DocumentMetadata.plist"]]; 我遇到一个奇怪的问题 – 当我的文档没有文件扩展名(例如@"NewDocument2" )或一个像.txt这样的公共扩展名时,元数据查询正确地findDocumentMetadata.plist文件。 但是,当使用我的自定义文件扩展名时,查询从来没有发现任何东西…不是当查询开始时,也不是当我添加一个新的文档。 在我看来,查询可能是看到我的文件与自定义的文件扩展名,并没有意识到,它实际上,是一个目录 (无论如何一个文件包),所以不看里面findDocumentMetadata.plist文件。 不过,我已经在应用程序的info.plist声明了我的自定义UTI。 也许我错误地宣布了我的UTI? 我遵循苹果的指导方针(在“ 基于文档的iOS应用程序编程指南”和“ 统一types标识符概述”中 )创build它,但似乎有些问题。 编辑:在info.plist中的“导出的UTI”下,我的types被设置为符合“com.apple.package”。 编辑:我仍然在这个问题上挣扎。 我现在正在通过不使用文件扩展名来解决这个问题。 当使用自定义文件扩展名时,我正在处理iCloud元数据查询结果,并且DocumentMetadata.plist文件肯定在文件包内,但元数据查询无法看到它。 枚举查询结果时,将以下内容打印到日志中: <iCloud Container URL>/Documents/ <iCloud Container URL>/Documents/New%20Document.spdoc/ <iCloud Container URL>/Documents/New%20Document.spdoc/DocumentMetadata.plist <iCloud Container URL>/Documents/New%20Document.spdoc/StoreContent.nosync/ <iCloud Container URL>/Documents/New%20Document.spdoc/StoreContent.nosync/(A%20Document%20Being%20Saved%20By%20<AppName>%202)/ <iCloud Container […]

在没有iCloud帐户的情况下使用CloudKit时,“无法发送有效签名”错误

我已经提交了一个使用CloudKit到Apple的iOS应用程序。 它被拒绝,因为它要求用户login到iCloud进行访问。 苹果的推理是,即使没有iCloudlogin,公共数据库仍然是可读的。 所以应用程序的一部分应该运作。 我试图修改应用程序,但是当我没有login时,我仍然会遇到这个错误。 <CKError 0x8141a360: "Internal Error" (1/4000); "Couldn't send a valid signature"> 我已经search了networking,解决scheme只是为了login到iCloud。 没有关于这个错误的Apple文档。 有没有人知道如何解决这个问题,而无需login到iCloud帐户? 非常感谢你。

如何将数据从iCloud存储文件迁移到本地存储中的新存储文件?

我在我的应用程序中有iCloud 。 我已经从我的应用程序中删除了iCloud ,但在iOS 6应用程序崩溃,我得到这个消息: -[NSPersistentStoreCoordinator addPersistentStoreWithType:configuration:URL:options:error:](1055): CoreData: Ubiquity: Error:以前使用iCloud集成选项添加到协调器的持久性存储必须始终使用选项字典中的选项添加到协调器。 如果您希望在没有iCloud的情况下使用商店,请将数据从iCloud存储文件迁移到本地存储中的新存储文件。 我怎样才能解决这个错误? 如何将数据从iCloud存储文件迁移到本地存储中的新存储文件?

URLForUbiquityContainerIdentifier总是返回零

URLForUbiquityContainerIdentifier:总是返回nil NSURL *ubiquityURL = [fileManager URLForUbiquityContainerIdentifier:nil]; if (ubiquityURL == nil) 由xcode 4.5构build的应用程序 应用程序已启用iCloud IOSlogin到iCloud帐户 ubiquityURL在debugging中是正常的,但ubiquityURL在分发到应用程序商店后总是nil 。

在多台设备上使用iCloud的EXC_BAD_ACCESS

我正在用iCloud创build一个应用程序。 但是我有一些问题。 它使用NSFileWrapper在iCloud上创build目录,然后在NSFileWrapper目录下创buildNSData(容器)文件。 我正在使用此代码将NSFileWrapper转换为NSMutableArray: NSFileWrapper *MyWrapper=[[[MyDocument data] fileWrappers] objectForKey:@"myFile.doh"]; NSData *MyData=[NSData dataWithData:[MyWrapper regularFileContents]]; NSMutableArray *MyList=[NSPropertyListSerialization propertyListFromData:MyData mutabilityOption:NSPropertyListMutableContainers format:nil errorDescription:nil]; 它只能在已创build此容器的设备上正常工作。 在其他设备上,这个代码的结果是BAD_ACCESS(在代码的第二行,我开始做一些数据)。 在debugging时,函数“regularFileContents”返回正确数据大小的对象,但是当我尝试读取这些数据时,会发生BAD_ACEESS(code = 10)。 我使用ARC,所以这不是内存pipe理的错误。 可能是一些项目/代码标志设置的问题? 有任何想法吗? 谢谢!