重置CloudKit可发现性权限

Tom*_*ton 9 ios icloud swift cloudkit

我正在测试通过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)")
        }
    })
Run Code Online (Sandbox Code Playgroud)

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

在Apple的旧论坛上看到了另一个问题帖子(需要登录),说可以通过设置 - > iCloud - > iCloud Drive - >通过电子邮件查找我来重置.但是,这样做并没有给我任何选择:

通过电子邮件查看我的屏幕

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

更新:一些额外的信息:

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

以上引导我怀疑它是服务器端设置.所以我尝试使用我正在使用的帐户登录iCloud.com,然后转到设置 - >数据和安全 - >通过电子邮件查找我.在iOS设备和模拟器上,没有任何选择可以做任何事情:

在iCloud.com上通过电子邮件查找我

那么,有没有什么方法可以重置这个,或者它是固定在石头上并且不可改变,直到太阳膨胀并摧毁地球?

Ant*_*y C 6

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

  • 登录您的CloudKit仪表板
  • 选择你的应用程序的容器
  • 选择你的Development环境
  • 单击Deployment左侧的选项卡,然后单击Admin
  • 单击右上角的Reset Development Environment按钮.

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


far*_*nix 4

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

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