Swift — виджет не может получить доступ к группе приложений

В последнее время я пытался создать виджет и хотел поделиться фрагментом данных между моим виджетом и моим приложением.

static var sharedDataFileURL: URL { let appGroupIdentifier = «group.com.unknownstudios.yk» guard let url = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: appGroupIdentifier) else { preconditionFailure(«Expected a valid app group container») } return url.appendingPathComponent(«userID.plist») }

Приведенный выше код отлично работает в моем приложении, но когда я запускаю его в своем виджете, он дает мне следующий результат. Я проверил, что группа приложений верна и активна как в приложении iOS, так и в виджете.

[unspecified] container_create_or_lookup_path_for_platform: client is not entitled [unspecified] container_create_or_lookup_app_group_path_by_app_group_identifier: client is not entitled Fatal error: Expected a valid app group container: file WidgetExtension/Library.swift, line 143

Изменить:

Я также пробовал использовать UserDefaults, но они тоже не работают.

Вот как я использую FileManager и UserDefaults.

UserDefaults(suiteName: «group.com.unknownstudios.yk»)!.set(«**USERID**», forKey: «userID») let data = Data(«**USERID**».utf8) do { try data.write(to: URL.sharedDataFileURL, options: .atomic) } catch { print(error.localizedDescription) }

И вот как я пытаюсь прочитать данные из виджета:

var userID: String? = { if let userid = UserDefaults(suiteName: «group.com.unknownstudios.yk»)!.string(forKey: «userID») { print(userid) return userid } else if let url = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: «group.com.unknownstudios.yk») { if let data = try? Data(contentsOf: url.appendingPathComponent(«userID.plist»)), let string = String(data: data, encoding: .utf8) { return string } } return nil }()

Группы приложений WidgetExtension:

Основное приложение, группы приложений:

Источник: ledsshop.ru

Стиль жизни - Здоровье!