2016-01-23 3 views
1

Я пытаюсь выпустить Android-приложение React-Native, используя Codepush от Microsoft для этого, выполнил данную инструкцию на веб-сайте и смог собрать файл пакета и успешно отпустить его на этапе постановки, но didn ' я вижу обновленные изменения на мобильном телефоне, которые я выпустил.Codepush React-Native релиз для Android-андроида

Во-первых, я установил приложение на мобильный, используя usb (Run on device).

После этого внесите некоторые изменения в приложение и освободите его при создании с использованием Codepush, но при перезапуске приложения на мобильном устройстве не отображаются изменения.

https://github.com/Microsoft/react-native-code-push#getting-started Android Настройка

приложение/build.gradle: -

defaultConfig : versionName: "1.0.0", 

signingConfigs : release { storeFile file("my-release-key.keystore") 
      storePassword "myapp" 
      keyAlias "alias-key" 
      keyPassword "myapp" 
     } 

buildTypes: signingConfig signingConfigs.release 

dependencies: compile project(':react-native-code-push') 

setting.gradle: -

include ':app', ':react-native-code-push' 
project(':react-native-code-push').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-code-push/android/app') 

команда CLI: -

react-native bundle --platform android --entry-file index.android.js --bundle-output codepush.js --dev false; 

code-push release App-Android codepush.js 1.0.0 

Я установил aap на мобильную версию с версией 1.0.0 и внес некоторые изменения в код приложения и снова создаю пакет и отпустите приложение с именем версии 1.0.1.

Здесь я не меняюсь versionName в buid.gradle изменения только versionName в команде выпуска code-push release App-Android codepush.js 1.0.1

Если мне нужно менять versionName каждый раз, когда в build.gradle для новой версии и использовать то же самое в команде релиза?

Может ли кто-нибудь помочь?

+0

Не могли бы вы указать команды CLI, которые вы использовали для сборки пакета JS, а затем отпустите его в CodePush? Это поможет определить, что может произойти. Кроме того, убедитесь, что бинарная версия, которую вы передаете в команду «push-push-release», представляет собой ту же самую версию, которая указана в файле build.gradle вашего приложения RN Android. Не передавать правильный номер версии является распространенной причиной того, что обновление не будет обнаружено в запущенном приложении. –

+0

@JonathanCarter Пожалуйста, ознакомьтесь, я указал указанную команду: Спасибо –

+0

Как упоминалось ниже, вам не нужно менять версию на «1.0.1», когда вы вызываете «освобождение кода», если вы не измените версию в файле build.gradle до 1.0.1. В приведенном выше примере просто продолжайте передавать 1.0.0 в «release для кода», и все будет работать так, как ожидалось. –

ответ

0

Не зная точных команд CLI, которые вы используете для объединения своего JS, а затем отпустите его в CodePush, трудно точно знать, что может происходить, но есть несколько возможностей, которые вы должны дважды проверить, делает правильно:

  1. При вызове команды Отпустить CodePush CLI, убедитесь в том, что вы передаете путь к файлу расслоения JS как содержание обновления. Android в настоящее время не поддерживает обновление изображений, и поэтому он не поддерживает предоставление каталога файлов. Если вы попытаетесь освободить каталог, CLI и сервер разрешили бы его, но плагин внутри приложения не смог бы установить новое обновление при синхронизации с сервером, так как он не понял бы содержимое. Это временное ограничение и будет рассмотрено в предстоящем выпуске плагина.

  2. Когда вы вызываете команду освобождения CLI CodePush, убедитесь, что вы указываете точную бинарную версию приложения, на которое должно быть нацелено обновление. Для Android это свойство android.defaultConfig.versionName в файле build.gradle. Если вы тестируете CodePush в совершенно новом проекте, это, скорее всего, «1.0.0», поэтому просто убедитесь, что вы передаете эту точную версию команде release. В противном случае, когда плагин попытается синхронизировать с сервером, он подумает, что релиз не нацеливается на него и не будет пытаться его установить.

  3. Убедитесь, что ключ развертывания, указанный вами в файле MainActivity, фактически соответствует развертыванию развертывания в Йорке. Вы можете подтвердить это, запустив «развертывание кода с помощью ls» и сравнив ключ в своем коде с ключом вашего промежуточного развертывания.

Вы можете узнать более подробную информацию о команде выпуска и поведение каждого параметра, проверяя CLI документы: http://microsoft.github.io/code-push/docs/cli.html

Если ни один из тех, кто в конечном итоге ваш вопрос, было бы полезно, если вы можете поделиться точными шагами, которые вы выполняете, чтобы опубликовать обновление, а также взглянуть на консоль Chrome (или logcat) и сообщить нам, что вы просматриваете. Плагин CodePush сообщает об ошибках в конфигурации/etc. чтобы помочь вам диагностировать их.

+0

вышеописанные шаги в порядке для конфигурации кодовых страниц, только нужно позаботиться, когда мы меняем класс MainActivity.java. –

2

У меня ошибка, как и вы.

  • проверить вы связывайте файл
  • команда проверки релиз (код-релиз толчок YouApp your_bundle_file версия)

    Если вы установили в вашем android.defaultConfig.versionName является 1.0.20, так что вам нужно освободить так:

    кода толчок релиз YouApp your_bundle_file 1.0.20

Вы должны освободить VERSI на 1.0.20, пока вы не измените версию android.defaultConfig.versionName (1.0.21), после чего вам потребуется версия 1.0.21 для выпуска.

Примечание: version в команде release не может измениться до тех пор, пока ваше приложение не изменит android.defaultConfig.versionName.

Смежные вопросы