Мое приложение имеет разрешение. В ответ, если я вошел в систему, я получаю токен, который я храню в NSUserDefaults
.IOS расширение добавления нового выпуска NSUserDefaults после обновления из магазина приложений
Как работает текущее приложение: Когда я нажимаю кнопку входа, приложение отправляет имя пользователя и логин на сервер, в ответ приложение получает токен, если успех.
У меня есть пользователь сохранить с лексемами и другим полученным способом информации, которая содержит:
- (void)saveUserWithInfo...{
...
[[NSUserDefaults standardUserDefaults] setObject:token
forKey:kUserToken];
Все отлично работает на этой стадии с маркером в приложении.
Для расширения IOS я хочу использовать этот маркер, чтобы проверить, если пользователь вошел в систему или нет. Я добавил следующую строку в метод сохранения пользователя выше:
NSUserDefaults *sharedDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.mayapp"];
[sharedDefaults setObject:token
forKey:kUserToken];
Как вы можете видеть, что я также сохранить маркер к совместно по умолчанию пользователя, и я могу простой запрос лексема из этого нового хранилища.
Проблема:
Когда я проверить это первый раз, когда он работает, как нужно, прежде чем я загрузить его в магазин. У меня была версия в App Store, которая не содержала расширения iOS и новое хранилище общего доступа NSUserDefaults
, которое должно содержать токен.
После того, как я обновил версию до новой и загрузил ее, я открыл ее при первом расширении, но он показал мне ошибку, что пользователь не вошел в систему, что кажется правильным, потому что у общего хранилища NSUserDefaults
нет токена. В моем текущем рабочем процессе токен можно сохранить после нажатия кнопки входа. Но после обновления с версии без расширения до версии с расширением из App Store, мой пользователь все еще находится в конечно, для приложения, потому что оригинальный NSuserDefaults
содержит маркер, но новый общий NSUserDefaults
еще не получил фишку, потому что мы должны войти и затем войти в систему чтобы он работал.
Мой вопрос в том, как установить токен на новый общийNSUserDefaults
без выхода из системы, а затем логин назад. Конечно, когда я войти в системе он начинает вызывать все новые строки из обновлений и есть мой новый общегоNSUserDefaults
, которые я добавил для расширения IOS. Таким образом, после нового входа в систему он будет содержать маркер, и если открыть расширение это работает, но сначала начинают сразу же после версии обновлений из App Store показывают ошибки, что пользователь не вошел в систему - которая прямо из-за нового добавил совместноNSUserDeafults
да я думаю, что если приложение выходит на передний план, мы можем проверить его и установить нужный ключ, если он существует. Но что вы имеете в виду о брелках, можете ли вы поделиться ссылкой? –
Хранение жетонов в пользовательских настройках по умолчанию небезопасно, такая информация должна храниться в цепочке ключей – Wain