Подтвердить что ты не робот

Phonegap, запущенный из CLI с --release и самозаверяющим приложением, требует от меня исправления cordova.js

Я полагаю, что я делаю что-то неправильно, но мне нужно было запланировать https://github.com/phonegap/phonegap/blob/master/lib/android/bin/templates/cordova/lib/cordova.js#L313 таким образом (добавьте "несогласованное" соответствие токенов):

if (fso.GetExtensionName(path) == 'apk' && !path.match(/unaligned/) && !path.match(/unsigned/)) {
      path_to_apk = out_files.item();
      break;
}

в противном случае "unsigned" apk сначала будет найден и установлен, и он не будет подписан. Я использую CLI для сборки и запуска apk. В режиме отладки это нормально, очевидно, потому что подписание имеет другой путь.

Джованни

4b9b3361

Ответ 1

Я не уверен, что вы сделали, чтобы подписать ваше приложение, но вот что сработало для меня:

Обновление (4/14/14)

На самом деле существует простой способ сделать это все в одной команде, как только вы настроите правильную конфигурацию, как описано в этом ответе SO: Автоматизация для выпуска Android Я также написал сообщение в блоге об этом здесь: http://www.adamwadeharris.com/android-automation/

Убедитесь, что ваше приложение прошло успешно

Убедитесь, что вы установили свой номер версии в AndroidManifest.xml. Google Play не примет его, если он не отличается от предыдущих версий в магазине. versionCode представляет собой целочисленное значение, поэтому просто увеличивайте его на 1 каждый раз, когда вы отправляете независимо от того, будет ли это основное или небольшое обновление. versionName не используется ни для чего, кроме отображения для пользователей и его строки, чтобы вы могли назвать ее, как хотите. Например, вы можете установить его в 1.0.3, в то время как versionCode может быть 3. (http://developer.android.com/tools/publishing/versioning.html#appversioning)

http://schemas.android.com/apk/res/android" >

Создать файл хранилища ключей

Создайте файл хранилища ключей и установите пароль. Я не буду вдаваться в подробности о том, как это сделать на самом деле. Просто убедитесь, что вы не потеряете этот файл. Если вы потеряете его, и вам нужно создать новый, он станет новым приложением, когда вы попытаетесь добавить его в Google Play Store. (http://developer.android.com/tools/publishing/app-signing.html#cert)

Всегда используйте другой файл хранилища ключей для каждого приложения, потому что его секретный ключ для загрузки приложений в магазин. Если вы когда-нибудь решите перенести свое приложение на другого разработчика, вам придется предоставить файл хранилища ключей, и если вы также используете это хранилище ключей для других приложений, у вас возникнет проблема с безопасностью. (http://developer.android.com/tools/publishing/app-signing.html#secure-key)

Поместите файл хранилища ключей где-нибудь на вашем компьютере. Это не имеет никакого значения, где.

Сообщите ant, где ваш файл хранилища ключей для этого приложения

Тогда вам просто нужно сообщить ant, где файл хранилища ключей находится в вашей папке проекта Android (для phonegap его в платформах /android ) и создать файл ant.properties и поместить в него следующее:

key.store=/Users/username/Documents/path/to/my-release-key.keystore
key.alias=app_name

Где key.store равен пути к файлу хранилища ключей, начинающемуся с C Drive, а key.alias - это то, что вы хотите назвать коротким. Вы используете псевдоним в следующих командах.

Создайте приложение

Откройте командную строку и перейдите к проекту и запустите сборку телефонных звонков.

phonegap build android

в платформах /android/bin вы должны иметь:

AppName.ap_
AppName.ap_.d
AppName-debug.apk
AppName-debug-unaligned.apk
AppName-debug-unaligned.apk.d

Войдите в режим выпуска

Затем перейдите в каталог android и запустите ant release:

cd platforms/android
ant release

Он запросит у вас пароль к хранилищу ключей и пароль для псевдонима 'app_name. Введите пароль к хранилищу ключей для них.

В платформах /android/bin вы также должны иметь версии релизов приложения:

AppName-release.apk
AppName-release-unaligned.apk
AppName-release-unsigned.apk
AppName-release-unsigned.apk.d

Теперь перейдите в каталог bin:

cd bin

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore /Users/username/Documents/path/to/my-release-key.keystore AppName-release-unsigned.apk app_name

Обновление -. В соответствии с приведенным ниже замечанием вы не получите предупреждение на следующем шаге, если вы используете -sigalg SHA1withDSA -digestalg SHA1 вместо SHA1withRSA

Введите пароль к хранилищу ключей

jarsigner -verify -verbose -certs AppName-release-unsigned.apk

Если вы получите такое предупреждение, игнорируйте его: Предупреждение: в этой банке содержатся записи, цепочка сертификатов которых не проверена.

zipalign -v 4 AppName-release-unsigned.apk AppName.apk

он скажет: Успешное подтверждение

И ваш последний apk (AppName.apk) будет создан в каталоге bin.

(http://developer.android.com/tools/publishing/app-signing.html#releasemode)

Затем вы можете загрузить в Google Play.

Надеюсь, это поможет. Дайте мне знать, если у вас есть вопросы.

http://www.adamwadeharris.com/sign-publish-phonegap-app-google-play-store-windows/

Ответ 2

Перед запуском сборки убедитесь, что вы создаете правильные ключи.

Пример:

keytool -genkey -v -keystore CHANGETHIS.keystore -alias CHANGETHIS -keyalg RSA -keysize 2048 -validity 10000

Теперь запустите команду сборки

Пример:

cordova build android --release