Я видел пару вопросов по этому поводу и перепробовал все предоставленные ответы, и это все еще не работает для меня.
Я пытаюсь поделиться несколькими небольшими фрагментами данных (строки и BOOL) между моим приложением для iPhone и его расширением WatchKit. (Если это имеет значение, информация считывается GlanceController приложения WK)
Через сайт разработчика я создал группу приложений (group.com.theYawns.Sorcerers-Apprentice). Если я посмотрю на «Идентификаторы приложений», у меня будет два идентичных идентификатора для моего приложения (com.theYawns.Sorcerers-Apprentice) плюс один для расширения (com.theYawns.Sorcerers-Apprentice.watchkitextension). В каждом из них включена «Группа приложений» (как для разработки, так и для распространения), и группа приложений выбирается, если я редактирую идентификатор приложения.
Я включил «Группы приложений» в возможностях как для приложения, так и для расширения. Меня беспокоит то, что периодически — несколько раз в день, но не при каждой сборке — если я захожу и смотрю на вкладку «Возможности», у меня появляется красный восклицательный знак с надписью «Добавить права на группы приложений» в ваш файл прав. Если я посмотрю на файл прав, права там есть, и если я нажму «Исправить проблему», красный восклицательный знак изменится на галочку. Но тот факт, что это нужно делать несколько раз в день, меня беспокоит, что что-то не так.
Я много раз обновлял свои профили подготовки в настройках XCode, и хотя я не вижу значок групп приложений под правами, при наведении курсора я вижу группы приложений во всплывающей подсказке.
Как в моем приложении, так и в расширении я получаю ссылку на пользовательские значения по умолчанию через
NSUserDefaults *sharedAppDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.theYawns.Sorcerers-Apprentice"];
Я также пробовал добавлять [sharedAppDefaults synchonize]
после каждой записи и до того, как мой WatchKit попытается прочитать, на всякий случай, если что-то не сбрасывается. (Никакой разницы).
Идентификатор моего пакета расширений WatchKit отличается от моего идентификатора пакета приложений для iPhone, что является одним из ответов, которые я видел в другой ветке.
Я также добавил NSTimer для обновления взгляда каждые 10 секунд, поэтому, если возникнет проблема со временем при получении изменений, я ожидаю, что она разрешится сама собой после одного или двух циклов обновления, но это не так.
Действительно в тупике ... кажется, другие решили свою проблему с помощью ответов из других тем, но ни один из них не помог мне.
Другие темы, которые я искал, включают:
Почему группы приложений не работают внутри моего расширения WatchKit? а>