Когда LICENSED_OLD_KEY возвращается с сервера? - PullRequest
6 голосов
/ 04 июля 2011

Документация для лицензирования приложений описывает LICENSED_OLD_KEY как значение:

Приложение лицензировано для пользователя, но доступна обновленная версия приложения, подписанная другим ключом.

С другой стороны, документация для подписания стратегий гласит:

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

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

Я не могу вспомнить сценарий, в котором можно получить ответ LICENSED_OLD_KEY. Я что-то упустил?

1 Ответ

3 голосов
/ 17 декабря 2011

Документация гласит, что LICENSED_OLD_KEY

... может указывать на то, что пара ключей, используемая установленной версией приложения, недействительна или скомпрометирована.

Похоже, этот код был добавлен для случаев утечки закрытого ключа или невозможности доверять ему. Поскольку текущий механизм IPC даже не знает, какой открытый ключ используется на стороне клиента, я бы предположил, что все имя пакета будет испорчено. Идея состоит в том, что в этом случае приложение должно попросить пользователя обновить его до новой версии, которая не испорчена и предположительно уже существует. Поскольку это обновление потребует перехода на совершенно новый пакет, то, как это должно быть сделано, неясно. Я предполагаю, что этот механизм на самом деле вообще не используется на данный момент, поэтому шансы получить этот код очень близки к нулю. В текущей версии официальной библиотеки LVL этот код обрабатывается так же, как обычный ответ LICENSED.

p.s. Также обратите внимание, что вы путаете пару ключей, используемую для подписи ваших приложений, и пару ключей, используемую для службы LVL. Эти два совершенно разные и не связаны между собой. Интересно, что с последней парой ключей вы даже не узнаете секретный ключ. Вы получаете свой собственный предварительно сгенерированный открытый ключ (по одному на разработчика) с консоли издателя, и это все, что вы получаете.

...