在 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 应用程序的名称更改为您输入的任何值。

【讨论】:

我试过这个方法,但它没有解决我的问题。当应用程序在我的手机中运行时,它会显示错误“应用程序 尚未注册” 试过@KlaasNotFound 方法。成功让新的构建运行起来 我遇到了像 @NIKHILCM 一样的问题,使用 react-native 0.56【参考方案5】:

首先: 在您的 react-native 项目目录中打开 app.json 文件。而且,只需在此文件中替换 displayName json 属性的值。例如:


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

对于 Android 应用: 打开strings.xml 文件,将&lt;string name="app_name"&gt; 标记的值替换为您的新应用名称。例如:

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

对于 iOS: 打开info.plist,将&lt;key&gt;CFBundleDisplayName&lt;/key&gt;后面的值替换为你的应用名称。例如:

<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.jsindex.ios.js 中更改应用名称: AppRegistry.registerComponent('NewAppName', () =&gt; 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 并根据需要进行更改。注意:如果您的名字有空格,请使用 &amp;#x2007; 而不是空格。

<key>CFBundleDisplayName</key>
<string>My&#x2007;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】:

只需更改&lt;string name="app_name"&gt; 'NEW_APP_NAME' &lt;/string&gt; 位于

[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 中更改应用名称的主要内容,如果未能解决你的问题,请参考以下文章

在 react-native 应用程序中更改包名称

如何在 fbsdk 登录 React Native 中更改名称应用程序('项目想要使用 facebook.com')iOS

在 react-native 中更改 TextInput 焦点的 underlineColorAndroid

在 React Native 中更改视频源

react-native 导入时如何更改默认组件名称?

更改包名称 React Native