У меня есть приложение для iPhone, в котором использует цепочку ключей для хранилища, связанного с аутентификацией.
У меня также был истекающий профиль Provisioning.
В документации для доступа к цепочке ключей говорится:
На iPhone права на брелоки зависят от профиля предоставления, используемого для подпишите свою заявку. Обязательно последовательно используйте один и тот же профилирование в разных версиях вашего приложения.
Поскольку мой профиль Provisioning Profile истекал, я обновил его (в портале обеспечения), загрузил его и дважды щелкнул по нему, который "установил" его в организатор XCode.
После отправки обновления в приложение в хранилище приложений я в основном вижу пустую цепочку ключей (пользователю предлагается снова войти в систему).
Мой вопрос: обновляет ли профиль подготовки, используемый для подписи приложения, влияет на доступ к keychain, когда обновленный профиль используется для отправки обновления в приложение? Документы просто говорят, что используют "тот же профиль обеспечения", но неясно, относится ли обновленный профиль к другому профилю (как показывает мой опыт, описанный выше).
Что дает?
Обновление
Решено с помощью ответа tc. Глядя на файл embedded.mobileprovision
в каждом из .ipas, представленном яблоку, было показано, что для подписания версии x приложения использовался устаревший сертификат и профиль обеспечения, а для подписывания версии x + 1 используется другой сертификат и профиль обеспечения приложение (виновник: функция "Автоматический выбор профиля" XCode для идентификатора подписи кода).
1-й сертификат и профиль остались после того, как разработчик использовал другую учетную запись программы разработчика iOS для разработки несвязанного приложения (на том же компьютере, с тем же пользователем OSX). Профили профилей в нескольких учетных записях программы для разработчиков iOS, по-видимому, хранятся вместе в ~/Library/MobileDevice/Provisioning Profiles
, поэтому они все являются кандидатами для автоматической настройки профиля XCode.
Я изменил идентификатор подписи кода, выбрав совершенно другой профиль распространения, который я принял как обновленную/действительную версию истекающего профиля распространения, и представил обновление. Одно и то же приложение, другой сертификат, другой профиль подготовки == пустой брелок. D'ОН.