Нет доступа к каталогу группы приложений из расширения приложения
У меня есть приложение (swift 4, iOS 11), с расширением приложения (клавиатура). Приложение создает json
файл, который будет сохранен в каталоге группы приложений. Это следующий код:
func testingAppGroups(){
let exampleJson = """
{
"dataRelease": "27.07.2018",
"getDataDate": "02.8.2018"
}
"""
let groupID = "group.myApp"
let fileManger = FileManager.default
guard let groupURL = fileManger.containerURL(forSecurityApplicationGroupIdentifier: groupID) else {
fatalError("APP.ViewController: Could not open shared Group dir")
}
let storagePathURL = groupURL.appendingPathComponent("source.json")
let storagePath = storagePathURL.path
print("Source.json exist : \(fileManger.fileExists(atPath: storagePath))")
print("Path : \(storagePath)")
if !fileManger.fileExists(atPath: storagePath){
fileManger.createFile(atPath: storagePath, contents: exampleJson.data(using: .utf8), attributes: nil)
}
do {
let data = try Data(contentsOf: storagePathURL, options: .mappedIfSafe)
let jsonResult = try JSONSerialization.jsonObject(with: data, options: .mutableLeaves)
print(jsonResult)
} catch {
// handle error
}
}
Сейчас я пытаюсь прочитать json
файл из каталога группы приложений в моем расширении приложения:
func testingAppGroups(){
let groupID = "group.myApp"
let fileManger = FileManager.default
guard let groupURL = fileManger.containerURL(forSecurityApplicationGroupIdentifier: groupID) else {
print("APPEX: Could not open shared Group dir")
return
}
let storagePathURL = groupURL.appendingPathComponent("source.json")
let storagePath = storagePathURL.path
do {
let data = try Data(contentsOf: storagePathURL, options: .mappedIfSafe)
let jsonResult = try JSONSerialization.jsonObject(with: data, options: .mutableLeaves)
print(jsonResult)
} catch {
// handle error
}
}
Если я запускаю свое приложение в симуляторе, расширение приложения отменяет функцию в guard
с выхода консоли:
APPEX: не удалось открыть общий каталог группы
Мой вопрос:
Что я не прав? Кажется, расширение приложения не имеет доступа к каталогу группы приложений. Я с нетерпением жду каждого намека:-)