Змінити назву програми в React Native


85

Я намагаюся зрозуміти, як змінити назву програми ReactNative. Встановлений файл APK на моєму пристрої - просто "Додаток" із піктограмою Android. Як я можу це змінити?

Я спробував змінити package.json і повторно запустити рідне оновлення, але він не оновив AndroidManifest.xml

Відповіді:


134

Генератор не замінює strings.xmlфайл, що знаходиться в android/app/src/main/res/values/, тому вам доведеться змінювати app_nameзмінну вручну


Також переконайтеся, що getMainComponentName () у вашій MainActivity повертає ваше власне ім’я реакції. тобто ім’я в app.json
Джон Мурагурі

5
як щодо IOS?
Абд Рмдн,


А як щодо iOS?
Мухаммад Ашфак,

4
щоб змінити відображуване ім’я додатка IOS для реагування, ви можете змінити властивість „Bundle display name” із info.plist
Hassan Raza

61

Спробуйте реагувати-native-rename цього пакета npm полегшить процес

// in project directory

   npx react-native-rename <newName>

6
Хоча це посилання може відповісти на питання, краще включити сюди основні частини відповіді та надати посилання для довідки. Відповіді лише на посилання можуть стати недійсними, якщо пов’язана сторінка зміниться. - З огляду
m_callens

1
вирішено питання
Пол Ньондо,

2
@MikeS. це не погана практика, оскільки це НЕ залежність від проекту, а інструмент, і мати їх як проектні залежності насправді є поганою практикою. Це як CRNA, ви повинні мати його як глобальний інструмент
Густаво Топете

16
ПОПЕРЕДЖЕННЯ: Не використовуйте цю бібліотеку. це зіпсує ваш проект. Ніколи не використовуйте це.
MRSafari,

20
НЕ ВИКОРИСТОВУВАТИ. На момент написання статті цей пакет застарів / не підтримується і зробить ваш проект непридатним для використання.
SQueryL

38

Для Android

Змінити displayName у файлі app.json

Змініть ім'я_програми в android / app / src / main / res / values ​​/ strings.xml

потім виконайте ці команди по одній

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

Для iOS

Змінення відображуваного імені в цілі проекту (вкладка Загальне)

Виберіть проект програми як хост-програму в цілі проекту для тестування (Загальна вкладка)введіть тут опис зображення



ти, сер, це рятувальник життя
Jithin

28

Те, як я це зробив для android (хакі, але це працює), просто змінило рядок у полі app_name у

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

Це змінить назву встановленого додатка для Android на те, що ви вказали як значення.


1
Я спробував цей метод, але він не вирішив моєї проблеми. Коли програма запускається на моєму мобільному телефоні, вона повідомляє про помилку "Додаток <попередня назва програми> не зареєстровано"
NIKHIL CM

1
Спробував метод @KlaasNotFound. Успішно отримано оновлення нової збірки
NIKHIL CM

У мене така сама проблема, як @NIKHILCM, з реакцією рідного
коду

15

Я вважаю, що якщо ви хочете змінити як назву програми, так і назву пакета (тобто перейменувати всю програму), необхідні наступні кроки:

  • Переконайтеся, що у вас немає нічого дорогоцінного (негенеровані, скопійовані вручну ресурси) у підпапках android/та ios/.

  • Видаліть як папку, так android/і ios/.

  • Змініть "name"запис у вашому package.jsonна нове ім’я.

  • Змініть назву програми як у вашому, так index.android.jsі в index.ios.js: AppRegistry.registerComponent('NewAppName', () => App);

  • Запустіть, react-native upgradeщоб відтворити підпапки платформи.

  • Якщо у вас пов’язані ресурси (наприклад, користувацькі шрифти тощо), запустіть react-native link.

  • Якщо у вас є інші генеровані ресурси (наприклад, піктограми програм), запустіть сценарії, щоб їх генерувати (наприклад yo).

  • Нарешті, видаліть стару програму на кожному пристрої та запустіть нову.


7
Тільки примітка: я думаю, що крок 1 повинен бути create a repo test branch first.
Mike S.

1
На сьогоднішній день, є новий НПМ пакет , який стверджує , щоб мінімізувати ці проблеми, react-native-git-upgrade. Але я не можу змусити його працювати, використовуючи yarn. Мій проект не використовує npm, а також не хочу встановлювати його глобально. Отже, намагаюся з’ясувати мої варіанти. Поки що react-native-git-upgradeне вдається з CLI
Майк С.

1
велике спасибі за ваші кроки, які я
Греко Джонатан,

