Cambiar el nombre de la aplicación en React Native

84

Estoy tratando de averiguar cómo cambiar el nombre de una aplicación ReactNative. El APK instalado en mi dispositivo es simplemente "Aplicación", con el icono de Android. ¿Cómo puedo cambiar esto?

Intenté cambiar package.json y volver a ejecutar la actualización nativa de reacción, pero no actualizó AndroidManifest.xml

Sobrecarga119
fuente

Respuestas:

131

El generador no anula el strings.xmlarchivo ubicado en android/app/src/main/res/values/, por lo que debe cambiar la app_namevariable manualmente

diedu
fuente
También asegúrese de que getMainComponentName () en su MainActivity devuelva el nombre de su aplicación nativa de reacción. es decir, nombre en app.json
John Muraguri
5
¿Qué pasa con IOS?
Abd Rmdn
1
react-native-rename aparentemente no se mantiene y no se puede usar en este punto.
rt_
¿Y iOS?
Muhammad Ashfaq
4
para cambiar el nombre de visualización de la aplicación IOS nativa de reacción, puede cambiar la propiedad 'Nombre de visualización del paquete' de info.plist
Hassan Raza
61

Intente react-native-rename este paquete npm facilitará el proceso

// in project directory

   npx react-native-rename <newName>
Paul Nyondo
fuente
6
Si bien este enlace puede responder la pregunta, es mejor incluir aquí las partes esenciales de la respuesta y proporcionar el enlace como referencia. Las respuestas de solo enlace pueden perder su validez si cambia la página enlazada. - De la crítica
m_callens
1
problema abordado
Paul Nyondo
2
@MikeS. esto no es una mala práctica ya que NO es una dependencia del proyecto sino una herramienta, y tenerlos como dependencias del proyecto es de hecho una mala práctica. Es como CRNA, debería tenerlo como una herramienta global
Gustavo Topete
16
ADVERTENCIA: No utilice esta biblioteca. arruinará tu proyecto. Nunca use esto.
MRSafari
20
NO UTILICE. En el momento de escribir estas líneas, este paquete está obsoleto / sin mantenimiento y hará que su proyecto sea inutilizable.
SQueryL
37

Para Android

Modificar displayName en el archivo app.json

Modifique el nombre de la aplicación en android / app / src / main / res / values ​​/ strings.xml

luego ejecute estos comandos uno por uno

cd android
./gradlew clean
cd ..
react-native run-android

Para iOS

Modificar el nombre para mostrar en el destino del proyecto (pestaña General)

Seleccione su proyecto de aplicación como Aplicación de host en el destino del proyecto para probar (pestaña General)ingrese la descripción de la imagen aquí

Chhay Rith Hy
fuente
2
Muchas gracias, esto funcionó para mí después de probar tantas otras soluciones
Cherucole
usted señor, es un salvavidas
Jithin
28

La forma en que hice esto para Android (hacky, pero funciona) simplemente cambió el campo de cadena nombre_aplicación en

android / app / src / main / res / values ​​/ strings.xml

Cambiará el nombre de su aplicación de Android instalada a lo que ponga como valor.

Steve Phuc
fuente
1
Probé este método, pero no resolvió mi problema. Cuando la aplicación se ejecuta en mi móvil, dice con un error "La aplicación <nombre anterior de la aplicación> no se ha registrado"
NIKHIL CM
1
Probé el método @KlaasNotFound. Obtuvo con éxito una nueva construcción
NIKHIL CM
Tengo el mismo problema como @NIKHILCM con react-native 0.56
Marecky
15

Me parece que, si desea cambiar tanto el nombre de la aplicación y el nombre del paquete (es decir, cambiar el nombre de la aplicación completa), los siguientes pasos son necesarios:

  • Asegúrese de no tener nada valioso (recursos no generados, copiados manualmente) en las subcarpetas android/y ios/.

  • Eliminar tanto el android/y la ios/carpeta.

  • Cambie la "name"entrada en su package.jsonpor el nuevo nombre.

  • Cambie el nombre de la aplicación tanto en su index.android.jscomo en index.ios.js: AppRegistry.registerComponent('NewAppName', () => App);

  • Ejecutar react-native upgradepara volver a generar las subcarpetas de la plataforma.

  • Si tiene recursos vinculados (como fuentes personalizadas, etc.), ejecute react-native link.

  • Si tiene otros recursos generados (como iconos de aplicaciones), ejecute los scripts para generarlos (por ejemplo yo).

  • Finalmente, desinstale la aplicación anterior en cada dispositivo y ejecute la nueva.

KlaasNotFound
fuente
7
Solo una nota: creo que el paso # 1 debería ser create a repo test branch first.
Mike S.
1
Al día de hoy, hay un nuevo paquete de NPM que alega para minimizar estos problemas, react-native-git-upgrade. Pero no puedo hacer que se ejecute usando yarn. Mi proyecto no lo usa npmni quiero instalarlo globalmente. Entonces, tratando de averiguar mis opciones. Hasta ahora, react-native-git-upgradefalla de CLI
Mike S.
1
muchas gracias por sus pasos seguí algunos y funcionó
Greco Jonathan
1
También tengo que hacer un almacén de claves de depuración stackoverflow.com/a/57438549/5900793
Steffo Dimfelt
1
react-native upgradeya no genera subcarpetas de plataforma.
Dogu Deniz Ugur
11

