Проблеми при публикуването на неподписан .apk файл?

Има много въпроси относно подписаните и неподписаните .apk файлове. За тестване и отстраняване на грешки можем да използваме неподписан .apk файл, генериран в папката bin. Този apk файл е генериран с помощта на фиктивен файл за съхранение на ключове. Въпросът ми е защо трябва да използваме подписан apk. не можем ли да публикуваме неподписан apk. какво е грешното с това?


person Buru    schedule 04.03.2014    source източник


Отговори (6)


Има няколко причини, поради които искате да имате подписано приложение за освобождаване. Дори има страхотна статия за това. Ето няколко причини:

  1. Това е метод, чрез който крайният потребител може да провери дали дадено приложение действително е публикувано от същия автор.
  2. Процесът на пускане позволява на Android да използва допълнителни функции, като покупки в приложението. Без него Google не може да потвърди, че приложението наистина е ваше.
  3. Това е начин да се каже, че някой доверен е пуснал приложението.
  4. Това е процес на удостоверяване в две стъпки, за да потвърдите, че приложението ви е ваше. Това дава допълнителен слой сигурност, който не може да бъде направен чрез други средства.
  5. Приложенията, подписани със същия ключ, имат право да споделят ресурси. Сертификатът за отстраняване на грешки се споделя от всички и вероятно не искате да имате това ниво на достъп с всичките си приложения.

По принцип това прави живота на хакера по-труден, което винаги е добре.

Например, може да се даде достъп до акаунта в Google Play на хора, за да променят описанието, но не искате те да качват нови приложения. Без ключа не могат да качат приложението. Освен това, ако паролата ви за Google е разбита, пак не можете да качите приложението. Изисква се да имате файл с личен ключ и ключ, за да го разбиете.

person PearsonArtPhoto    schedule 04.03.2014
comment
вземете сценарий, разработвам приложение за Android за компанията за техните служители (да не се публикува в playStore). мога ли да дам неподписано apk издание. - person Buru; 04.03.2014
comment
Всъщност бихте могли, въпреки че все пак бих го подписал, като практика. Подписването му удостоверява, че приложението е готово за среда без разработка/тестер. - person PearsonArtPhoto; 04.03.2014
comment
добре си обяснил...TnQ - person Buru; 04.03.2014
comment
@PearsonArtPhoto Не можете да дадете неподписано приложение на никого, то не може да бъде инсталирано на устройство/емулатор - person Ajay S; 04.03.2014
comment
@TGMCians: Често инсталирам неподписани приложения, но винаги чрез Eclipse. Предполагам, че можете да ги инсталирате по подобен начин. Предполагам, че подписано би го улеснило. Хммм... Ще редактирам по подходящ начин. - person PearsonArtPhoto; 04.03.2014
comment
@PearsonArtPhoto Не е вярно, не можете да инсталирате неподписани приложения дори чрез Eclipse - person Ajay S; 04.03.2014

Тъй като @Pearson обхвана почти всички неща, но едно нещо, което обичам да покривам.

В Android не можете да инсталирате неподписаното приложение по никакъв начин на вашия телефон/емулатор на програмист. Трябва да подпишете приложението си или чрез отстраняване на грешки, или чрез собствен сертификат.

При инсталиране Android SDK генерира сертификат за подписване „debug“ за вас в хранилище за ключове, наречено debug.keystore. Сертификатът за отстраняване на грешки е валиден само 365 дни.

Така че, когато инсталирате приложението си през който и да е IDE Eclipse/Android Studio, IDE също подписва приложението с помощта на сертификата за отстраняване на грешки.

Актуализация

Въпросът ми е защо трябва да използваме подписан apk. не можем ли да публикуваме неподписан apk. какво е грешното с това?

Трябва да подпишете приложението си със собствен сертификат за хранилище за ключове за освобождаване, защото не можете да публикувате приложение, което е подписано със сертификат за отстраняване на грешки, защото

Една от причините е, че сертификатът ви за отстраняване на грешки изтича в рамките на една година, така че след това не можете да пуснете актуализацията на приложението си. След като сертификатът ви за отстраняване на грешки е изтекъл, това е причината, поради която Google не позволява и някои по-сериозни проблеми със сигурността.

Втората причина е, че системата Android използва сертификата като средство за идентифициране на автора на приложение и установяване на доверителни отношения между приложенията.

person Ajay S    schedule 04.03.2014

Само хора, които са активирали отстраняване на грешки в своите опции за разработчици, ще могат да го стартират. И хората ще трябва да знаят как да активират опциите за разработчици (като щракнат върху „Номер на компилация“ в настройките на телефона седем пъти). Google няма да ви позволи да публикувате apk за отстраняване на грешки, така че хората ще трябва да го заредят отстрани.

person Community    schedule 04.03.2014

Apk с хранилище за ключове за отстраняване на грешки е подписан apk. Неподписан apk файл не може да се качи на устройство. За производство трябва да създадете различно хранилище за ключове, с което да подписвате. Също така, веднъж публикувани, бъдещите актуализации трябва да се извършват с помощта на същото хранилище за ключове. Ако хранилището за ключове е изгубено, приложението не може да се актуализира.

person Yaroslav Mytkalyk    schedule 04.03.2014

Неподписан APK е по-трудно да се проследи до оригиналния автор. Въпреки че по принцип няма нищо лошо в това, Google ви принуждава да подпишете своя APK, преди да го публикувате в Google Play. Поради това Google има властта да отмени сертификата, когато разработчик злоупотребява с Google Play, за да публикува софтуер, т.е. зловреден софтуер.

Освен това, тъй като трябва да платите на Google за сертификат, Google се надява, че злонамерените разработчици няма да плащат отново и отново, за да публикуват там приложение.

person Alex van den Hoogen    schedule 04.03.2014
comment
Всъщност не плащате за сертификат. - person PearsonArtPhoto; 04.03.2014
comment
Винаги съм мислил, че го правиш. Извинявай моя грешка. - person Alex van den Hoogen; 04.03.2014
comment
Не, вие плащате за акаунта, но не и за сертификата. - person PearsonArtPhoto; 04.03.2014

От разработчици на Android:

"Системата Android изисква всички инсталирани приложения да бъдат цифрово подписани със сертификат, чийто частен ключ се държи от разработчика на приложението. Системата Android използва сертификата като средство за идентифициране на автора на приложение и установяване на доверителни отношения между приложенията". .

Прочетете всичко за него тук

person gilonm    schedule 04.03.2014