Моя пользовательская клавиатура не может обмениваться данными, потому что происходит сбой filecoordinationd (на устройстве) - PullRequest
0 голосов
/ 11 мая 2019

Хотя это нормально работает в симуляторе, на устройстве, когда мое пользовательское расширение клавиатуры пытается открыть UIDocument в общем контейнере, написанном содержащим приложением, это не удается сделать.В консоли регистрируется следующее:

2019-05-10 15:39:09.640305-0700 TagManagerKeyboard[15249:1890026] [claims] 528516A6-B168-43EA-8AAF-B7B1754EE42E grantAccessClaim message failed: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service named com.apple.FileCoordination was invalidated." UserInfo={NSDebugDescription=The connection to service named com.apple.FileCoordination was invalidated.}
2019-05-10 15:39:09.640891-0700 TagManagerKeyboard[15249:1890026] A process invoked one of the -[NSFileCoordinator coordinate...] methods but filecoordinationd crashed. Returning an error.

Об ошибке, сообщенной UIDocument.handleError (: userInteractionPermitted :), не очень полезно:

Error Domain=NSCocoaErrorDomain Code=256 "The file “MyFile” couldn’t be opened." UserInfo={NSURL=file:///private/var/mobile/Containers/Shared/AppGroup/3A486D56-F897-4B13-A09F-0B4183686E2C/MyFile}

Я открываю документ в viewDidLoad() моего UIInputViewController подкласса:

if let container = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.com.mycompany.MyApp")
{
    let containerPath = Path(container.path)
    let file = containerPath + "MyFile"
    self.doc = MyDocument(fileURL: file.url)
    debugLog("Extension doc at \(file)")
    self.doc.open
    { (inSuccess) in
        debugLog("Opened doc: \(inSuccess)")
        NotificationCenter.default.post(name: .dataUpdated, object: nil)
    }
}

Этот сбой происходит в 100% случаев.RequestsOpenAccess - это YES в Info.plist.И снова, это работает в симуляторе.Я также попробовал это на iOS 9.5.3 iPad, и у меня есть подобный сбой.

Есть идеи, почему он вылетает на устройстве?

1 Ответ

0 голосов
/ 15 мая 2019

Это происходит потому, что на моей клавиатуре не было настроено «Разрешить полный доступ».

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...