Как изменить сборку отображаемого имени приложения с помощью флаттера?


132

Я создал приложение, используя flutter create testapp. Теперь я хочу изменить название приложения с «testapp» на «My Trips Tracker». Как я могу это сделать ?

Я попытался изменить это, AndroidManifest.xmlи он был изменен, но есть ли способ, которым флаттер позволяет это сделать?


2
Манифест - это единственный способ изменить имя, отображаемое в приложении «Настройки», и имя, отображаемое на значке запуска.
CommonsWare

Для визуальных людей это видео покажет вам весь процесс youtube.com/watch?v=05twEATiS44
Infinite Looper

Ответы:


117

ОБНОВЛЕНИЕ: из комментариев этот ответ кажется устаревшим

В документации Flutter указано, где вы можете изменить отображаемое имя вашего приложения как для Android, так и для iOS. Это может быть то, что вы ищете:

Для Android

Похоже, вы уже нашли это в записи AndroidManifest.xmlas application.

Просмотрите файл манифеста приложения по умолчанию AndroidManifest.xml, расположенный в / android / app / src / main /, и убедитесь, что значения верны, особенно:

приложение : отредактируйте тег приложения, чтобы отразить окончательное имя приложения.

Для iOS

См. Review Xcode project settingsРаздел:

Перейдите к настройкам вашей цели в Xcode:

В Xcode откройте Runner.xcworkspace в папке ios вашего приложения .

Чтобы просмотреть настройки вашего приложения, выберите проект Runner в навигаторе проекта Xcode. Затем на боковой панели основного вида выберите цель Runner .

Выберите вкладку Общие . Далее вы проверите наиболее важные настройки:

Отображаемое имя : имя приложения, которое будет отображаться на главном экране и в другом месте.


15
Да, спасибо за ответ. Я знал, как это сделать. Мне просто было любопытно узнать, справляется ли флаттер с этим из одной точки.
rajaishwary

2
Это собственные методы для этого. Я хочу знать, что flutter обрабатывает это с единой точки или нет?
Панкадж

2
@AshtonThomas Я могу изменить это, но после очистки, восстановления и т. Д. Приложение runner сбрасывает свое значение, как я могу сохранить это? (Как я понимаю, проект Runner воссоздается после чистой сборки или около того)
Johnykutty

4
Если вы измените отображаемое имя в проекте runner, он перестанет работать. Это должен быть «Runner». По-видимому, необходимо изменить имя и данные версии только в файле pubspeck.yaml, что довольно неудобно, если приложения для android и ios имеют разные версии или локализацию имени
Dpedrinha

8
Для iOS это неверно. Следует изменить CFBundleName в Info.plist. Flutter не найдет приложение, так как он будет искать Runner.app, и если вы измените его в Xcode, это уже не так.
pjotr_dolphin

218

Android

Открытый AndroidManifest.xml(расположен по адресу android/app/src/main)

<application
    android:label="App Name" ...> // Your app name here

iOS

Открытый info.plist(расположен по адресу ios/Runner)

<key>CFBundleName</key>
<string>App Name</string> // Your app name here

Не забывай бежать

flutter clean

1
Для Android это не работает. Попытка изменения от <Старое_имя> до <NewName>, то саис сообщение об ошибке: Manifest merger failed : Attribute application@label value=(OldName) from AndroidManifest.xml:21:9-32 is also present at AndroidManifest.xml:21:9-32 value=(NewName).. Что ты предлагаешь ??
iKK

4
У вас может быть более одного AndroidManifest.xmlфайла в вашем проекте, вам нужно будет открыть тот, который находится по адресу android/app/src/main.
CopsOnRoad

Спасибо, вот и все! У меня был еще один файл Manifest.xml в разделе отладки. Теперь это работает!
iKK

2
Это кажется , что все виды сломанным с последними обновлениями IOS и / или обновлениями Каталины и / или обновлением флаттера. Я понятия не имею. При изменении этого параметра развертывание прерывается, поскольку папка <appname> .app переименовывается из согласованного Runner.app во все, что вы указали в отображаемом имени, а затем прерывается «бег с дрожью». Теперь, если вы хотите изменить его, вы назначаете ключ name: <значение> в файле YAML, а затем выполняете глобальный поиск / замену по имени пакета. (вздох)
ChrisH

