Изменить имя приложения в React Native

91

Я пытаюсь понять, как изменить имя приложения ReactNative. Установленный APK на моем устройстве - это просто «Приложение» со значком Android. Как я могу это изменить?

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

Перегрузка119
источник

Ответы:

138

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

умер
источник
Также убедитесь, что getMainComponentName () в вашем MainActivity возвращает ваше собственное имя приложения. ie имя в app.json
Джон Мурагури
6
как насчет IOS?
Abd Rmdn
2
response
RT_
А как насчет iOS?
Мухаммад Ашфак
7
для изменения отображаемого имени приложения для iOS, встроенного в реакцию, вы можете изменить свойство «Отображаемое имя пакета» из info.plist
Хассан Раза,
62

Попробуйте response-native-rename, этот пакет npm упростит процесс

This package assumes that you created your react-native project 
using react-native init.

Примечание. Этот пакет не пытается правильно переименовать артефакты сборки, такие как цели установки ios / build или Cocoa Pod. После переименования проекта вы должны очистить, построить и переустановить сторонние зависимости, чтобы он правильно работал с новым именем.

// in project directory

   npx react-native-rename <newName>
Пол Нондо
источник
6
Хотя эта ссылка может дать ответ на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными, если ссылка на страницу изменится. - Из
отзыва
1
проблема решена
Пол
2
@MikeS. это неплохая практика, поскольку это НЕ зависимость проекта, а инструмент, и использование их в качестве зависимостей проекта действительно является плохой практикой. Это похоже на CRNA, вы должны иметь его как глобальный инструмент
Густаво Топете
17
ВНИМАНИЕ: Не используйте эту библиотеку. это испортит ваш проект. Никогда не используйте это.
MRSafari
21
НЕ ИСПОЛЬЗОВАТЬ. На момент написания этот пакет устарел / не поддерживается и сделает ваш проект непригодным для использования.
SQueryL
44

Для Android

Измените displayName в app.json файле

Измените app_name в android / app / src / main / res / values ​​/ strings.xml

затем запустите эти команды одну за другой

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

Для iOS

Изменить отображаемое имя в цели проекта (вкладка «Общие»)

Выберите проект своего приложения в качестве основного приложения в целевом объекте проекта для тестирования (вкладка «Общие»)введите описание изображения здесь

Чхай Рит Хай
источник
2
Большое спасибо, это сработало для меня после того, как я попробовал так много других решений
Cherucole
1
вы, сэр,
спасает
28

То, как я сделал это для android (хакерский, но он работает), просто изменил строковое поле app_name в

Android / приложение / SRC / основной / res / значения / strings.xml

Он изменит имя вашего установленного приложения для Android на то, что вы указали в качестве значения.

Стив Фук
источник
1
Я попробовал этот метод, но он не решил мою проблему. Когда приложение запускается на моем мобильном телефоне, появляется сообщение об ошибке: «Приложение <предыдущее имя приложения> не было зарегистрировано»
NIKHIL CM
1
Пробовал метод @KlaasNotFound. Успешно запущена новая сборка
NIKHIL CM
У меня такая же проблема, как у @NIKHILCM, с react-native 0.56
Марекки
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).

  • Наконец, удалите старое приложение на каждом устройстве и запустите новое.

KlaasNotFound
источник
7
Просто примечание: я думаю, что шаг №1 должен быть create a repo test branch first.
Майк С.
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больше не генерирует подпапки платформы.
Dogu Deniz Ugur
12

Прежде всего: откройте 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: Open 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 и т. Д.
Рахул Растоги,
11

Если у вас нет какой - либо вещи драгоценной в вашем андроиде папки, вы можете удалить папку и запустить react-native upgradeзатем react-native android. Это воссоздает AndroidManifest.xml вместе с необходимыми файлами и папками. (Пробовал на 0.18 в Windows 10)

Зеленый
источник
Также работает на macOS Sierra.
Prashant Ghimire
10

Если вы просите только Android, вот решение

Изменить displayNameв /app.jsonфайле

Изменить app_nameвandroid/app/src/main/res/values/strings.xml

затем запустите эти команды одну за другой

cd android
gradlew clean
cd ..
react-native run-android
Мухаммад Салман
источник
Почему я не могу запустить React-native eject, и он говорит, что я nameдолжен быть определен в, app.jsonно он у меня есть?
Mr-Programs
это вызовет ошибку: Неизменяемое изменение: xxxAPP не зарегистрирован. (xxxAPP было старым названием приложения)
tess hsu
7

для android android / app / src / main / res / values ​​/ strings.xml Мое приложение для Android

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

Бисваджит
источник
3

просто измените <string name="app_name"> 'NEW_APP_NAME' </string> расположенный в

[каталог_проекта] /android/app/src/main/res/values/strings.xml

ПРИМЕЧАНИЕ: рекомендуется

реагировать родной переименовать

от Paul Nyondo может быть , влияет MainApplication.java файл, НЕ ИСПОЛЬЗОВАТЬ ЕГО!

Саид Эйвази
источник
Согласен, у меня есть isntall react-native-rename, и это еще одна проблема в приложении
tess hsu
2

Вы можете попробовать это

  1. Обновите displayName в app.json до нового имени
  2. Удалить каталоги ios / и android /
  3. Запустите React-native eject
  4. Запустить реактивную ссылку
Сарат Ак
источник
2
eject кажется не работает, если React выше 0.6, поэтому команда show error: error Нераспознанная команда «eject».
tess hsu 05
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"
}
Гауравсбагул
источник
2

Просто путь

ПРОЕКТ> android> приложение> главная> res> стиль

Затем измените название приложения

Chaurasia
источник
1

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

  1. Обновите name и displayName в app.json до нового имени
  2. переименовать папку приложения так же, как имя приложения
  3. Удалить каталоги ios / и android /
  4. удалить модули ndoe
  5. обновить имя в package.json (вы должны использовать новое имя для import и require () в своем коде. например: import {x} from 'NewAppName / src / api')
  6. сторож смотреть-дель-все
  7. rm -rf / tmp / haste-map-react-native-packager- *
  8. rm -rf / tmp / метро-бандлер-кеш- *
  9. перезагрузить компьютер
  10. sudo npm install
  11. реагировать-родной выброс
  12. восстановить значки / изображения
  13. реакция на родную ссылку
  14. перезагрузить компьютер
  15. осторожно запустите приложение : возможно, вам придется настроить все вручную. в моем случае SplashScreen
Хуссейн Абу Аламаль
источник
очень сложно, а не просто
Ариф Хидаят