Страницы

Поиск по вопросам

вторник, 28 января 2020 г.

Разница между .apk и signed .apk

#android


В чем разница между .apk и signed .apk? При установке обоих разницы не нашел.
    


Ответы

Ответ 1



Несмотря на очевидную проблемность вопроса, вопрос таки имеет право на жизнь. На самом то деле если быть точным есть 3 варианта подписывания/неподписывания APK (а не 2 как многие думают): Классический self-signed APK, когда приложение подписывается т.н. debug ключом. Debug ключ можно либо сгенерировать самостоятельно, либо он генерируется автоматически при установке Android SDK. Ключ лежит в каталоге: HOME/.android/debug.keystore. Debug ключ вполне себе такой нормальный ключ за вычетом того, что с таким ключом невозможно выставить приложение в любой нормальный маркет - a.k.a Google Play, Amazon, Samsung и проч. Однако, приложение с такой подписью можно устанавливать практически на любое реальное устройство, эмулятор и третьеразрядные маркеты (типа blackmart и проч.). Скорее всего ТС имеет ввиду под неподписанным именно этот вариант. Т.н. релиз APK подписывается стандартным девелоперским ключом, ключ генерируется самостоятельно 1 раз при создании девелоперского аккаунта в Google Play - потеря ключа равносильна потере девелоперского аккаунта. Как уже говорилось выше: без подписи таким ключом нормальные маркеты приложение не принимают. Приложение подписанное таким ключом можно поставить куда угодно и как угодно: устройства, маркеты, эмуляторы. Некоторые IDE умеют генерировать т.н. unsigned APK - то есть APK вообще без подписи каким либо ключом. На самом то деле подписывание APK это последний этап сборки, так что всегда можно выцепить (если знать как) неподписанный экземпляр APK. Например, в Android Studio неподписанный экземпляр APK лежит в: build/outputs/apk/*-unsigned.apk. Неподписанный APK невозможно поставить ни в один нормальный девайс (ну может в левые китайские разве что), не говоря уже о маркетах. Неподписанный APK можно поставить только на эмулятор. P.S. Зачем нужна подпись? Дело в том, что подпись дает четкую привязку приложение-девелопер-аккаунт. А в аккаунте девелопера (согласно последним веяниям) - указан домашний адрес, телефончик и проч. интересные детали бурной личной жизни разработчика. Так что случись что, за разработчиком сразу придут компетентные органы :)

Комментариев нет:

Отправить комментарий