在 React Native 中更改应用名称
Posted
技术标签:
【中文标题】在 React Native 中更改应用名称【英文标题】:Change App Name In React Native 【发布时间】:2016-04-20 01:54:31 【问题描述】:我正在尝试弄清楚如何更改 ReactNative 应用名称。 我设备上安装的 APK 只是“App”,带有 android 图标。 我该如何更改?
我尝试更改 package.json 并重新运行 react-native 升级,但它没有更新 AndroidManifest.xml
【问题讨论】:
【参考方案1】:生成器不会覆盖位于android/app/src/main/res/values/
中的strings.xml
文件,因此您必须手动更改app_name
变量
【讨论】:
还要确保您的 MainActivity 中的 getMainComponentName() 返回您的反应原生应用程序名称。即 app.json 中的名称 ios呢? react-native-rename 显然是 unmaintained and unuseable at this point. iOS 呢? 要更改 react-native IOS App 显示名称,您可以从 info.plist 更改 'Bundle display name' 属性【参考方案2】:适用于安卓
修改app.json文件中的displayName
修改android/app/src/main/res/values/strings.xml中的app_name
然后一一运行这些命令
cd android
./gradlew clean
cd ..
react-native run-android
适用于 iOS
在项目目标(常规选项卡)中修改显示名称
在Project target中选择你的应用项目作为Host Application进行测试(General Tab)
【讨论】:
非常感谢,在尝试了这么多其他解决方案后,这对我有用 你先生,是救命稻草 它没有在主机应用程序下拉菜单中显示我的display name
displayName
对应app.json
中的键name
【参考方案3】:
试试react-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>
【讨论】:
虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review 已解决的问题 @MikeS。这不是一个不好的做法,因为它不是项目依赖项而是一个工具,并且将它们作为项目依赖项确实是一个不好的做法。就像 CRNA,你应该把它当作一个全局工具 警告:不要使用这个库。它会毁了你的项目。永远不要使用它。 请勿使用。在撰写本文时,此软件包已被弃用/未维护,将使您的项目无法使用。【参考方案4】:我为 android 执行此操作的方式(hacky,但它有效)只是更改了字符串中的 app_name
字段
android/app/src/main/res/values/strings.xml
它会将您安装的 android 应用程序的名称更改为您输入的任何值。
【讨论】:
我试过这个方法,但它没有解决我的问题。当应用程序在我的手机中运行时,它会显示错误“应用程序首先:
在您的 react-native 项目目录中打开 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 install 命令。现在,只需在您的设备中安装应用即可。
【讨论】:
如果我想更改捆绑标识符? @OliverD 对于 Android,更改 android/app/build.gradle 文件中的应用程序 ID;对于 iOS,更改 iOS 项目中的 Bundle Identifier。不要忘记重新配置您的第三方帐户,以防 google 登录、facebook 登录等。 如果您希望一切都干净,您还需要打开 xcode 并从那里重命名您的应用程序。【参考方案6】:我发现,如果您想同时更改应用名称和包名称(即重命名整个应用),则需要执行以下步骤:
确保您在 android/
和 ios/
子文件夹中没有任何珍贵的(非生成的、手动复制的资源)。
删除android/
和ios/
文件夹。
将package.json
中的"name"
条目更改为新名称。
在index.android.js
和index.ios.js
中更改应用名称:
AppRegistry.registerComponent('NewAppName', () => App);
运行react-native upgrade
重新生成平台子文件夹。
如果您有链接资源(如自定义字体等),请运行 react-native link
。
如果您有其他生成的资源(例如应用程序图标),请运行脚本来生成它们(例如 yo
)。
最后,在每台设备上卸载旧应用并运行新应用。
【讨论】:
请注意:我认为第 1 步应该是create a repo test branch first
。
截至今天,有一个新的 npm 包声称可以最大限度地减少这些问题,react-native-git-upgrade
。但我无法使用yarn
运行它。我的项目没有使用npm
,也不想全局安装。所以,试图找出我的选择。到目前为止,react-native-git-upgrade
从 CLI 失败
非常感谢您的步骤,我遵循了一些步骤,它奏效了
还要做debug keystore ***.com/a/57438549/5900793
react-native upgrade
不再生成平台子文件夹。【参考方案7】:
2021 年更新 React 原生版本:0.64.0
Android
查找并打开以下文件并根据需要进行更改。 \android\app\src\main\res\values\strings.xml
<resources>
<string name="app_name">My App</string>
</resources>
app.json
"name": "MyApp",
"displayName": "My App"
iOS
找到并打开 \ios\YourAppName\Info.plist
并根据需要进行更改。注意:如果您的名字有空格,请使用 &#x2007;
而不是空格。
<key>CFBundleDisplayName</key>
<string>My App</string>
【讨论】:
太棒了!谢谢!【参考方案8】:如果您只要求 Android,这里是解决方案
修改/app.json
文件中的displayName
在android/app/src/main/res/values/strings.xml
app_name
那么 一个一个地运行这些命令
cd android
gradlew clean
cd ..
react-native run-android
【讨论】:
为什么我不能运行 react-native 弹出,它说我name
必须在 app.json
中定义,但我有它?
这样会报错:Invariant vilation: xxxAPP has not been registered。 (xxxAPP 是旧的应用名称)
如果你在 windows 上运行 gradlew 应该使用 ./gradlew 运行
@tesshsu 安装新名称的APP前,请先卸载之前的APP。【参考方案9】:
如果您的 android 文件夹中没有任何珍贵的东西,您可以删除该文件夹,然后运行 react-native upgrade
然后运行 react-native android
。这些将重新创建 AndroidManifest.xml 以及必要的文件和文件夹。 (在 Windows 10 中试用 0.18)
【讨论】:
也适用于 macOS Sierra。【参考方案10】:对于安卓 android/app/src/main/res/values/strings.xml 我的安卓应用
iOS 版 只需在 xCode 选择项目选项卡中打开它,然后重命名即可。
【讨论】:
【参考方案11】:只需更改<string name="app_name"> 'NEW_APP_NAME' </string>
位于
[project_dir]/android/app/src/main/res/values/strings.xml
注意:推荐
反应原生重命名
by Paul Nyondo 可能会影响 MainApplication.java 文件,不要使用它!
【讨论】:
同意,我没有 react-native-rename 并且它在 APP 中出现了另一个问题【参考方案12】:你可以试试这个
-
将 app.json 中的 displayName 更新为新名称
删除ios/和android/目录
运行 react-native 弹出
运行 react-native 链接
【讨论】:
如果超过 React 0.6 以上,弹出似乎不起作用,因此命令显示错误:错误无法识别命令“弹出”。【参考方案13】:在更改应用名称之前获取您的代码备份,然后,转到以下路径并将您的应用名称替换为新的应用名称,然后再更改一个文件 app.json E:***\android\app\src\main\res\values\strings.xml
<resources>
<string name="app_name">New Name</string>
</resources>
app.json
"name": "oldName",
"displayName": "New Name"
【讨论】:
【参考方案14】:简单的方法
PROJECT >android > app > main > res > style
然后更改应用名称
【讨论】:
【参考方案15】:首先创建项目的完整备份包括节点模块(以便将来恢复图标/照片等)
-
将 app.json 中的 name 和 displayName 更新为新名称
将应用文件夹重命名为与应用名称相同
删除 ios/ 和 android/ 目录
删除 ndoe 模块
更新 package.json 中的名称(您必须在代码中为 import & require() 使用新名称。例如:import x from 'NewAppName/src/api')
watchman watch-del-all
rm -rf /tmp/haste-map-react-native-packager-*
rm -rf /tmp/metro-bundler-cache-*
重启电脑
sudo npm install
react-native 弹出
恢复图标/图像
react-native 链接
重启电脑
运行应用程序
警告:您可能需要手动设置。就我而言,SplashScreen
【讨论】:
很复杂不简单【参考方案16】:将我在 android/app/src/main/res/values/strings.xml 中的应用名称更改为:
<resources>
<string name="app_name">My App</string>
</resources>
并使用 npx react-native run-android 重新运行
【讨论】:
以上是关于在 React Native 中更改应用名称的主要内容,如果未能解决你的问题,请参考以下文章
如何在 fbsdk 登录 React Native 中更改名称应用程序('项目想要使用 facebook.com')iOS