重置CloudKit可发现性权限

时间:2015-08-04 22:09:27

标签: ios swift icloud 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)")
        }
    })

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

我看到another questionpost on Apple's old forums(需要登录),表示可以通过转到设置 - >重置iCloud - > iCloud Drive - >通过电子邮件向我看。但是这样做并没有给我任何选择:

Look Me Up By Email screen

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

更新:其他一些信息:

  • 在模拟器上,设置 - >一般 - >休息 - >重置位置&隐私没有效果。
  • 同样在模拟器上,“重置内容和设置...”无效。
  • 尝试使用其他设备在不同的Mac上生成完全相同的结果。

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

Look Me Up By Email at iCloud.com

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

3 个答案:

答案 0 :(得分:6)

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

  • 登录您的CloudKit信息中心
  • 选择您应用的容器
  • 选择您的Development环境
  • 点击左侧Deployment
  • 下的Admin标签
  • 点击右上角的Reset Development Environment按钮。

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

答案 1 :(得分:4)

"通过电子邮件向我看#34;设置目前仅在生产环境中显示您的首选项。如果您的应用在开发环境中运行,则目前无法重置这些设置。您确定该设置存储在服务器上。

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

答案 2 :(得分:0)

我发现只有从CloudKit仪表板重置开发环境,应用程序才会再次请求权限,这将删除所有数据