Si usted no tiene cualquier cosa preciosa en su carpeta de Android, puede eliminar la carpeta y luego ejecutar react-native upgradea continuación react-native android. Estos volverán a crear AndroidManifest.xml junto con los archivos y carpetas necesarios. (Probado en 0.18 en Windows 10)

Verde
fuente
También funciona en macOS Sierra.
Prashant Ghimire
11

En primer lugar: abra el app.jsonarchivo en su directorio de proyecto nativo de reacción. Y, simplemente reemplace displayNameel valor de la propiedad json en este archivo. p.ej:

{
    "name": "SomethingSomething",
    "displayName": "My New App Name"
}

Para la aplicación de Android: Abra el strings.xmlarchivo, reemplace el <string name="app_name">valor de la etiqueta por el nombre de su nueva aplicación. p.ej:

<string name="app_name">My New App Name</string>

Para iOS: Abra info.plist, reemplace el valor después <key>CFBundleDisplayName</key>por el nombre de su aplicación. p.ej:

<key>CFBundleDisplayName</key>
<string>My New App Name</string>

Desinstale su aplicación anterior instalada en su dispositivo. Use npm install en el directorio principal del proyecto, en el directorio de la carpeta ios ejecute los comandos de instalación de pod . Ahora, simplemente instale la aplicación en su dispositivo.

Rahul Rastogi
fuente
¿Si quiero cambiar el identificador de paquete?
Oliver D
@OliverD Para Android, cambie el ID de la aplicación en el archivo android / app / build.gradle y para iOS, cambie el Identificador de paquete en el proyecto iOS. No olvide volver a configurar sus cuentas de terceros en caso de inicio de sesión de Google, inicio de sesión de Facebook, etc.
Rahul Rastogi
10

Si solo solicita Android, aquí hay una solución

Modificar displayNameen /app.jsonarchivo

Modificar app_nameenandroid/app/src/main/res/values/strings.xml

luego ejecute estos comandos uno por uno

cd android
gradlew clean
cd ..
react-native run-android
Muhammad SaLman
fuente
¿cómo es que no puedo ejecutar react-native eject y dice que namedebo estar definido en el app.jsonpero lo tengo?
Mr-Programs
esto provocará el error: vilación invariable: xxxAPP no se ha registrado. (xxxAPP era el nombre de la aplicación anterior)
tess hsu
7

para android android / app / src / main / res / values ​​/ strings.xml Mi aplicación de Android

para ios Simplemente ábralo en xCode seleccione la pestaña del proyecto general simplemente cámbiele el nombre.

Biswajit
fuente
3

simplemente cambiar <string name="app_name"> 'NEW_APP_NAME' </string> ubicado en

[project_dir] /android/app/src/main/res/values/strings.xml

NOTA: recomendado

reaccionar-nativo-renombrar

por Paul Nyondo puede afectar al archivo MainApplication.java, ¡NO LO USE!

saeed eivazi
fuente
De acuerdo, tuve isntall react-native-rename y hace otro problema en la APLICACIÓN
tess hsu
2

Puedes probar esto

  1. Actualice displayName en app.json al nuevo nombre
  2. Eliminar directorios ios / y android /
  3. Ejecutar react-native eject
  4. Ejecute el enlace react-native
Sarath Ak
fuente
2
eject parece no funcionar si sobre React 0.6 superior, por lo que el comando muestra error: error Comando no reconocido "eject".
tess hsu
2

antes de cambiar el nombre de la aplicación, obtenga la copia de seguridad de su código y luego, vaya a la siguiente ruta y reemplace el nombre de su aplicación con el nuevo nombre de la aplicación y cambie un archivo más app.json E: *** \ android \ app \ src \ main \ res \ valores \ strings.xml

<resources>
    <string name="app_name">New Name</string>
</resources>

app.json

{
  "name": "oldName",
  "displayName": "New Name"
}
Gauravsbagul
fuente
2

Simplemente camino

PROYECTO> android> aplicación> principal> res> estilo

Luego cambia el nombre de la aplicación

Chaurasia
fuente
1

en primer lugar, cree una copia de seguridad completa del proyecto, incluidos los módulos de nodo (para restaurar iconos / fotos, etc. en el futuro)

  1. Actualice el nombre y displayName en app.json al nuevo nombre
  2. cambiar el nombre de la carpeta de la aplicación igual que el nombre de la aplicación
  3. Eliminar directorios ios / y android /
  4. eliminar módulos ndoe
  5. actualice el nombre en package.json (debe usar un nuevo nombre para importar y requerir () en su código. Por ejemplo: importar {x} desde 'NewAppName / src / api')
  6. vigilante reloj-del-todo
  7. rm -rf / tmp / haste-map-react-native-packager- *
  8. rm -rf / tmp / metro-bundler-cache- *
  9. reiniciar pc
  10. sudo npm install
  11. expulsar react-native
  12. restaurar iconos / imágenes
  13. enlace nativo de reacción
  14. reiniciar pc
  15. ejecutar la aplicación precaución: es posible que deba configurar las cosas manualmente. en mi caso SplashScreen
Hussain Abu Alamal
fuente
muy complicado no simple
Arif Hidayat