Переименование проекта React Native?


84

Есть ли инструкции о том, что нужно изменить, чтобы переименовать проект React Native? У меня есть приложение, которое называется чем-то вроде MyAppIOS, и я хочу переименовать его в MyApp (теперь, когда поддержка Android отсутствует)

Ответы:


66

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

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

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


1
Большинство должно уловить это, но, к вашему сведению, этот ответ ТОЛЬКО ДЛЯ ANDROID .
— chapeljuice

84

Вы можете изменить атрибут name в package.json, запустить react-native upgradeи просто позволить реакции перезаписать файлы android / ios. Однако не перезаписывайте ваши индексные файлы, если есть несохраненный код.

Затем измените строку вашего приложения с

AppRegistry.registerComponent('MyAppIOS', () => MyAppIOS);

Кому:

AppRegistry.registerComponent('MyApp', () => MyApp);

1
Мне также пришлось соответственно переименовать основной класс: class MyApp extends Component {.... и т. Д.
— Per Quested Aronsson

4
это не удаляет старые файлы MyAppIOS, поэтому вам также следует сделать: $ rm -rf android/app/src/main/java/com/myappios && rm -rf ios/MyAppIOS*
— Нил Саркар,

6
Я думаю, что react-native upgradeэто обновит и вашу систему реагирования, будьте осторожны, потому что это может что-то сломать с вашими зависимостями.
— Herlon Aguiar

Мы обнаружили ряд дополнительных шагов, разбросанных по сети - опубликовали полный список (и принимаем запросы на вытягивание!) По адресу: github.com/2MR/renaming-a-react-native-project
— Freewalker

42

Что просто работает для меня несколько раз, описано ниже;

  • Сначала скопируйте каталог, в котором существует ваше приложение с предполагаемым изменением имени. И перейдите в свой недавно клонированный каталог.
  • Измените имя в index.ios/android.jsфайле, указанное в качестве параметра, наAppRegistry .
  • Измените название и версию соответственно на package.json
  • удалить /iosи /androidпапки, которые остались от вашего старого приложения, а такжеapp.json файл, если он у вас есть.
  • беги, $react-native upgradeчтобы генерировать /iosи/android снова папки.
  • бежать $react-native link для любой внешней зависимости.
  • наконец-то беги $react-native run-iosили что хочешь.

1
В новых версиях react native вы также меняете значения в app.json, если я правильно помню.
— Кристофер Брэдшоу

4
Да, похоже, что после 0.41 response-native предлагает официальный способ повторно сгенерировать собственные папки /iosи файлы /android. Больше можно проверитьreact-native eject
— milkersarac

Хороший источник: medium.com/the-react-native-log/...
— gusgard

27

Для iOS также доступен способ изменения настроек xcodeproj.

Покажите <название вашего приложения> -> Info.plist и добавьте отображаемое имя Bundle .

изменение имени приложения iOS:

введите описание изображения здесь



8
  1. Обновите displayName в app.json до нового имени
  2. Удалите каталоги ios / и android / в корневом проекте
  3. В командной строке Выполнить:

    react-native eject
    react-native link 
    

7

Вы также можете проверить пакет npm ( response-native-rename ):

Применение:

реагировать-native-rename <новое имя>

Он отлично подходит для моего проекта.


В моем приложении эта команда удаляет мои файлы java в android / app / src / main / java / com / appname!
— Джонси

ВНИМАНИЕ: Не используйте эту библиотеку. это испортит ваш проект. Никогда не используйте это.
— MRSafari

6

Вы можете использовать react-native-renameпакет npm.

npm install react-native-rename
react-native-rename [newName]

https://www.npmjs.com/package/react-native-rename


1
Ссылка на решение приветствуется, но убедитесь, что ваш ответ полезен и без нее: добавьте контекст вокруг ссылки, чтобы ваши друзья-пользователи имели некоторое представление, что это такое и почему оно есть, а затем процитируйте наиболее релевантную часть страницы, которую вы повторная ссылка на, если целевая страница недоступна. Ответы, которые представляют собой не более чем ссылку, могут быть удалены.
— Filnor

Кроме того, вы должны писать свои ответы только на английском языке, так как это сайт только на английском языке. Для португальского языка перейдите на pt.stackoverflow.com
— Филнор

3
ВНИМАНИЕ: Не используйте эту библиотеку. это испортит ваш проект. Никогда не используйте это.
— MRSafari

@MRSafari -1, отлично сработал для меня на катапультированном (неэкспо) проекте
— Крис Шеррифф

@MRSafari Вот почему есть git?
— iRohitBhatia

5

Попробуйте использовать react-native-renameбиблиотеку от npm. Работает как шарм


1
Это действительно комментарий, а не ответ. Как только у вас будет достаточная репутация, вы сможете комментировать любой пост ; вместо этого предоставьте ответы, которые не требуют пояснений от спрашивающего .
— Peacetype

5
  1. Для приложения IOS также доступно изменение настроек xcodeproj.

Откройте Info.plistфайл из directory/ios/{appname}каталога вашего проекта и измените отображаемое имя Bundle.

<key>CFBundleDisplayName</key>
<string>NEW APP NAME</string>
  1. Для приложения Android вы можете изменить папку Android в каталоге вашего проекта.

    cd android/app/src/main/res/values/

откройте strings.xmlфайл и измените имя приложения в

 <string name="app_name">NEW APP NAME</string>

4

Как уже упоминалось здесь ( https://github.com/facebook/react-native/issues/4227 ), вам не нужно добавлять Bundle display nameключ, как сказал @janus_wel.

Вы можете просто обновить Bundle nameс $(PRODUCT_NAME)до My App.


Это единственное решение, которое у меня сработало. Я добавил настройку сборки под названием CUSTOM_DISPLAY_NAME (для поддержки разных имен приложений для отладки и выпуска), а затем просто обновил ее Bundle nameдо$(CUSTOM_DISPLAY_NAME)
— Кевин Купер,

1
  • Прежде всего скопируйте адрес, по которому существует ваше приложение с измененным именем. И перейдите в свой недавно клонированный каталог.

  • Замените имя в файле index.ios / android.js, которое передается в качестве параметра AppRegistry.

  • обновите имя и версию соответственно в package.json, удалите папки / ios и / android, которые остались от вашего старого приложения и от

  • запустите обновление $ response-native, чтобы снова создать папки / ios и / android. и запустите ссылку $ response-native для любой внешней зависимости.

  • наконец, запустите $ response-native run-ios или другое.


1

На всякий случай Ни одно из решений не помогло вам или попытка что-то сломала ваше приложение. Это основы.

  1. Запустите новый проект, поддерживающий реакцию, с любым именем, на которое вы хотите изменить свое приложение.
  2. Скопируйте список зависимостей из предыдущего проекта в новый package.json
  3. Скопируйте старые файлы проекта, сохраняя ту же структуру.
  4. Бежать npm install
  5. Бежать react-native run-android

Это должно вернуть вас в нужное русло


0

Решение сработало для меня: сначала измените имя папки вашего проекта, ориентированного на реакцию, а затем

npm install react-native-rename

react-native-rename newName

Меня устраивает


0

Переименуйте приложение, поддерживающее реакцию, с помощью одной команды response-native-rename

Установка

yarn global add react-native-rename или же npm install react-native-rename -g

Использование: выполните следующую команду в каталоге проекта.

react-native-rename <newName>

Пример:

react-native-rename "Travel App"


0

Следующие шаги необходимо выполнить при переименовании проекта / приложения в react Native 1. создать новую папку test.

  1. Скопируйте и вставьте все файлы из демо в тестовую папку

  2. Измените имя в файле package.json

  3. Измените имя в файле package-lock.json

  4. Измените имя в файле App.json

  5. Удалить папки / ios и / android

  6. Запустите команду response-native eject, чтобы снова создать папки / ios и / android

  7. запустите реакцию на родную ссылку для любой внешней зависимости.

  8. наконец, запустите приложение, используя команду run-android для реакции.

Для получения дополнительной информации посетите https://youtu.be/_lgH9LXf818

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.