NSUserActivity удаляет все сохраненные действия пользователя, не работает

#swift #siri #sirikit #nsuseractivity

#swift #siri #sirikit #nsuseractivity

Вопрос:

Мой случай предельно прост: Я использую следующую функцию

 private func launchActivity(_ id: String, title: String, invocPhrase: String) {
        userActivity = NSUserActivity(activityType: "Open_bank")
        userActivity?.title = title
        userActivity?.userInfo = ["id": id]
        if #available(iOS 12.0, *) {
            userActivity?.suggestedInvocationPhrase = invocPhrase
            userActivity?.isEligibleForPrediction = true
            userActivity?.persistentIdentifier = id
        } else {
            //Can't actually invoke this block
        }
    }
  

создать определенную пользовательскую активность, а затем добавить ее в Siri, чтобы ее можно было вызвать с помощью by invocPhrase . Вот функция, которая это делает.

 func presentAddOpenBankToSiriVC() {
        guard let userActivity = self.userActivity else { return }
        if #available(iOS 12.0, *) {
            let shortcut = INShortcut(userActivity: userActivity)
            let viewController = INUIAddVoiceShortcutViewController(shortcut: shortcut)
            viewController.modalPresentationStyle = .formSheet
            viewController.delegate = self
            present(viewController, animated: true, completion: nil)
        } else {
            //Can't actually invoke this block
        }
    }
  

Позже я попытаюсь удалить его (а также все другие действия пользователя)

 NSUserActivity.deleteAllSavedUserActivities {}
  

И это просто не удаляет какие-либо действия пользователя, вопреки тому, что написано в документации Apple
https://developer.apple.com/documentation/sirikit/deleting_donated_shortcuts

На самом деле, сначала я попробовал метод

  deleteSavedUserActivities(withPersistentIdentifiers:completionHandler:)
  

с помощью persistentIdentifier UserActivity, но, очевидно, также безрезультатно.

Я понятия не имею, почему он отказывается сдвинуться с места, но был бы благодарен за любую помощь или подсказку