Има много въпроси относно подписаните и неподписаните .apk файлове. За тестване и отстраняване на грешки можем да използваме неподписан .apk файл, генериран в папката bin. Този apk файл е генериран с помощта на фиктивен файл за съхранение на ключове. Въпросът ми е защо трябва да използваме подписан apk. не можем ли да публикуваме неподписан apk. какво е грешното с това?
Проблеми при публикуването на неподписан .apk файл?
Отговори (6)
Има няколко причини, поради които искате да имате подписано приложение за освобождаване. Дори има страхотна статия за това. Ето няколко причини:
- Това е метод, чрез който крайният потребител може да провери дали дадено приложение действително е публикувано от същия автор.
- Процесът на пускане позволява на Android да използва допълнителни функции, като покупки в приложението. Без него Google не може да потвърди, че приложението наистина е ваше.
- Това е начин да се каже, че някой доверен е пуснал приложението.
- Това е процес на удостоверяване в две стъпки, за да потвърдите, че приложението ви е ваше. Това дава допълнителен слой сигурност, който не може да бъде направен чрез други средства.
- Приложенията, подписани със същия ключ, имат право да споделят ресурси. Сертификатът за отстраняване на грешки се споделя от всички и вероятно не искате да имате това ниво на достъп с всичките си приложения.
По принцип това прави живота на хакера по-труден, което винаги е добре.
Например, може да се даде достъп до акаунта в Google Play на хора, за да променят описанието, но не искате те да качват нови приложения. Без ключа не могат да качат приложението. Освен това, ако паролата ви за Google е разбита, пак не можете да качите приложението. Изисква се да имате файл с личен ключ и ключ, за да го разбиете.
Тъй като @Pearson обхвана почти всички неща, но едно нещо, което обичам да покривам.
В Android не можете да инсталирате неподписаното приложение по никакъв начин на вашия телефон/емулатор на програмист. Трябва да подпишете приложението си или чрез отстраняване на грешки, или чрез собствен сертификат.
При инсталиране Android SDK генерира сертификат за подписване „debug“ за вас в хранилище за ключове, наречено debug.keystore. Сертификатът за отстраняване на грешки е валиден само 365 дни.
Така че, когато инсталирате приложението си през който и да е IDE Eclipse/Android Studio, IDE също подписва приложението с помощта на сертификата за отстраняване на грешки.
Актуализация
Въпросът ми е защо трябва да използваме подписан apk. не можем ли да публикуваме неподписан apk. какво е грешното с това?
Трябва да подпишете приложението си със собствен сертификат за хранилище за ключове за освобождаване, защото не можете да публикувате приложение, което е подписано със сертификат за отстраняване на грешки, защото
Една от причините е, че сертификатът ви за отстраняване на грешки изтича в рамките на една година, така че след това не можете да пуснете актуализацията на приложението си. След като сертификатът ви за отстраняване на грешки е изтекъл, това е причината, поради която Google не позволява и някои по-сериозни проблеми със сигурността.
Втората причина е, че системата Android използва сертификата като средство за идентифициране на автора на приложение и установяване на доверителни отношения между приложенията.
Само хора, които са активирали отстраняване на грешки в своите опции за разработчици, ще могат да го стартират. И хората ще трябва да знаят как да активират опциите за разработчици (като щракнат върху „Номер на компилация“ в настройките на телефона седем пъти). Google няма да ви позволи да публикувате apk за отстраняване на грешки, така че хората ще трябва да го заредят отстрани.
Apk с хранилище за ключове за отстраняване на грешки е подписан apk. Неподписан apk файл не може да се качи на устройство. За производство трябва да създадете различно хранилище за ключове, с което да подписвате. Също така, веднъж публикувани, бъдещите актуализации трябва да се извършват с помощта на същото хранилище за ключове. Ако хранилището за ключове е изгубено, приложението не може да се актуализира.
Неподписан APK е по-трудно да се проследи до оригиналния автор. Въпреки че по принцип няма нищо лошо в това, Google ви принуждава да подпишете своя APK, преди да го публикувате в Google Play. Поради това Google има властта да отмени сертификата, когато разработчик злоупотребява с Google Play, за да публикува софтуер, т.е. зловреден софтуер.
Освен това, тъй като трябва да платите на Google за сертификат, Google се надява, че злонамерените разработчици няма да плащат отново и отново, за да публикуват там приложение.
От разработчици на Android:
"Системата Android изисква всички инсталирани приложения да бъдат цифрово подписани със сертификат, чийто частен ключ се държи от разработчика на приложението. Системата Android използва сертификата като средство за идентифициране на автора на приложение и установяване на доверителни отношения между приложенията". .
Прочетете всичко за него тук