12

カスタム ショートカットを登録するために、App Group コンテナに sqlite データベースを格納しています。

アプリから読み書きできますが、キーボード拡張機能からはできません。拡張機能からデータベースが読み取り専用モードになっているようです。

次のコードを使用してアクセスしています。

let appGroupDirectoryPath = NSFileManager.defaultManager().containerURLForSecurityApplicationGroupIdentifier(appGroupId)
let dataBaseURL = appGroupDirectoryPath!.URLByAppendingPathComponent("database.sqlite")

拡張キーボードからデータベースに書き込めるようにする回避策はありますか、それとも完全に不可能ですか?

データベースはシミュレーターから書き込み可能ですが、実際のデバイスでは書き込みできません。MacOS X と iOS では権限の管理が異なるためだと思います。

4

1 に答える 1

11

理解した。

キーボードの場合、RequestsOpenAccessInfo.plistというファイルにプロパティがあります。これをオンにして、共有コンテナへの書き込みアクセスを有効にすることができます。

ただし、エンド ユーザーはこのキーボードの設定で「フル アクセス」をオンにする必要があり、キーストロークをログに記録する方法についての恐ろしいメッセージが表示されます。

それを説明するAppleの記事は次のとおりです。

カスタム キーボードのユーザー信頼のための設計

于 2015-05-22T01:06:52.730 に答える