【问题标题】:Change App Name In React Native在 React Native 中更改应用名称
【发布时间】:2016-04-20 01:54:31
【问题描述】:

我正在尝试弄清楚如何更改 ReactNative 应用名称。 我设备上安装的 APK 只是“App”,带有 Android 图标。 我该如何更改?

我尝试更改 package.json 并重新运行 react-native 升级,但它没有更新 AndroidManifest.xml

【问题讨论】:

    标签: react-native


    【解决方案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 stackoverflow.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】:

      你可以试试这个

      1. 将 app.json 中的 displayName 更新为新名称
      2. 删除ios/和android/目录
      3. 运行 react-native 弹出
      4. 运行 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】:

          首先创建项目的完整备份包括节点模块(以便将来恢复图标/照片等)

          1. 将 app.json 中的 name 和 displayName 更新为新名称
          2. 将应用文件夹重命名为与应用名称相同
          3. 删除 ios/ 和 android/ 目录
          4. 删除 ndoe 模块
          5. 更新 package.json 中的名称(您必须在代码中为 import & require() 使用新名称。例如:import {x} from 'NewAppName/src/api')
          6. watchman watch-del-all
          7. rm -rf /tmp/haste-map-react-native-packager-*
          8. rm -rf /tmp/metro-bundler-cache-*
          9. 重启电脑
          10. sudo npm install
          11. react-native 弹出
          12. 恢复图标/图像
          13. react-native 链接
          14. 重启电脑
          15. 运行应用程序 警告:您可能需要手动设置。就我而言,SplashScreen

          【讨论】:

          • 很复杂不简单
          【解决方案16】:

          将我在 android/app/src/main/res/values/strings.xml 中的应用名称更改为:

          <resources>
              <string name="app_name">My App</string>
          </resources>
          

          并使用 npx react-native run-android 重新运行

          【讨论】:

            猜你喜欢
            • 2017-09-03
            • 2020-04-17
            • 2016-09-20
            • 2016-11-29
            • 1970-01-01
            • 2020-12-09
            • 2017-03-30
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多