不受我控制的应用是否可以访问存储在我帐户中的 iCloud/CloudKit 数据?

Is it possible to access iCloud/CloudKit data stored in my account by apps I do not control?

CloudKit 数据以及 iCloud Drive 之外的大多数 iCloud 数据都被沙盒化到各个应用程序。从保护用户数据免于在他们无法控制的情况下从一个应用程序泄漏到另一个应用程序的角度来看,这是有道理的。但是,使用我自己的 iCloud 凭据作为用户,我可以通过拥有各个存储桶的应用程序访问我的所有数据。

作为在我自己的机器上编写代码的技术用户(不是在 App Store 中分发的东西),是否有可能像我自己一样在 iCloud 存储桶中枚举、读取、and/or 写入数据我没有创建的应用程序?

我特别有兴趣在 Mac 上执行此操作(允许使用开发人员工具和未签名的应用程序),并且我愿意假设我知道感兴趣的存储桶的包 ID。能够枚举我的用户存在的所有存储桶会更有用。

如果您拥有与原始应用相同的开发者帐户,那么您可以创建第二个可以使用相同 CloudKit 容器的应用。您必须知道有一个开发人员数据库和一个生产数据库。您只能使用已发布的应用程序访问生产数据库(可能是仅 TestFlight 发行版)

有一种方法可以访问其他人创建的容器。但是您确实需要获得一个 API 访问网络令牌,该令牌只能由原始应用程序的开发者帐户分发。然后,您可以使用 CloudKit Web API

访问容器