Как проверить доступ к свойству цепочки для ключей после обновления через AppStore? - PullRequest
7 голосов
/ 19 апреля 2011

В Руководстве по программированию Keychain Services говорится следующее:

"На iPhone права цепочки для ключей зависят от профиля обеспечения, используемого для подписи вашего приложения. Обязательно последовательно используйте один и тот же профиль обеспечения для разных версий приложения."

С которыми у меня нет проблем, но я хотел бы проверить, что если я предоставлю обновление для моего приложения в AppStore, оно все равно сможет получить доступ к старым значениям, хранящимся в цепочке для ключей. Я попытался протестировать, обновив приложение версией, подписанной специальным профилем распространения, который содержал тот же идентификатор пакета и название продукта, что и оригинал, но не смог получить доступ к старому значению в цепочке для ключей.

Является ли единственной возможностью отправить обновление в AppStore и надеяться, что оно будет работать?

Ответы [ 4 ]

3 голосов
/ 22 июля 2013

Это хороший вопрос.

Одной из основных причин, по которой вам может понадобиться хранить некоторые данные в цепочке для ключей, является предотвращение доступа к ним злоумышленников. Это довольно сухое предложение само по себе, поэтому я рекомендую прочитать о том, как кто-то может получить доступ к этим данным .

Другим способом доступа к данным цепочки ключей может быть создание вредоносного приложения с тем же идентификатором приложения, что и у целевого приложения. Apple защитила этот маршрут, потребовав, чтобы профиль обеспечения был таким же.


Таким образом, чтобы ответить на ваш вопрос, вы можете протестировать данные цепочки ключей в обновлении только из того же профиля обеспечения, т.е.

  1. Ad hoc Ad Ad hoc
  2. App store to app store.

Магазин приложений в магазине приложений на самом деле не вариант, так как к тому времени будет слишком поздно (ваше обновление будет в продаже). Поэтому вместо этого вам нужно удалить приложение из магазина приложений и установить специальную версию. Затем заново создайте свои данные в цепочке для ключей, затем обновите до последней специальной версии и проверьте, что она работает.

Конечно, для этого требуется наличие специальной архивной версии приложения, которая в настоящее время находится в магазине приложений. Если у вас его нет, протестировать обновление невозможно.

0 голосов
/ 19 апреля 2011

На самом деле важен не файл обеспечения, а идентификатор приложения.В частности, идентификатор семян комплекта, который вы задали при создании идентификатора приложения.Доступ к брелку регулируется им.Таким образом, до тех пор, пока в вашем профиле используется идентификатор приложения с тем же идентификатором семян комплекта, вы можете продолжать получать доступ к информации в цепочке для ключей.У меня есть несколько приложений, которые делают это.

Это позволяет вам создавать набор приложений, которые могут получать доступ к одним и тем же элементам цепочки для ключей, если вы настроите их для использования одного и того же идентификатора комплекта.Так что, если вы сделаете облегченную и профессиональную версии, они оба смогут получить доступ к одной и той же информации цепочки для ключей, сохраняя при этом отдельные идентификаторы пакета для таких вещей, как пользовательские настройки по умолчанию.

0 голосов
/ 22 апреля 2011

SFHFKeychainUtils может быть вашим хорошим выбором.Это обертка для доступа к связке ключей.Подробнее о: SFHFKeychainUtils: http://www.ioslib.com/archives/sfhfkeychainutils/

0 голосов
/ 19 апреля 2011

Если я не ошибаюсь, для обновления приложения в магазине приложений необходимо использовать тот же профиль обеспечения.Следовательно, поскольку вы будете использовать один и тот же профиль, у вас должен быть доступ к одним и тем же элементам цепочки для ключей.

...