【问题标题】:Reset CloudKit Discoverability Permission重置 CloudKit 可发现性权限
【发布时间】:2015-10-27 12:08:49
【问题描述】:

我正在测试通过 CloudKit 请求可发现性的代码:

    CKContainer.defaultContainer().requestApplicationPermission(CKApplicationPermissions.PermissionUserDiscoverability, completionHandler: { (status:CKApplicationPermissionStatus, error:NSError!) -> Void in
        if status == CKApplicationPermissionStatus.Granted {
            ...
        } else if status == CKApplicationPermissionStatus.Denied {
            ....
        } else {
            println("Request result: \(status)")
        }
    })

但是我该如何重置这个结果呢?即使我删除并重新安装该应用程序,我也会被问一次并且再也不会被问到。如果我再次运行此代码,我会立即进入完成块,结果与上次相同。

我看到 another questionpost on Apple's old forums(需要登录)说可以通过转到设置 --> iCloud --> iCloud Drive --> 通过电子邮件查找我来重置它。然而,这样做并没有给我任何选择做任何事情:

我确定我可以通过设置 --> 常规 --> 重置 --> 重置所有设置(或者可能重置网络设置)[但请参阅有关此的其他信息] 来重置它,但必须有一些在不破坏一堆不相关设置的情况下重置 CloudKit 权限的方法。如果用户拒绝许可但后来改变主意怎么办?

更新:一些附加信息:

  • 在模拟器上,设置 --> 常规 --> 休息 --> 重置位置和隐私无效。
  • 同样在模拟器上,“重置内容和设置...”无效。
  • 在不同的 Mac 上尝试使用不同的设备会产生完全相同的结果。

以上内容让我怀疑这是服务器端设置。所以我尝试使用我正在使用的帐户登录 iCloud.com,然后转到设置 --> 数据和安全 --> 通过电子邮件查找我。就像在 iOS 设备和模拟器上一样,根本没有任何选项可以做任何事情:

那么,有没有任何方法来重置它,或者它是固定在石头上并且在太阳膨胀并摧毁地球之前不会改变?

【问题讨论】:

    标签: ios swift icloud cloudkit


    【解决方案1】:

    在太阳膨胀并摧毁地球之前,此设置可按如下方式重置:

    • 登录您的 CloudKit 仪表板
    • 选择应用的容器
    • 选择您的Development 环境
    • 单击左侧Admin 下的Deployment 选项卡
    • 点击右上角的Reset Development Environment按钮。

    (这些说明仅适用于 Development 环境。)

    【讨论】:

      【解决方案2】:

      我发现的唯一方法是从 CloudKit 仪表板重置开发环境,应用程序会再次请求许可,但这会删除您的所有数据

      【讨论】:

        【解决方案3】:

        “通过电子邮件查找我”设置目前仅显示您在生产环境中的首选项。如果您的应用程序在开发环境中运行,则目前无法重置这些设置。您是正确的,设置存储在服务器上。

        这是一个已知的错误。在它得到修复之前,解决方法是在您的应用程序部署到生产环境时测试此功能。如果您想避免在您的运输应用的生产容器中进行测试,您可以创建第二个容器用于测试。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-08-29
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多