我正在测试通过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 question和post on Apple's old forums(需要登录),表示可以通过转到设置 - >重置iCloud - > iCloud Drive - >通过电子邮件向我看。但是这样做并没有给我任何选择:
我确定我可以通过类似设置重置它 - >一般 - >重置 - >重置所有设置(或者可能重置网络设置)[但请参阅此处的其他信息],但必须有一些方法可以重置CloudKit权限,而无需进行大量不相关的设置。如果用户拒绝许可但后来改变主意怎么办?
更新:其他一些信息:
以上引导我怀疑它是服务器端设置。所以我尝试使用我正在使用的帐户登录iCloud.com,然后转到设置 - >数据&安全 - >通过电子邮件向我看。与iOS设备和模拟器一样,没有任何选择可以做任何事情:
那么,是否有任何方式重置这个,或者它是固定在石头上并且不可改变,直到太阳膨胀并摧毁地球?
答案 0 :(得分:6)
在太阳升起并摧毁地球之前,可以按如下方式重置此设置:
Development
环境Deployment
Admin
标签
Reset Development Environment
按钮。(这些说明仅适用于Development
环境。)
答案 1 :(得分:4)
"通过电子邮件向我看#34;设置目前仅在生产环境中显示您的首选项。如果您的应用在开发环境中运行,则目前无法重置这些设置。您确定该设置存储在服务器上。
这是一个已知的错误。在修复之前,解决方法是在部署应用程序进行生产时测试此功能。如果您想避免在运送应用程序的生产容器中进行测试,可以创建第二个用于测试此容器的容器。
答案 2 :(得分:0)
我发现只有从CloudKit仪表板重置开发环境,应用程序才会再次请求权限,这将删除所有数据