Проблемы с публикацией неподписанного файла .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.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