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

Построить и установить unsigned apk на устройстве без сервера разработки?

Как я новичок в реакции-родной, так что если что-то не так в шагах, дайте мне знать.

Я создал реагировать родное приложение для Android с помощью команды в соответствии с документацией

реагировать-родной андроид

во время работы на устройстве использовалась следующая команда

реагировать-родной запуск андроид

который дает мне вывод 2 apk файлов в моей папке проекта /android/app/build/output/apk

enter image description here

теперь, когда я использую для установки этот apk после установки, он запрашивает сервер разработки для подключения для комплектации JS. Но мое требование заключается в том, что пользователю не нужно бороться с сервером разработки, просто ему нужно установить apk, и все готово.

Прошли некоторые вопросы по qaru.site/info/38922/... но они не помогли создать неподписанный apk, который не требует сервера разработки.

Не могли бы вы, ребята, помочь мне найти способ, которым как построить и неподписанный apk в реагировать родной?

4b9b3361

Ответ 1

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

Bundle debug build:

#React-Native 0.59
react-native bundle --dev false --platform android --entry-file index.js --bundle-output ./android/app/src/main/assets/index.android.bundle --assets-dest ./android/app/src/main/res

#React-Native 0.49.0+
react-native bundle --dev false --platform android --entry-file index.js --bundle-output ./android/app/build/intermediates/assets/debug/index.android.bundle --assets-dest ./android/app/build/intermediates/res/merged/debug

#React-Native 0-0.49.0
react-native bundle --dev false --platform android --entry-file index.android.js --bundle-output ./android/app/build/intermediates/assets/debug/index.android.bundle --assets-dest ./android/app/build/intermediates/res/merged/debug

Затем построить APK после комплектации:

$ cd android
#Create debug build:
$ ./gradlew assembleDebug
#Create release build:
$ ./gradlew assembleRelease #Generated 'apk' will be located at 'android/app/build/outputs/apk'

P.S. Другим подходом может быть изменение скриптов gradle.

Ответ 2

Пожалуйста, следуйте этим шагам.

Поставьте свой JS:

если у вас есть index.android.js в корне проекта, запустите

react-native bundle --dev false --platform android --entry-file index.android.js --bundle-output ./android/app/build/intermediates/assets/debug/index.android.bundle --assets-dest ./android/app/build/intermediates/res/merged/debug

если у вас есть index.js в корне проекта, запустите

react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res

Создать отладочный apk:

cd android/
./gradlew assembleDebug

Тогда вы можете найти свой apk здесь:

cd app/build/outputs/apk/

Ответ 3

Со мной в каталоге проекта запускаются следующие команды.

Для реакции на старую версию (вы увидите index.android.js в корне):

mkdir -p android/app/src/main/assets && rm -rf android/app/build && react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res && cd android && ./gradlew clean assembleRelease && cd ../

Для реакции на новую версию (вы просто видите index.js в корне):

mkdir -p android/app/src/main/assets && rm -rf android/app/build && react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res && cd android && ./gradlew clean assembleRelease && cd ../

Файл apk будет сгенерирован по адресу:

  • Gradle <3.0: android/приложение/сборка/выводы/apk/
  • Gradle 3. 0+: android/приложение/сборка/выводы/apk/release/

Ответ 4

Последнее обновление

В вашем корневом каталоге проекта

Убедитесь, что у вас уже есть каталог android/app/src/main/assets/, если не создаете каталог, после этого создайте новый файл и сохраните его как index.android.bundle и поместите ваш файл как этот android/app/src/main/активы/index.android.bundle

После этого запустите

react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/

cd android && ./gradlew assembleDebug

Тогда вы можете получить apk в app/build/output/apk/debug/app-debug.apk

Ответ 5

После того, как вы выполните первый ответ , вы можете запустить свое приложение, используя

react-native run-android --variant=debug

И ваше приложение будет работать без необходимости в пакете

Ответ 6

Для пользователя Windows, если все шаги следуют должным образом из этого: https://facebook.github.io/react-native/docs/signed-apk-android.html

Вам нужно только запустить: gradlew assembleRelease

