Необходимо создать plist программно с целью расширения виджета доступа сегодня - PullRequest
0 голосов
/ 15 февраля 2019

Мне нужно получить доступ к списку с TodayViewController из созданного в основной цели.Поэтому мне нужно создать plist с доступом к целевому доступу виджета Today.

Я создал такой список, но мне нужен доступ к этому списку с сегодняшней цели расширения

let InfoDict:NSDictionary = [
    "ParentInfo":"Mathew"
]

DispatchQueue.main.async {
    let isWritten = InfoDict.write(toFile: self.getPlistPath(), atomically: true)
    print("is the file created: \(isWritten)")

}


func getPlistPath()->String{

    let fileManager = FileManager.default

    let documentDirectory = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String
    let path = documentDirectory.appending("/UserConfig.plist")

    if(!fileManager.fileExists(atPath: path)){
        self.saveGlobalValuesToPlist()
    }

    return path

}

1 Ответ

0 голосов
/ 16 февраля 2019

Я думаю, вам нужно поместить файл plist в папку группы приложений:

Шаг 1. Создание группы приложений: Навигатор проектов -> YOUR_APP_TARGET -> Возможности -> Активировать группы приложений -> добавить группы приложенийИдентификатор (обычно group.YOUR_APP_BUNDLE)

Шаг 2: Добавьте этот идентификатор группы приложений в целевой объект виджета, также активировав группу приложений в Capability и выбрав этот SAME ID группы приложений

Шаг 3: Сохранитьваш список в папке группы приложений.Используйте этот код для получения URL-адреса этой папки как из TodayViewController, так и из вашего основного приложения:
guard let appGroupURL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: YOUR_APP_GROUP_ID) else { return }

Надеюсь, это поможет.

...