Eu construí meu aplicativo, posso executá-lo no meu emulador local (e também no meu dispositivo Android na mesma rede, alterando o servidor de depuração).
No entanto, desejo criar um APK que possa ser enviado a alguém sem acesso ao servidor de desenvolvimento e que ele possa testar o aplicativo.
Vejo que há uma seção Usando o pacote offline na seção iOS da documentação. Mas não consegui descobrir como fazer o mesmo no Android. Isso é possível? Se sim, como?
ATUALIZAÇÃO: Na resposta a esta pergunta (o Android não conseguiu carregar o pacote JS ), diz-se que o pacote offline pode ser baixado do servidor de desenvolvimento. Mas quando obtenho o pacote no servidor de desenvolvimento, os arquivos de imagem não podem ser carregados.
javascript
android
react-native
mobile-application
Gokhan Sari
fonte
fonte
Respostas:
Após a resposta de Aditya Singh, o apk gerado (não assinado) não seria instalado no meu telefone. Eu tive que gerar um apk assinado usando as instruções aqui .
O seguinte funcionou para mim:
Coloque o
my-release-key.keystore
arquivo noandroid/app
diretório em sua pasta do projeto. Em seguida, edite o arquivo~/.gradle/gradle.properties
e adicione o seguinte (substitua **** pela senha correta do keystore, alias e senha da chave)Se você estiver usando o MacOS, poderá armazenar sua senha no chaveiro usando as instruções aqui, em vez de armazená-la em texto sem formatação.
Em seguida, edite app / build.gradle e verifique se o seguinte está lá (as seções com signatureConfigs signatureConfig podem precisar ser adicionadas):
Em seguida, executar o comando
cd android && ./gradlew assembleRelease
,Para o Windows 'cd android', execute o
gradlew assembleRelease
comando e encontre seu apk assinado emandroid/app/build/outputs/apk/app-release.apk
fonte
Você precisará criar uma chave para assinar o apk. Use abaixo para criar sua chave:
Use uma senha quando solicitado
Depois que a chave for gerada, use-a para gerar a compilação instalável:
Gere a construção usando gradle
Faça o upload do APK para o seu telefone. O
-r
sinalizador substituirá o aplicativo existente (se existir)Uma descrição mais detalhada é mencionada aqui: https://facebook.github.io/react-native/docs/signed-apk-android.html
ATUALIZAÇÃO : Baseado nos comentários de @shashuec e @Fallen
se você receber um erro
execute mkdir android / app / src / main / assets
fonte
react-native bundle
parte. Obrigado pela sua resposta!gradlew.bat assembleRelease
também.Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]
. quando tento instalar o apk.ENOENT: no such file or directory, open 'android/app/src/main/assets/index.android.bundle'
executar um erromkdir android/app/src/main/assets
Você deve usar o android studio para esse processo. É apenas mais simples. Mas primeiro execute este comando no diretório do aplicativo nativo do react:
Para a versão mais recente do react-native (por exemplo, react native 0.49.0 e assim por diante ...)
Para versão mais antiga do react-native (0.49.0 e inferior)
Em seguida, use o android studio para abrir a pasta 'android' em seu diretório de aplicativos nativo, ele solicitará a atualização do gradle e de outras coisas. vá para build-> Generate APK assinado e siga as instruções de lá. É realmente simples.
fonte
Execute este comando:
fonte
cd android && ./gradlew installRelease
e tenho esse erroTask 'assembleRelease.' not found in root project 'project'. Some candidates are: 'assembleRelease'.
para React Native 0.49 e superior
você deve ir para o diretório do projeto no terminal e executar esse comando
se abaixo de 0,49
Em seguida, use o android studio para abrir a pasta 'android' em seu diretório de aplicativos nativo, ele solicitará a atualização do gradle e de outras coisas. vá para build-> Generate APK assinado e siga as instruções de lá. Aquele idiota.
fonte
Se você conseguir
Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]
.Tentei usar o método do @ Aditya de gerar um arquivo APK não assinado e instalá-lo, mas quando fui instalá-lo no meu tablet Android, ocorreu um erro de
Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]
.Imagino que isso ocorra porque o arquivo APK não foi assinado e o tablet não ficou satisfeito com isso. Portanto, depois de gerar o arquivo do pacote React Native, consegui gerar um arquivo APK assinado, normalmente, via Android Studio.
A propósito, nosso aplicativo é um aplicativo Android totalmente funcional que já existe na Play Store e estamos adicionando o React Native a ele em pedaços pequenos, porque é incrível.
Então, para resumir, aqui estão meus passos:
1) Gere o pacote React Native:
2) Gere um arquivo APK assinado do Android Studio.
3) Instale o arquivo APK assinado no dispositivo USB:
A
-d
bandeira diz apenasadb
para instalar no dispositivo USB conectado, caso você também tenha um emulador em execução. Se você deseja instalar em qualquer emulador, solte a-d
bandeira.4) Lucro!
fonte
Experimente abaixo, ele irá gerar um app-debug.apk na sua pasta root / android / app / build / outputs / apk / debug
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
então vá para a pasta android e execute
./gradlew assembleDebug
fonte
Se alguém quiser construir sem as chaves do playstore, esse comando será muito útil.
# react-native run-android --variant=release
Após a compilação concluída, você pode encontrar o apk no arquivo de compilação da versão.
fonte
Vá para o diretório do projeto e execute o comando:
fonte
Se você receber um erro envolvendo o index.android.js. Isso ocorre porque você está usando a nova versão nativa do React (estou usando 0.55.4). Apenas substitua "index.android.js" por "index.js"
fonte
Tenho outra solução: - Gerando uma chave de assinatura Você pode gerar uma chave de assinatura privada usando o keytool. No Windows, a ferramenta de chaves deve ser executada em C: \ Arquivos de Programas \ Java \ jdkx.x.x_x \ bin.
Coloque o arquivo my-release-key.keystore no diretório android / app na sua pasta do projeto.
Edite o arquivo android / app / build.gradle na pasta do seu projeto e adicione a configuração de assinatura,
e corra
Isso fornecerá dois arquivos em android \ app \ build \ outputs \ apk app-release.apk e app-release-unsigned.apk agora instale o app-release.apk no seu dispositivo Android.
fonte
Espero que ajude novos iniciantes
Doc oficial aqui
Se você não possui o armazenamento de chaves, use o comando before
Gerando uma chave de assinatura / arquivo Keystore Você pode gerar uma chave de assinatura privada usando o keytool. No Windows, a ferramenta de chaves deve ser executada em C: \ Arquivos de Programas \ Java \ jdkx.x.x_x \ bin.
você receberá um arquivo como my-release-key.keystore
Configurando variáveis gradle Coloque o arquivo my-release-key.keystore no diretório android / app na sua pasta do projeto. Editar o arquivo android / gradle.properties e adicione o seguinte (substitua ***** com a senha correta de armazenamento de chaves, alias e senha de chave), enableAapt2 set falso é solução alternativa, como a versão Gradle android 3.0 problema
adicione estes app / buid.gradle (app)
abaixo da configuração padrão
e versão do tipo Build interno {}
simplesmente execute este comando no terminal do android studio comandos abaixo serão automatizados acima de todas as respostas
se janelas
se linux / mac
se você tiver algum erro, exclua todas as pastas de compilação e execute o comando
que de novo
fonte
gradle clean
... Estou lutando com isso há um tempo para obter esses erros de compilação, muito obrigado por esta resposta!Para obter as versões nativas de reação mais recentes para agrupar o projeto
Android
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/
iOS
react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/main.jsbundle --assets-dest ios
fonte
A maneira da GUI no Android Studio
fonte
Usar o android studio para gerar apk assinado para o projeto android da react também é uma opção boa e fácil, abrir o projeto android da react no android studio e gerar pressionamento de tecla e apk assinado.
fonte
Consulte a documentação oficial nativa de reação em Generating Signed APK
Gerar assinatura nativa de reação APK
fonte