Я хочу поделиться активом CloudKit в общедоступной базе данных с людьми, которые не используют мое приложение. В классе CKAsset есть только свойство fileURL
, которое указывает на локальный файл, поэтому URL-адрес не указан.
Однако в документации для веб-служб CloudKit есть — это запрос на «ссылку на существующие активы», который в своем ответе дает downloadURL
файлу актива.
Вызов этого из моего приложения дает мне код состояния 421, который описан в документации как "AUTHENTICATION_REQUIRED", поскольку для этого требуется указать параметр ckSession
, который является "идентификатором сеанса аутентифицированного пользователя" . Он также передает redirectURL
, где пользователь может ввести свой логин iCloud, а затем быть перенаправленным обратно в веб-приложение, теперь уже с идентификатором сеанса.
Открытие этого URL-адреса внутри приложения не сразу возвращает идентификатор сеанса, а вместо этого ожидает, что пользователь пройдет процесс входа в браузере, прежде чем получит свой идентификатор сеанса.
Это кажется совершенно неправильным и неправильным. Я точно не собираюсь заставлять своих пользователей входить в iCloud через веб-интерфейс. Единственное, чего не хватает для этого URL-адреса веб-служб CloudKit, — это идентификатор сеанса. Есть ли способ получить это с помощью платформы CloudKit? Или есть другой способ узнать URL-адрес этого файла?