问题标签 [icloud]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
3636 浏览

iphone - NSMetadataQuery 没有完成收集(没有通知)

我正在为我的应用程序(通过 iCloud)制作备份管理器。我做了一些测试,基础工作正常。但几天后它停止了。我NSMetadataQuery用于搜索是否存在备份文件。我的备份文件被命名为例如Backup29112011154133.xml其中数字代表备份日期(格式为ddMMyyyyHHmmss)。我检查它-viewDidAppear

问题是- (void)queryDidFinishGathering:(NSNotification *)notif永远不会执行。我在那里放了断点和 NSLogs 离子,但什么也没发生。

我还尝试检查其他通知,例如“查询确实开始收集”和“查询过程”。仅发布“查询已开始”通知。

我还有注册了 iCloud 并附加了权利文件的 AppID。

你能帮我看看这是怎么回事吗?也许我错过了什么?

0 投票
2 回答
2892 浏览

iphone - 为 iCloud 选择“启用权利”会导致代码设计错误,即使使用正确的分发配置文件也是如此

我已经使用新的配置文件更新并重建了我的应用程序,该配置文件配置了在配置门户中选中的“启用 iCloud”复选框。

接下来,在 XCode 中,对于应用程序项目,我选择了 Targets->Summary->Entitlements 中的“Entitlements”框,如下所示以支持 iCloud。但是,一旦我添加了这个,我就无法构建应用程序,因为我收到了可怕的警告:应用程序未能通过代码验证。签名无效,或未使用 iPhone 分发证书签名。(-19011)

当未选中“启用权利”时,该应用程序可以成功构建且没有代码设计错误,并使用正确的配置文件安装到硬件上。一旦我检查它,它就会得到代码设计错误。

我还尝试使用 ABCDEF.com.myapp(使用我的真实 iCloud ID 和应用程序 ID)更新 com.apple.developer.ubiquity-container-identifiers 值的权利文件。

我究竟做错了什么?任何帮助是极大的赞赏!

在此处输入图像描述

0 投票
1 回答
830 浏览

ios - PFUbiquityRecordsImporter - 不可接受的属性值类型:属性

我将 iCloud 与带有 mac 和 iOS 应用程序的库样式 sqllite 核心数据项目一起使用。除了 1 个实体外,它们都可以同步。

在 ipad 上创建的单个记录尝试下载到 mac 时出现错误:

不可接受的属性值类型:property = "completedDate"; 所需类型 = NSDate;给定类型 = __NSCFNumber; value = 0. 2011-12-02 18:19:58.175 Opus Domini[1653:403] -_PFUbiquityRecordsImporter operation:failedWithError:: CoreData: Ubiquity: Import operation ecountered an error: Error Domain=NSCocoaErrorDomain Code=134060 "A Core Data error发生了。” UserInfo=0x10037a580 {exception=不可接受的属性值类型:property = "completedDate"; 所需类型 = NSDate;给定类型 = __NSCFNumber; value = 0.} 尝试在 URL 处导入日志文件:

两个项目共享相同的模型和数据类,其他类包括具有相同参数的日期字段。有任何想法吗?

0 投票
0 回答
95 浏览

ios - 核心数据库样式按属性合并

关于通过属性进行同步,即当事务合并到您的持久存储时,它会通过该实体的 NSManagedObject 子类的属性设置所有内容。

NSManagedObject 中子类的属性涉及“业务流程”,所以..如果一个设备已经“处理”了实体,为什么其他设备需要再次处理它?

在我的例子中,我有一个具有 status 和 completedDate 属性的 Task 实体。当我将状态设置为已完成时,它会自动将 completedDate 设置为 [NSDate date];这意味着每次合并任务实体记录时,完成日期都会再次更改。

所以我只想知道是否有人知道这是要走的路,还是有办法在不影响业务流程的情况下进行同步?

0 投票
2 回答
2402 浏览

macos - Mac 应用程序上的 Apple iCloud 实施

我知道 iOS 有 API 可以为应用程序集成 iCloud。我也可以将 iCloud 集成到 Mac 应用程序中吗?Mac 应用程序集成 iCloud 的实施会有所不同吗?如果是,是否有任何教程等或参考网站?

0 投票
1 回答
1421 浏览