1
Також потрібно зробити налагодження сховища ключів stackoverflow.com/a/57438549/5900793
Steffo Dimfelt

1
react-native upgradeбільше не генерує підпапки платформи.
Догу Деніз Угур

11

Якщо у вас немає жодної речі, дорогоцінної у вашій папці Android, ви можете видалити папку, а потім запустити react-native upgradeїї react-native android. Вони відтворять AndroidManifest.xml разом із необхідними файлами та папками. (Випробувано 0,18 у Windows 10)


Працює також на macOS Sierra.
Прашант Гіміре,

11

Перш за все: Відкрийте app.jsonфайл у каталозі вашого проекту, що реагує. І просто замініть displayNameзначення властивості json у цьому файлі. наприклад:

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

Для програми Android: Відкрийте strings.xmlфайл, замініть значення <string name="app_name">тегу на нову назву програми. наприклад:

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

Для iOS: Відкрийте info.plist, замініть значення після <key>CFBundleDisplayName</key>на назву вашого додатка. наприклад:

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

Видаліть попередню програму, встановлену на вашому пристрої. Використовуйте npm install у головному каталозі проекту, у каталозі папки ios запустіть команди встановлення pod . Тепер просто встановіть програму на свій пристрій.


Якщо я хочу змінити ідентифікатор набору?
Олівер Д,

@OliverD Для Android змініть ідентифікатор програми у файлі android / app / build.gradle, а для iOS - ідентифікатор пакета в проекті iOS. Не забудьте повторно налаштувати свої сторонні акаунти на випадок входу в Google, входу на facebook тощо
Рахул Растогі,

10

Якщо ви запитуєте лише для Android, ось рішення

Змінити displayNameу /app.jsonфайлі

Змінити app_nameуandroid/app/src/main/res/values/strings.xml

потім виконайте ці команди по одній

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

як так, що я не можу запустити реагувати-native eject, і там сказано, що я nameповинен бути визначений у, app.jsonале у мене є?
Mr-Programs

це призведе до помилки: Незмінна віляція: xxxAPP не зареєстровано. (xxxAPP було давнішою назвою програми)
tess hsu

7

для android android / app / src / main / res / values ​​/ strings.xml My Android App

для ios Просто відкрийте його у xCode, виберіть загальну вкладку проекту, просто перейменуйте його.


3

просто змінити <string name="app_name"> 'NEW_APP_NAME' </string> розміщений в

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

ПРИМІТКА: рекомендується

реагувати-рідне-перейменувати

від Paul Nyondo може бути , впливає MainApplication.java файл, НЕ ВИКОРИСТОВУВАТИ ЙОГО!


Погоджено, у мене було все реакція-native-rename, і це робить ще одну проблему в
tess hsu

2

Ви можете спробувати це

  1. Оновіть displayName у app.json до нового імені
  2. Видаліть каталоги ios / та android /
  3. Запустіть реагувати нативним викидом
  4. Запустити рідне посилання

2
eject, здається, не працює, якщо над React 0.6 верхній, тому команда показує помилку: помилка Нерозпізнана команда "eject".
tess hsu

2

перед зміною назви програми отримайте резервну копію коду, а потім перейдіть до наступного шляху та замініть назву програми на нову назву програми та змініть ще один файл app.json E: *** \ android \ app \ src \ main \ res \ значення \ strings.xml

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

app.json

{
  "name": "oldName",
  "displayName": "New Name"
}


1

перш за все створити цілу резервну копію проекту, включаючи вузлові модулі (для того, щоб відновити піктограми / фотографії .. тощо)

  1. Оновіть ім’я та displayName у app.json до нового імені
  2. перейменувати папку програми так само, як і назву програми
  3. Видаліть каталоги ios / та android /
  4. видалити модулі ndoe -
  5. оновити ім'я в package.json (ви повинні використовувати нове ім'я для імпорту та вимагати () у своєму коді. наприклад: імпорт {x} з 'NewAppName / src / api')
  6. сторожа сторожа-дель-все
  7. rm -rf / tmp / haste-map-response-native-Packager- *
  8. rm -rf / tmp / metro-bundler-cache- *
  9. перезавантажте ПК
  10. sudo npm встановити
  11. реагувати нативним викидом
  12. відновити значки / зображення
  13. реакція-рідне посилання
  14. перезавантажте ПК
  15. запустити додаток обережно: можливо, вам доведеться налаштувати речі вручну. у моєму випадку SplashScreen

дуже складно не просто
Аріф Хідаят
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.