Обнаружение хранилища ключей отладки или освобождение хранилища ключей программно - PullRequest
5 голосов
/ 15 июня 2011

Мне было интересно, есть ли способ определить, работает ли программа в хранилище ключей по умолчанию (отладке) (при запуске из eclipse) или в хранилище ключей с подписью (при выпуске на рынок Android)

Я использую Карты Google в своем приложении и хочу программно изменить ключ API Карт соответствующим образом для тестирования и выпуска, поскольку один ключ API работает только для тестирования или релиз.

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

Ответы [ 3 ]

3 голосов
1 голос
/ 15 июня 2011

Я не знаю, как Google Maps делает свое дело, но вот возможная альтернатива: вы можете использовать менеджер пакетов, чтобы получить сертификат, используемый для подписи APK, и сравнить его с вашим известным хранилищем ключей выпуска. Я предлагаю сравнивать его с этим, а не с вашим хранилищем ключей отладки, потому что срок хранения хранилища отладки истекает ежегодно; Срок действия вашего магазина релизов не истечет довольно долго (если вы следовали рекомендациям Google).

0 голосов
/ 15 июня 2011

Оба хранилища ключей отладки и выпуска эквивалентны по своей мощности. Хранилище ключей отладки генерируется автоматически SDK, но вы можете заменить его на любое хранилище ключей, которое вам нравится (на самом деле я делаю это, чтобы иметь одинаковое хранилище ключей отладки на нескольких моих машинах разработки).

Таким образом, в самом общем случае нет различий между хранилищами ключей выпуска и отладки.

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

...