У меня есть приложение + расширение, и я сделал общее хранилище следующим образом
extension UserDefaults {
static let suiteName = "group.myApp"
static let extensions = UserDefaults(suiteName: suiteName)!
private enum Keys {
static let personNames = "personNames"
}
var personNames: [String] {
get {
guard let array = UserDefaults.extensions.array(forKey: Keys.personNames) as? [String] else {
return []
}
return array
}
set {
UserDefaults.extensions.setValue(newValue, forKeyPath: Keys.personNames)
}
}}
Но когда я отлаживаю приложение, я вижу адрес памяти A и правильные значения (потому что я помещаю значения через Mainприложение, но когда я отлаживаю расширение, у меня есть адреса памяти B и никаких значений внутри.
Я использую одну и ту же группу AppGroup как для приложения Main, так и для приложения Extension, и я получаю доступ к данным, подобным этому
let personNames = UserDefaults.extensions.personNames
Проблема в том, что я использую бесплатную учетную запись Apple Id? У меня есть возможность создавать группы с этой учетной записью, поэтому я сомневаюсь.