我想与不使用我的应用程序的人共享公共数据库中的 CloudKit 资产。在 CKAsset 类中,只有一个fileURL
指向本地文件的属性,因此没有给出 URL。
然而,在 CloudKit Web Services 的文档中,有一个“引用现有资产”请求,它在其响应中给出了downloadURL
资产文件。
从我的应用程序调用它会给我一个 421 状态代码,在文档中描述为“AUTHENTICATION_REQUIRED”,因为它需要一个ckSession
参数,它是一个“经过身份验证的用户的会话标识符”。它还传递了一个redirectURL
,用户可以在其中输入他们的 iCloud 登录信息,然后被重定向回 Web 应用程序,现在带有一个会话标识符。
在应用程序中打开此 URL 不会立即返回会话标识符,而是希望用户在收到他们的会话 ID 之前在浏览器中完成登录过程。
这似乎完全偏离了轨道,而且是错误的做法。我当然不会让我的用户通过网络界面登录 iCloud。该 CloudKit Web 服务 url 唯一缺少的是会话 ID。有没有办法让我使用 CloudKit 框架来获得它?还是有其他方法可以让我找到这个文件的 URL?