Eu costumava react-native init MyApp
inicializar um novo aplicativo React Native. Isso criou, entre outros, um projeto Android com o pacote com.myapp
.
Qual é a melhor maneira de alterar este nome de pacote, por exemplo, para com.mycompany.myapp
:?
Eu tentei alterá-lo, AndroidManifest.xml
mas ele criou outros erros, então estou assumindo que não é o caminho.
Qualquer ideia?
Respostas:
Renomeei a subpasta do projeto de: " android / app / src / main / java / MY / APP / OLD_ID / " para: " android / app / src / main / java / MY / APP / NEW_ID / "
Em seguida, alterne manualmente os IDs de pacote novos e antigos:
Em: android / app / src / main / java / MY / APP / NEW_ID / MainActivity.java :
No android / app / src / main / java / MY / APP / NEW_ID / MainApplication.java :
No android / app / src / main / AndroidManifest.xml :
E no android / app / build.gradle :
No android / app / BUCK :
Gradle 'limpeza no final (na pasta / android ):
fonte
android/app/src/main/java/com/old_app_name/
para...com/new_app_name/
e parece funcionar.Eu uso o pacote react -native-rename * npm. Instale-o via
Em seguida, na raiz do seu projeto React Native, execute o seguinte:
fonte
Para alterar o nome do pacote de
com.myapp
para:com.mycompany.myapp
(por exemplo),android/app
pasta. Você encontraráMude
com.myapp
para o que você precisar.Espero que isto ajude.
fonte
./gradlew clean
e depois./gradlew app:assembleRelease
.applicationId
e o localpackage
são independentes um do outro", "applicationId
identifica exclusivamente seu aplicativo no dispositivo e na Google Play Store" - developer.android.com/studio/build/application-idNo matching client found for package name 'xxxxx'
você pode simplesmente usar o pacote npm react-native-rename.
Instale usando
npm install react-native-rename -g
Em seguida, a partir da raiz do seu projeto React Native, execute o seguinte
react-native-rename "MyApp" -b com.mycompany.myapp
react-native-rename on npm
mas observe que essa lib remove seu
MainActivity.java
eMainApplication.java
. antes de alterar o nome do pacote, faça um backup desses dois arquivos e, depois de alterar o nome do pacote, coloque-o novamente em seu lugar. esta solução funciona para mimmais informações: react-native-rename
fonte
Ir para o estúdio Android
Clique com o botão direito do mouse no seu pacote (provavelmente com) -> Refractor -> Renomear -> Digite o novo nome do pacote na caixa de diálogo -> Do Refractor
Ele renomeará o nome do seu pacote em qualquer lugar.
fonte
O script init gera um identificador exclusivo para Android com base no nome que você deu (por exemplo,
com.acmeapp
paraAcmeApp
).Você pode ver qual nome foi gerado procurando a chave applicationId
android/app/build.gradle
.Se você precisar alterar esse identificador exclusivo, faça-o agora como descrito abaixo:
Na
/android
pasta, substituir todas as ocorrênciascom.acmeapp
porcom.acme.app
Em seguida, altere a estrutura do diretório com os seguintes comandos:
mkdir android/app/src/main/java/com/acme
mv android/app/src/main/java/com/acmeapp android/app/src/main/java/com/acme/app
Você precisa de um nível de pasta para cada ponto no identificador do aplicativo.
Fonte: https://blog.elao.com/en/dev/from-react-native-init-to-app-stores-real-quick/
fonte
Se você estiver usando o Android Studio-
mudando
com.myapp
paracom.mycompany.myapp
crie uma nova hierarquia de pacotes com.mycompany.myapp em
android/app/src/main/java
Copie todas as classes de
com.myapp
para ocom.mycompany.myapp
Android studio GUIO Android studio cuidará de colocar o nome do pacote adequado para todas as classes copiadas. Isso é útil se você possui alguns módulos personalizados e não deseja substituir manualmente em todos os arquivos .java.
Atualize
android/app/src/main/AndroidManifest.xml
eandroid/app/build.gradle
(substituacom.myapp
paracom.mycompany.myapp
Sincronizar o projeto (gradle build)
fonte
Eu tenho uma solução baseada na resposta do @ Cherniv (funciona no macOS para mim). Duas diferenças: eu tenho um Main2Activity.java na pasta java à qual faço a mesma coisa e não me incomodo em chamar ./gradlew clean, pois parece que o empacotador nativo a reagir faz isso automaticamente de qualquer maneira.
De qualquer forma, minha solução faz o que o Cherniv faz, exceto que eu criei um script de shell bash para ele, pois estou criando vários aplicativos usando um conjunto de códigos e quero poder alterar facilmente o nome do pacote sempre que executo meus scripts npm.
Aqui está o script bash que eu usei. Você precisará modificar o packageName que deseja usar e adicionar qualquer outra coisa que desejar ... mas aqui estão os princípios básicos. Você pode criar um arquivo .sh, conceder permissão e, em seguida, executá-lo na mesma pasta em que o react-native é executado:
AVISO LEGAL: Você precisará editar o comentário do MainApplication.java próximo à parte inferior do arquivo java. Tem a palavra 'pacote' no comentário. Por causa de como o script funciona, ele pega qualquer linha com a palavra 'pacote' e a substitui. Por esse motivo, esse script pode não estar preparado para o futuro, pois pode haver a mesma palavra usada em outro lugar.
Segunda isenção de responsabilidade: os três primeiros comandos sed editam os arquivos java de um diretório chamado javaFiles. Eu mesmo criei esse diretório, pois quero ter um conjunto de arquivos java que são copiados de lá (como eu poderia adicionar novos pacotes a ele no futuro). Você provavelmente vai querer fazer a mesma coisa. Então copie todos os arquivos da pasta java (percorra suas subpastas para encontrar os arquivos java reais) e coloque-os em uma nova pasta chamada javaFiles.
Terceiro aviso: você precisará editar a variável packageName para estar alinhada com os caminhos na parte superior do script e na parte inferior (com.MyWebsite.MyAppName para com / MyWebsite / MyAppName)
fonte
No VS Code, pressione
Ctrl + Shift + F
e digite o nome do seu pacote antigo em 'Localizar' e digite o seu novo pacote em 'Substituir'. Em seguida, pressione 'Substituir todas as ocorrências'.Definitivamente não é o caminho pragmático. Mas, está feito o truque para mim.
fonte
Usar
npx react-native-rename <newName>
Com o Identificador de pacote personalizado (apenas Android. Para iOS, use o Xcode)
Primeiro, mude para a nova ramificação (opcional, mas recomendável)
Renomeie seu aplicativo $ npx react-native-rename "Travel App"
Com identificador de pacote personalizado
Depois de alterar o nome, certifique-se de ir para a pasta android e executar
gradlew clean
. depois volte ao projeto principal e executenpx react-native run-android
.Além disso, se você tiver o arquivo google-services.json em seu projeto anterior, mude de acordo com o novo ... então você está pronto para ir :)
Veja mais aqui https://github.com/junedomingo/react-native-rename#readme
fonte
Siga as etapas simples para renomear o seu
app name
ePackage name
, caso você não tenha feito alterações personalizadas na pasta android (ou seja, cenário em que você acabou de inicializar o projeto)name
nopackage.json
arquivo que você precisa e salvá-lo.react-native upgrade
Nota: Como ivoteje50 mencionado no comentário, não remova a pasta android se você já seguiu as instruções oficiais para gerar um keystore, pois ele removerá o keystore e você não poderá assinar um novo aplicativo novamente.
fonte
Vá para o Android Studio, abra o aplicativo, clique com o botão direito do mouse em java e escolha Novo e depois em Pacote.
Dê o nome que você deseja (por exemplo, com.something).
Mova os arquivos do outro pacote (que você deseja renomear) para o novo pacote. Exclua o pacote antigo.
Vá para o seu projeto no seu editor e use o atalho para pesquisar em todos os arquivos (no mac é shift cmd F). Digite o nome do seu pacote antigo. Altere todas as referências para o novo nome do pacote.
Vá para o Android Studio, Build, Clean Project, Rebuild Project.
Feito!
Feliz codificação :)
fonte
Eu usei o pacote react-native-rename .
No terminal, execute o comando para instalar:
Na raiz do seu projeto React Native, execute o seguinte comando:
fonte
Você pode usar o pacote react-native-rename, que fará todas as alterações necessárias no nome do pacote em
app / mainapplication.java
AndroidManifest.xml
mas lembre-se de alterar manualmente o nome do pacote de todos os arquivos na pasta java / com. porque quando eu criei uma atividade de tela inicial, o nome do pacote antigo não é atualizado.
https://www.npmjs.com/package/react-native-rename
fonte
Basta usar a ferramenta de pesquisa e substituição do meu IDE.
fonte
Depois de executar isso:
Certifique-se de também ir para
Build.gradle
baixoandroid/app/...
e renomear o ID do aplicativo, como mostrado abaixo:fonte
Vá para o arquivo android / app / src / main / AndroidManifest.xml -
Atualização:
attr android: label da aplicação Element como:
e
attr android: etiqueta do elemento atividade como:
Trabalhou para mim, espero que ajude.
fonte