1
@ChrisH Я использую обновленную версию всего, и она работает должным образом.
CopsOnRoad

27

Вы можете изменить его в iOS, не открывая Xcode, отредактировав проект / ios / Runner / info.plist <key>CFBundleDisplayName</key>на строку, которую вы хотите использовать в качестве своего имени.

FWIW - меня разочаровало внесение изменений в Xcode и Flutter, поэтому я начал фиксировать все изменения перед открытием Xcode, чтобы я мог видеть, где изменения проявляются в проекте Flutter.


21

Есть плагин.

https://pub.dev/packages/flutter_launcher_name

Напишите pubspec.yaml

dev_dependencies: 
  flutter_launcher_name: "^0.0.1"

flutter_launcher_name:
  name: "yourNewAppLauncherName"

и беги

flutter pub get
flutter pub run flutter_launcher_name:main

Вы можете получить такой же результат, как редактирование AndroidManifes.xmlи Info.plist.


2
Ницца! Протестирую плагин. Но, насколько мне известно, если вы измените отображаемое имя в файле info.plist с «Runner», приложение перестанет компилироваться. Это должен быть «Бегун».
Dpedrinha

1
Извините, это не работает. Как сказал Дпедринья, это должен быть «Бегун».
Ми Бе

это работает для меня. Но мне нужно удалить приложение и переустановить его после запуска:flutter pub run flutter_launcher_name:main
Хорхе Вандер Сантана Уренья,

Существует также плагин для замены иконок pub.dev/packages/flutter_launcher_icons
Кату

12
  • Просмотрите файл манифеста приложения по умолчанию, AndroidManifest.xmlрасположенный в<app dir>/android/app/src/main

  • Измените android:labelотображаемое имя по вашему желанию


4

Одна из проблем заключается в том, что в настройках iOS (iOS 12.x) при изменении отображаемого имени имя и значок приложения остаются в настройках iOS как старая версия.


2
что мне помогло: перейдите на вкладку «Информация» и измените «Имя пакета».
Ми Бе

2

Для Android измените имя приложения из папки Android в файле AndroidManifest.xml, android/app/src/mainпусть метка Android будет относиться к имени, которое вы предпочитаете, например.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
<application
`android:label="myappname"`
//the rest of the code
 </application>
</manifest>

2

Начиная с 21.12.2019 вам нужно изменить имя: [NameOfYourApp] в pubspec.yaml. Затем перейдите в меню «Правка»> «Найти»> «Заменить в пути» и замените все вхождения своего предыдущего имени.

Кроме того, на всякий случай измените имена папок в каталоге Android, например android> app> src> main> java> com> example> yourappname.

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

flutter clean

2
Интересно, как вы помещаете отображаемое имя в pubspec со всеми пробелами, буквами кириллицы и т. Д.
Александр Бабич

0

Способ изменения имени для ios и android четко указан в документации следующим образом:

https://flutter.dev/docs/deployment/android https://flutter.dev/docs/deployment/ios

но в случае ios после изменения отображаемого имени из Xcode вы не можете запускать приложение в режиме флаттера, например flutter run

потому что запуск флаттера ожидает имя приложения как Runner. даже если вы измените имя в Xcode, это не сработает.

Итак, я исправил это следующим образом:

переместитесь в то место на вашем проекте флаттера

ios / Runner.xcodeproj / project.pbxproj и найдите и замените свое новое имя на Runner

то все должно работать на flutter runпути

но не забудьте изменить отображаемое имя при следующем выпуске. в противном случае AppStore отклонит ваше имя.


0
  1. Android

Откройте файл AndroidManifest.xml и внесите следующие изменения.

<application
    android:label="App Name" ...> // Your app name here
  1. iOS

Откройте файл info.plist , внесите следующие изменения

<key>CFBundleName</key> <string>App Name</string> // Your app name here


-1

Вы можете изменить его в iOS, не открывая Xcode, отредактировав проект / ios / Runner / info.plist <key>CFBundleDisplayName</key>на строку, которую вы хотите использовать в качестве своего имени. Для Android измените имя приложения из папки Android, в файле AndroidManifest.xml android / app / src / main позвольте метке android ссылаться на имя, которое вы предпочитаете, например.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
<application
`android:label="test"`
//the rest of the code
 </application>
</manifest>
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.