И ваш файл будет:

  • приложение-release.apk
  • приложение-релиз-unaligned.apk

Местоположение: E:\YourProjectName\android\app\build\outputs\apk

Ответ 7

Я на реагирую родной 0.55.4, в основном я должен был связать вручную:

react-native bundle --dev false --platform android --entry-file index.js --bundle- 
output ./android/app/build/intermediates/assets/debug/index.android.bundle --assets- 
dest ./android/app/build/intermediates/res/merged/debug

Затем подключите устройство через USB, включите отладку USB. Проверьте подключенное устройство с помощью adb devices.

Наконец, запустите react-native run-android который установит apk отладки на ваш телефон, и вы сможете нормально запустить его с сервером dev

Замечания:

  • Начиная с 0.49.0, точкой входа является один index.js
  • gradlew assembleRelease генерирует только релиз-неподписанные apks, которые не могут быть установлены

Ответ 8

Может быть возможно создать неподписанную версию apk для тестирования, чтобы вы могли работать на своем мобильном телефоне.

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

На вашей консоли из рабочего каталога выполните эти четыре команды

react-native bundle --dev false --platform android --entry-file index.js --bundle-output ./android/app/build/intermediates/assets/debug/index.android.bundle --assets-dest ./android/app/build/intermediates/res/merged/debug

cd android

gradlew assembleDebug

gradlew assembleRelease

И тогда APK файл выдаст на: android\app\build\output\apk\debug\app-debug.apk

Ответ 9

Начиная с версии 0.57, ни один из ранее предоставленных ответов больше не будет работать, так как каталоги, в которых gradle ожидает найти пакет, и активы изменились.

Простой способ без реагирующей нативной связки

Самый простой способ построить отладочную сборку - это вообще не использовать команду react-native bundle, а просто изменить ваш файл app/build.gradle.

Внутри карты project.ext.react в файле app/build.gradle добавьте запись bundleInDebug: true. Если вы хотите, чтобы это была не сборка --dev (без предупреждений и минимизированного пакета), вам также следует добавить запись devDisabledInDebug: true на ту же карту.

С реактивно-родной связкой

Если по какой-либо причине вам нужно или вы хотите использовать команду react-native bundle для создания пакета, а затем ./gradlew assembleDebug для создания APK с пакетом и активами, вы должны обязательно поместить пакет и активы в правильные пути, где gradle может их найти.

Начиная с версии 0.57 эти пути android/app/build/generated/assets/react/debug/index.android.js для связки

и android/app/build/generated/res/react/debug для активов. Итак, полные команды для ручного объединения и сборки APK с пакетом и активами:

react-native bundle --dev false --platform android --entry-file index.js --bundle-output ./android/app/build/generated/assets/react/debug/index.android.bundle --assets-dest ./android/app/build/res/react/debug

а затем

./gradlew assembleDebug

Путь к пакетам и активам

Обратите внимание, что пути, где gradle ищет пакет и активы, могут быть изменены. Чтобы узнать, где находятся эти пути, посмотрите файл react.gradle в вашем каталоге node_modules/react-native. Строки, начинающиеся с def jsBundleDir = и def resourcesDir =, указывают каталоги, в которых gradle ищет пакет и ресурсы соответственно.

Ответ 10

На случай, если кто-то еще недавно столкнулся с этой же проблемой, я использую React Native 0.59.8 (также протестированный с RN 0.60), и я могу подтвердить некоторые другие ответы, вот шаги:

  1. Удалите последнюю скомпилированную версию вашего приложения, установленного на вашем устройстве.

  2. Запустите react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res

  3. запустите cd android/&&./gradlew assembleDebug

  4. Загрузите ваш app-debug.apk в папку android/app/build/output/apk/debug

удачи!

Ответ 11

Я нашел решение, меняющее buildTypes следующим образом:

buildTypes {
  release {
    signingConfig signingConfigs.release
  }
}

Ответ 12

Перейдите в папку android и запустите ./gradlew assembleRelease, чтобы создать файл выпуска, который вы можете отправить на свое устройство Android. Для версии apk не требуется, чтобы сервер dev работал.