【问题标题】:iOS App Won't use custom iCloud containeriOS 应用程序不会使用自定义 iCloud 容器
【发布时间】:2017-10-21 08:35:48
【问题描述】:

所以,我正在开发两个想要使用同一个 iCloud 容器的应用。

我已按照 Xcode 和 Apple 的在线文档中显示的所有步骤进行操作。我在我的应用程序中添加了激活的 iCloud 功能,选中了 CloudKit 复选框,选择了一个我想要使用的自定义容器(显然这两个应用程序都相同)。

应用程序已更改权利文件中的 iCloud 容器标识符,这应该表明一切正常。但是,每当我使用该应用程序并打印我的容器名称时,它都会显示每个应用程序的默认容器名称。

对于这两个应用程序,功能屏幕如下所示:

我创建了一个对象CloudKitController 来管理所有云流量。我在应用程序启动时对其进行初始化,并设置如下变量:

var container:      CKContainer
var publicDB:       CKDatabase
let privateDB:      CKDatabase
var delegate:       CloudKitControllerDelegate?

override init() {
        container = CKContainer.default()
        print(container.containerIdentifier)
        //this prints the name of the default container for the project
        publicDB = container.publicCloudDatabase
        privateDB = container.privateCloudDatabase
    }

我什至访问了开发人员门户并确保我要使用的容器是两个应用程序关联的唯一容器。也没用。

我的问题是:我怎样才能让两个应用(显然来自同一个开发者帐户和配置文件)在一个 iCloud 容器上运行?

【问题讨论】:

  • Edit 您的问题以及显示您如何在两个应用程序中访问CKContainer 的相关代码。
  • 完成!您还需要其他信息吗?我会更乐意提供它!

标签: ios xcode containers icloud cloudkit


【解决方案1】:

您说您希望使用具有特定标识符的特定容器。但是您拥有的代码专门访问应用程序的默认容器。那不是你想要的。

变化:

container = CKContainer.default()

到:

container = CKContainer(identifier: "your shared container id")

有关更多详细信息,请阅读CKContainer 类的文档。

【讨论】:

  • 我认为在应用程序的功能屏幕中选择一个容器会自动将该容器变为默认容器。谢谢!
  • 应用可以同时使用默认容器和任意数量的特定容器。因此,如果默认值神奇地引用了其他特定容器,那就太糟糕了。
猜你喜欢
  • 2012-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多