Solía react-native init MyApp
inicializar una nueva aplicación React Native. Esto creó, entre otros, un proyecto de Android con el paquete com.myapp
.
¿Cuál es la mejor manera de cambiar el nombre de este paquete, por ejemplo a com.mycompany.myapp
:?
Intenté cambiarlo AndroidManifest.xml
pero creó otros errores, así que supongo que no es así.
¿Alguna idea?
Respuestas:
Cambié el nombre de la subcarpeta del proyecto de: " android / app / src / main / java / MY / APP / OLD_ID / " a: " android / app / src / main / java / MY / APP / NEW_ID / "
Luego, cambió manualmente los identificadores de paquete antiguos y nuevos:
En: android / app / src / main / java / MY / APP / NEW_ID / MainActivity.java :
En android / app / src / main / java / MY / APP / NEW_ID / MainApplication.java :
En android / app / src / main / AndroidManifest.xml :
Y en android / app / build.gradle :
En android / app / BUCK :
Limpieza de Gradle al final (en la carpeta / android ):
fuente
android/app/src/main/java/com/old_app_name/
a...com/new_app_name/
y parece que funciona.Yo uso el paquete react-native-rename * npm. Instalarlo a través de
Luego, desde la raíz de su proyecto React Native, ejecute lo siguiente:
fuente
Para cambiar el nombre del paquete de
com.myapp
a:com.mycompany.myapp
(por ejemplo),android/app
carpeta. Usted encontraráCambia
com.myapp
a lo que necesites.Espero que esto ayude.
fuente
./gradlew clean
y luego./gradlew app:assembleRelease
.applicationId
y elpackage
nombre local son independientes entre sí", "applicationId
identifica de forma exclusiva su aplicación en el dispositivo y en Google Play Store" - developer.android.com/studio/build/application-idNo matching client found for package name 'xxxxx'
simplemente puede usar el paquete npm react-native-rename.
Instalar usando
npm install react-native-rename -g
Luego, desde la raíz de su proyecto React Native, ejecute lo siguiente
react-native-rename "MyApp" -b com.mycompany.myapp
react-native-rename on npm
pero ten en cuenta que esta lib elimina tu
MainActivity.java
yMainApplication.java
. antes de cambiar el nombre de su paquete, haga una copia de seguridad de estos dos archivos y, después de cambiar el nombre del paquete, vuelva a colocarlo en su lugar. esta solución me funcionamás información: react-native-rename
fuente
Ir a estudio de Android
Haga clic derecho en su paquete (probablemente com) -> Refractor -> Cambiar nombre -> Ingrese el nuevo nombre del paquete en el cuadro de diálogo -> Hacer refractor
Cambiará el nombre de su paquete en todas partes.
fuente
El script de inicio genera un identificador único para Android basado en el nombre que le dio (por ejemplo,
com.acmeapp
paraAcmeApp
).Puede ver qué nombre se generó buscando la clave de ID de aplicación
android/app/build.gradle
.Si necesita cambiar ese identificador único, hágalo ahora como se describe a continuación:
En el
/android
carpeta, reemplace todas las apariciones decom.acmeapp
porcom.acme.app
Luego cambie la estructura del directorio con los siguientes 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
Necesita un nivel de carpeta para cada punto en el identificador de la aplicación.
Fuente: https://blog.elao.com/en/dev/from-react-native-init-to-app-stores-real-quick/
fuente
Si estás usando Android Studio-
cambiando
com.myapp
acom.mycompany.myapp
crear una nueva jerarquía de paquetes com.mycompany.myapp bajo
android/app/src/main/java
Copiar todas las clases a partir
com.myapp
decom.mycompany.myapp
usar interfaz gráfica de usuario de Android estudioAndroid Studio se encargará de poner el nombre del paquete adecuado para todas las clases copiadas. Esto es útil si tiene algunos módulos personalizados y no desea reemplazarlos manualmente en todos los archivos .java.
Actualizar
android/app/src/main/AndroidManifest.xml
yandroid/app/build.gradle
(reemplazarcom.myapp
acom.mycompany.myapp
Sincronizar el proyecto (construcción de gradle)
fuente
Tengo una solución basada en la respuesta de @ Cherniv (funciona en macOS para mí). Dos diferencias: tengo un Main2Activity.java en la carpeta java con el que hago lo mismo, y no me molesto en llamar a ./gradlew clean ya que parece que el paquete react-native lo hace automáticamente de todos modos.
De todos modos, mi solución hace lo que hace Cherniv, excepto que hice un script de shell bash para ello, ya que estoy construyendo múltiples aplicaciones usando un conjunto de código y quiero poder cambiar fácilmente el nombre del paquete cada vez que ejecuto mis scripts npm.
Aquí está el script bash que utilicé. Tendrá que modificar el packageName que desea usar y agregar cualquier otra cosa que desee ... pero aquí están los conceptos básicos. Puede crear un archivo .sh, otorgar permiso y luego ejecutarlo desde la misma carpeta desde la que ejecuta react-native:
DESCARGO DE RESPONSABILIDAD: Primero deberá editar el comentario de MainApplication.java cerca del final del archivo java. Tiene la palabra 'paquete' en el comentario. Debido a cómo funciona el script, toma cualquier línea con la palabra 'paquete' y lo reemplaza. Debido a esto, es posible que este script no esté preparado para el futuro, ya que podría usarse la misma palabra en otro lugar.
Segundo descargo de responsabilidad: los primeros 3 comandos sed editan los archivos java desde un directorio llamado javaFiles. Creé este directorio yo mismo porque quiero tener un conjunto de archivos java que se copian desde allí (ya que podría agregarle nuevos paquetes en el futuro). Probablemente quieras hacer lo mismo. Copie todos los archivos de la carpeta java (vaya a través de sus subcarpetas para encontrar los archivos java reales) y colóquelos en una nueva carpeta llamada javaFiles.
Tercer descargo de responsabilidad: deberá editar la variable packageName para que esté en línea con las rutas en la parte superior del script y en la parte inferior (com.MyWebsite.MyAppName para com / MyWebsite / MyAppName)
fuente
En VS Code, presione
Ctrl + Shift + F
e ingrese su antiguo nombre de paquete en 'Buscar' e ingrese su nuevo paquete en 'Reemplazar'. Luego presione 'Reemplazar todas las ocurrencias'.Definitivamente no es la forma pragmática. Pero, ha hecho el truco para mí.
fuente
Utilizar
npx react-native-rename <newName>
Con el Identificador de paquete personalizado (solo Android. Para iOS, utilice Xcode)
Primero, cambie a una nueva sucursal (opcional pero recomendado)
Luego, cambie el nombre de su aplicación $ npx react-native-rename "Aplicación de viaje"
Con identificador de paquete personalizado
Después de cambiar el nombre, asegúrese de ir a la carpeta de Android y ejecutar
gradlew clean
. luego regrese al proyecto principal y ejecútelonpx react-native run-android
.Además, si tiene el archivo google-services.json en su proyecto anterior, cambie en consecuencia con el nuevo ... entonces está listo para ir :)
Ver más aquí https://github.com/junedomingo/react-native-rename#readme
fuente
Siga los sencillos pasos para cambiarle el nombre
app name
y,Package name
en caso de que no haya realizado ningún cambio personalizado en la carpeta de Android (es decir, escenario en el que acaba de inicializar el proyecto)name
en elpackage.json
archivo como sea necesario y guardarlo.react-native upgrade
Nota: Como ivoteje50 mencionó en el comentario, no elimine la carpeta de Android si ya ha seguido las instrucciones oficiales para generar un almacén de claves, ya que eliminará el almacén de claves y no podrá volver a firmar una nueva aplicación.
fuente
Vaya a Android Studio, abra la aplicación, haga clic derecho en Java y elija Nuevo y luego Paquete.
Dé el nombre que desea (por ejemplo, com. Algo).
Mueva los archivos del otro paquete (desea cambiar el nombre) al nuevo Paquete. Eliminar el paquete anterior.
Vaya a su proyecto en su editor y use el acceso directo para buscar en todos los archivos (en mac es shift cmd F). Escriba el nombre de su paquete anterior. Cambie todas las referencias al nuevo nombre del paquete.
Vaya a Android Studio, Build, Clean Project, Rebuild Project.
¡Hecho!
Feliz codificación :)
fuente
He usado el paquete react-native-rename .
En la terminal, ejecute el comando para instalar:
En la raíz de su proyecto React Native, ejecute el siguiente comando:
fuente
Puede usar el paquete react-native-rename que tomará todos los cambios necesarios del nombre del paquete en
app / mainapplication.java
AndroidManifest.xml
pero asegúrese de cambiar manualmente el nombre del paquete de todos los archivos en la carpeta java / com. porque cuando creé una actividad de pantalla de bienvenida, el antiguo nombre del paquete no se actualiza.
https://www.npmjs.com/package/react-native-rename
fuente
Simplemente el uso de la herramienta de búsqueda y reemplazo de mi IDE hizo el truco.
fuente
Después de ejecutar esto:
Asegúrese también de ir
Build.gradle
aandroid/app/...
y cambiar el nombre del Id de la aplicación como se muestra a continuación:fuente
Vaya al archivo android / app / src / main / AndroidManifest.xml -
Actualización:
attr android: etiqueta de la aplicación Element como:
y
attr android: etiqueta de actividad de Element como:
Funcionó para mí, espero que ayude.
fuente