问题标签 [marmalade-edk]

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 投票
1 回答
2148 浏览

ios - 如何在不使用 Xcode 的情况下将 iCloud Documents 功能添加到我的应用程序?

当执行以下两行之一时,我的应用程序崩溃并显示“应用程序初始化文档选择器缺少 iCloud 权利”:

Document Picker Programming Guide声明“在您的应用程序可以使用文档选择器之前,您必须在 Xcode 中打开 iCloud Documents 功能。”

但是,我的应用程序不是用 Xcode 构建的:它是使用第三方工具(跨平台工具包,Marmalade)构建的,所以我不能这样做。

应该仍然可以手动打开此应用程序的 iCloud 文档功能——iCloud 中的开关只是自动执行该过程——但我尝试这样做并没有解决崩溃问题。

到目前为止我尝试过的

Xcode 显示了它在打开 iCloud 时执行的步骤:

  1. 将“iCloud”权利添加到您的 App ID
  2. 将“iCloud 容器”权利添加到您的 App ID
  3. 将“iCloud”权利添加到您的权利文件
  4. 链接 CloudKit.framework

我还找到了 Apple 的Entitlements Troubleshooting TechNote,它描述了可以用来检查以下步骤是否正确执行的步骤。

我在我的 App ID 上启用了 iCloud:

显示 iCloud 已启用的 App ID 的屏幕截图

我不确定这是否需要使用文档选择器的简单导入和导出操作,但我还设置了一个 id 的 iCloud 容器iCloud.com.[company].[app]

我已生成包含 iCloud 权利的更新配置文件:

显示 iCloud 服务已启用的配置文件的屏幕截图

我使用以下命令检查了下载的配置文件:

它包括以下条目:

Marmalade 使用此配置文件为应用程序生成权利文件。

我已经使用以下命令检查了生成的权利:

这给出了以下输出:

但是,每当调用函数时,应用程序仍然会崩溃。

我还找到了这个在 Marmalade 应用程序中设置 iCloud 的旧指南。大多数步骤似乎不再是必要/可能的,但我按照建议将application-identifier密钥添加到我的 Info.plist。

我还需要做什么才能将 iCloud Documents 功能添加到我的应用程序中?