iphone - NSUbiquitousKeyValueStore 仅在升级应用程序时出错。干净安装应用程序工作正常。iCloud

我在应用商店中有一个现有的应用,我正在添加 iCloud。我已经按照 Apple 的指南以及其他指南进行操作,一切正常。但是我注意到,如果我在设备上安装了我的应用程序的 2.0 版(最后一个生产版本),然后我将 3.0 版(带有 iCloud 的那个)从 Xcode 部署到设备,当我运行应用程序时,我得到:

但是,如果我从设备中删除原始应用程序,然后从 Xcode 部署 3.0,我不会收到错误消息,并且 iCloud 工作正常。

我应该怎么做才能让用户在升级之前不必删除应用程序?

我已经在运行 iOS 5.0.1 的多台设备上尝试过,它们都做同样的事情。

0 投票
2 回答
3193 浏览

persistence - 使用 iCloud 共享 plist 文件

我有一个相对简单的应用程序,它将数据保存到位于文档文件夹中的 plist 文件中。数据在启动时加载到 UITableView 中。然后,用户可以编辑、删除或添加记录,任何更改都会保存回 plist 文件。

现在我想在使用 iCloud 的设备之间共享这些数据(plist 文件)。我查看了文档,我的理解是我需要创建一个 UIDocument 来“管理” plist 文件。

我看过几个 iCloud 教程,但是它们都在 UIDocument 类的属性中存储了一个简单的字符串,而不是整个文件(如 plist)。

如何使用 UIDocument 对象将我的 plist 文件(或任何其他文件)共享到 iCloud?

我会将 plist 文件内容转换为 NSData,然后将其保存在 UIDocument 的属性中吗?我应该改用使用 NsFileWrapper 吗?

我似乎很难理解 UIDocument/iCloud 的安排。我可能让这件事变得更复杂了。

0 投票
3 回答
1712 浏览

ios - 将数据导入 iOS 应用程序,现在 iCloud 取代了 iTunes

到目前为止,可以使用 iTunes 文件共享将数据导入 iPhone 应用程序。数据(例如 pdf、doc 或自定义文件格式)将显示在 /Documents 目录中,并可供应用程序使用。

现在 Apple 引入了 iCloud 并更改了它的 iOS 数据存储指南 (http://developer.apple.com/library/ios/#qa/qa1719/_index.html) 似乎不允许从 PC/Mac 保存文档再到 iOS:

只有用户生成的或应用程序无法重新创建的文档和其他数据,才应存储在 /Documents 目录中,并由 iCloud 自动备份。

我昨天实际上被苹果拒绝了:

我们发现您的应用未遵循 iOS 数据存储指南,这不符合 App Store 审核指南。具体来说,您的应用程序不包含用户生成的内容或您的应用程序无法以其他方式重新创建的内容。

所以这是我的问题:

  1. 有人知道苹果公司对此有何政策吗?如果他们不想使用 iTunes Filesharing 进行文件导入,他们应该在 iTunes 中禁用它...

  2. 您建议将数据导入应用程序的其他方式是什么?我还没有弄清楚,如何使用 iCloud 从 Mac 或 PC 将数据导入我的应用程序/Documents 目录

0 投票
2 回答
3748 浏览

ios - UIManagedDocument 只能读取文件包的文档

我的应用程序正在使用核心数据 SQLite 数据库。我想让我的用户使用 iCloud 在设备之间同步它——我想我可以使用 UIManagedDocument。

我按照 Apple 的文档对它进行了子类化,它在需要创建新的持久性存储文件时起作用。但是,当我尝试使用它打开我的旧持久存储文件时,我收到以下异常抛出错误:

“UIManagedDocument 只能读取文件包的文档”

这是否意味着我需要将旧的持久存储迁移到由 UIManagedDocument 管理的新存储?如果是这样,我是否需要手动执行此操作(即从旧存储中一次读取每条记录并将其写入新存储)?

提前致谢!

0 投票
1 回答
1040 浏览

ios - 将 iCloud 用于自定义同步协议

我想使用 iCloud 在不同设备上运行的应用程序实例之间进行同步(例如,我的用户在他们的 iPad、iPod Touch 和 iPhone 上有数据,他们希望它们都保持同步)。

这种同步有没有好的算法(智能设备,“哑”键值唯一数据存储)?听起来这种同步系统类似于分布式版本控制系统。