Como eu sou novo no react-native, se houver algo errado nas etapas, avise-me.
Criei um aplicativo Android nativo de reação usando o comando conforme a documentação
android nativo do react
durante a execução no dispositivo, o seguinte comando foi usado
react-native run-android
que me dá a saída de 2 arquivos apk na minha pasta de projeto / android / app / build / outputs / apk
Agora, quando eu uso para instalar este apk após a instalação, ele solicita que um servidor de desenvolvimento se conecte para agrupar o JS. Mas meu requisito é que o usuário não precise lutar com o servidor de desenvolvimento, ele só precisa instalar o apk e tudo está feito.
Foram submetidas a algumas perguntas sobre o stackoverflow, mas não é útil para criar apk não assinado que não requer servidor de desenvolvimento.
Vocês podem me ajudar a encontrar a maneira de como criar um apk não assinado em reagir nativo?
fonte
Respostas:
Você precisa criar manualmente o pacote para uma compilação de depuração.
Compilação de depuração:
Em seguida, para criar os APKs após o agrupamento:
PS Outra abordagem pode ser modificar scripts gradle.
fonte
--assets-dest ./android/app/src/main/res/
Por favor, siga estes passos.
Agrupe seus js:
se você tiver index.android.js na raiz do projeto, execute
se você tiver o index.js na raiz do projeto, execute
Criar apk de depuração:
Então você pode encontrar o seu apk aqui:
fonte
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
Última atualização
No diretório do projeto raiz
Certifique-se de que você já tenha o diretório android / app / src / main / assets / , se não criar o diretório, depois crie um novo arquivo e salve-o
index.android.bundle
e coloque-o como este android / app / src / main / assets / index.android .agruparDepois disso, execute este
Então você pode entrar
apk
em app / build / outputs / apk / debug / app-debug.apkfonte
index.android.bundle
é criado é realmente importante por não usar o servidor de desenvolvimento no host.Comigo, no diretório do projeto, execute os seguintes comandos.
Para reagir à versão antiga nativa (você verá index.android.js na raiz):
Para reagir à nova versão nativa (você apenas vê index.js na raiz):
O arquivo apk será gerado em:
fonte
$ 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 assembleDebug
--entry-file index.android.js
precisa ser substituído--entry-file index.js
por projetos mais recentes que tenham, emindex.js
vez de estaremindex.android.js
na raiz do diretório de projetos.Depois de seguir a primeira resposta , você pode executar seu aplicativo usando
E seu aplicativo será executado sem a necessidade do empacotador
fonte
A partir do react-native 0.57, nenhuma das respostas fornecidas anteriormente funcionará mais, pois os diretórios nos quais o gradle espera encontrar o pacote e os ativos foram alterados.
Maneira simples sem pacote nativo de reação
A maneira mais simples de criar uma compilação de depuração é sem usar o
react-native bundle
comando, mas simplesmente modificando seuapp/build.gradle
arquivo.Dentro do
project.ext.react
mapa noapp/build.gradle
arquivo, adicione abundleInDebug: true
entrada. Se você deseja que não seja uma--dev
compilação (sem avisos e pacote compactado), adicione também odevDisabledInDebug: true
entrada ao mesmo mapa.Com pacote nativo react
Se, por algum motivo, você precisar ou desejar usar o
react-native bundle
comando para criar o pacote configurável e, em seguida,./gradlew assembleDebug
criar o APK com o pacote configurável e os ativos, certifique-se de colocar o pacote configurável e os ativos nos caminhos corretos, onde o gradle pode encontrá-los.A partir de 0,57 react-native, esses caminhos são
android/app/build/generated/assets/react/debug/index.android.js
para o pacote configurávele
android/app/build/generated/res/react/debug
pelos ativos. Portanto, os comandos completos para agrupar e criar manualmente o APK com o pacote e os ativos são: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
e depois
./gradlew assembleDebug
Caminho de pacote e ativos
Observe que os caminhos em que o gradle procura o pacote e os ativos podem estar sujeitos a alterações. Para descobrir onde estão esses caminhos, consulte o
react.gradle
arquivo no seunode_modules/react-native
diretório. As linhas que começam comdef jsBundleDir =
edef resourcesDir =
especificam os diretórios em que gradle procura o pacote e os ativos, respectivamente.fonte
Para usuário do Windows, se todas as etapas seguirem corretamente: https://facebook.github.io/react-native/docs/signed-apk-android.html
Você só precisa executar:
gradlew assembleRelease
E seu arquivo será:
Localização:
E:\YourProjectName\android\app\build\outputs\apk
fonte
Estou no react nativo 0.55.4, basicamente tive que agrupar manualmente:
Em seguida, conecte seu dispositivo via usb, ative a depuração usb. Verifique o dispositivo conectado com
adb devices
.Por fim, execute
react-native run-android
que instalará o apk de depuração no seu telefone e você pode executá-lo bem com o servidor de desenvolvimentoNota:
index.js
gradlew assembleRelease
gera apenas os aplicativos não assinados do release que não podem ser instaladosfonte
Pode ser possível gerar uma versão apk não assinada para fins de teste, para que você possa executar no seu celular.
Inicialmente, eu tenho os erros de tela vermelha, como mais mencionados aqui. mas eu segui o mesmo que foi mencionado aqui e funcionou para mim.
No console, no diretório de trabalho, execute estes quatro comandos
E, em seguida, o arquivo APK será produzido em: android \ app \ build \ outputs \ apk \ debug \ app-debug.apk
fonte
Caso alguém esteja entrando recentemente nesse mesmo problema, estou usando o React Native 0.59.8 (testado com o RN 0.60 também) e posso confirmar algumas das outras respostas, aqui estão as etapas:
Desinstale a versão compilada mais recente do seu aplicativo instalada que você possui no seu dispositivo
Corre
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
corre
cd android/ && ./gradlew assembleDebug
Obtenha seu app-debug.apk na pasta android / app / build / outputs / apk / debug
boa sorte!
fonte
android/app/build/generated/assets/react/debug/index.android.js
e os ativos estejam com oandroid/app/build/generated/res/react/debug
0.57 nativo do reagente.Encontrei uma solução alterando buildTypes como este:
fonte