5

我有这两个应用程序,一个 iOS 和一个 Mac OS X,每个都有不同的 Bundle ID。

为了让这两个应用程序同步和共享文件,我必须将 iOS 应用程序的 ubiquity 容器添加到 Mac OS X 应用程序中的 ubiquity 容器列表中。

在 Mac OS X 应用程序的 Xcode 摘要中,我无法将其自己的 Bundle ID 添加为普遍存在的容器。Mac OS X 应用程序会将新添加的文件存储在它自己无处不在的地方,因此 iOS 应用程序无法访问它们。

如何正确设置这两个应用程序,以便它们使用相同的通用容器共享和同步所有添加的文件?

4

2 回答 2

1

要允许多个应用程序访问同一个数据存储/无处不在的容器,您需要做一些事情。首先,您需要打开您的 Xcode 项目并按照以下说明进行操作(此处为 Apple 官方文档):

  1. 打开您的 Xcode 项目,然后导航到项目目标设置。单击功能选项卡以打开额外 Apple 服务的项目设置。 Xcode 5.0 项目功能
  2. 然后打开 iCloud 选项ON。在您需要与之共享数据的每个应用程序中,Ubiquity Container ID 应该相同。您与之共享数据的应用程序的捆绑包 ID 不必相同,但它们都需要相同的 Ubiquity 容器 ID 和团队 ID。 Xcode iCloud 项目泛在容器
  3. 要开始在具有相同 iCloud 容器的所有应用程序中使用 iCloud,您需要使用您的团队 ID 和容器 ID 创建 URL。苹果很好地总结了这一点:

    要检索 ubiquity 容器的 URL,您必须将完全限定的字符串传递给 NSFileManager 方法 URLForUbiquityContainerIdentifier:。也就是说,您必须传递您在 .entitlements 属性列表文件中看到的完整容器标识符字符串,其中包括您的团队 ID。您可以将 nil 传递给此方法以检索列表中第一个容器的 URL。


然后,在 iTunes Connect 中设置一个称为iCloud 显示集的东西。这允许您创建一个显示集 ID,然后可以在您的应用程序之间共享该 ID,以便它们可以访问相同的数据。这里有一些有用的链接可以帮助您入门:

以下是设置 iCloud 显示集的方法:

  1. 转到 iTunesConnect 并打开“管理应用程序”部分
  2. 在页面底部,点击指向 iCloud Display Sets 的链接
  3. 单击Create New以添加显示集
  4. 填写所需信息,包括 ID:
    在此处输入图像描述

然后只需将其附加到您的应用程序!希望这有帮助,祝你好运。

于 2013-06-14T21:04:35.643 回答
1

对于我自己的 iOS/Mac 应用程序对,我的 iOS 应用程序带有 BundleID com.alexanderwinn.Example,Mac 应用程序带有com.alexanderwinn.ExampleMac,但它们都共享 ubiquity 容器com.alexanderwinn.Example。它们都没有,甚至 Mac 版本都没有基于 Mac BundleID 的通用容器。我是一个初学者,所以我不能完全详细说明一切工作和中断背后的原因,但它对我来说很好用!

于 2013-06-14T20:47:25.800 回答