Я работаю над тем, чтобы принять CKShare
в приложении macOS в Swift 4. Я уже сделал все следующее:
- Создайте
CKShare
и сохраните его с rootRecord
в CloudKit - Добавить участника (
CKShare.Participant
) - Я подтвердил, что
CKShare
находится на сервере CloudKit и что приглашенный мной человек имеет к нему доступ.Вот снимок экрана: https://d.pr/i/0sMFQq
Когда я нажимаю ссылку общего доступа, связанную с CKShare
, он открывает мое приложение, но ничего не происходит и userDidAcceptCloudKitShareWith
не срабатывает.
func application(_ application: NSApplication, userDidAcceptCloudKitShareWith metadata: CKShareMetadata) {
print("Made it!") //<-- This never gets logged :(
let shareOperation = CKAcceptSharesOperation(shareMetadatas: [metadata])
shareOperation.qualityOfService = .userInteractive
shareOperation.perShareCompletionBlock = {meta, share, error in
print("meta \(meta)\nshare \(share)\nerror \(error)")
}
shareOperation.acceptSharesCompletionBlock = { error in
if let error = error{
print("error in accept share completion \(error)")
}else{
//Send your user to where they need to go in your app
print("successful share:\n\(metadata)")
}
}
CKContainer.default().add(shareOperation)
}
Есть ли какая-то схема URL, которую я должен включить в мой info.plist?Или, возможно, протокол, которому я должен соответствовать в своем NSApplicationDelegate
делегате?Я не могу при всей жизни понять, что делать.Заранее спасибо!
Обновление
Я попробовал еще несколько вещей по этому поводу.Когда я открываю ссылку общего доступа в веб-браузере, я вижу это:
![enter image description here](https://i.stack.imgur.com/vHR3j.png)
Нажатие OK заставляет экран исчезать доэто:
![Nothing](https://i.stack.imgur.com/jODd7.png)
Не особенно полезно.:) После этого статус участника в CloudKit по-прежнему Приглашен , поэтому доля по-прежнему не принята.
Когда я нажимаю на ссылку общего доступа в сообщениях, меня показываютвсплывающее окно, похожее на это:
После того, как я нажму кнопку открыть, в доке появится новая копия моего приложения, а затем приложение внезапно закроется.Журнал сбоев гласит:
Завершение работы приложения из-за необработанного исключения «CKException», причина: «В приложении отсутствуют необходимые права com.apple.developer.icloud-services»
Я пытался выключить и снова включить iCloud в разделе «Возможности» XCode, но ничего не изменилось.Я знаю, что это исключение не может быть правильным, потому что я могу нормально запускать свое приложение и использовать CloudKit весь день.Только CKShare
вызывает этот сбой.
Это беспорядок.Спаси меня, Оби-Ван Кеноби, ты моя единственная надежда.