【问题标题】:How to change the "Bundle Identifier" within React Native?如何更改 React Native 中的“Bundle Identifier”?
【发布时间】:2016-07-07 07:05:53
【问题描述】:

开始一个新的 react-native 项目,xcode-project 获得了包标识符“org.reactjs.native.example.XYZApp”。 XYZ 是我真实项目名称的占位符。

有没有办法在 react-native 端更改这个包标识符?当然,我可以在 XCode 中更改它。但这并不安全,因为它可以在 react-native 重新创建 xcode-project 时被覆盖,这可能随时发生,在重建项目时也是如此。

【问题讨论】:

    标签: ios xcode react-native


    【解决方案1】:

    很遗憾没有。事实上,我们今天刚刚在 react Native Facebook 小组中讨论过这个问题。 https://m.facebook.com/groups/586400221495560?view=permalink&id=738954276240153&comment_id=739065029562411&notif_t=group_comment_reply&ref=m_notif

    目前最好的计划是在升级时选择“d”选项以在允许覆盖之前验证文件。

    【讨论】:

    • 是否还是我们无法在React项目的任何地方指定ios bundle id的情况?
    【解决方案2】:

    根据您使用的 react-native 版本,有一堆文件需要在两个平台(android 和 ios)上进行更改

    要编辑的文件列表:

    IOS

    1. [application_build_scheem].plist(这是一个 dict/xml 文件,其中包含默认情况下使用的键如果没有更改添加到项目(react-native-cli init 类型项目)

    安卓

    1. strings.xml(更改app_name键值)
    2. manifest.xml(更改属性)
    3. build.gradle(更改 applicationId 值)
    4. MainActivity.java(更改java类
    5. MainApplication.java(更改java类

    值得一提的是,有一个 npm 模块 (https://www.npmjs.com/package/react-native-ci-tools) 可以完成上述所有操作;使用它,让生活变得轻松。

    更新(2019 年 3 月 6 日)

    更新文件夹路径:

    我们还需要更改文件夹路径以匹配新名称——将com.oldName更改为com.newname.mobile,然后将文件夹路径从app/src/java/com/oldName/更改为app/src/java/com/newname/mobile/

    【讨论】:

      【解决方案3】:

      对于那些想要一个简单的方法来做到这一点的人,我创建了 react-native-app-id,它基本上会编辑提到的文件。 react-native-ci-tools 实际上分叉了我的代码以生成现在已过时的 react-native-app-id-fixed ,它不适用于最新的 react native。不过我的会..

      https://github.com/kyle-ssg/react-native-app-id

      使用就像react-native-app-id com.foo.bar一样简单

      【讨论】:

      • 如果我希望 Android 包名称为 com.foo.bar.android 并且 IOS 包 ID 为 com.foo.bar.ios ?
      • 为此提交 PR 将非常简单,只需要检查进程 ios / android 的单个调用周围的一些参数。可以被称为 react-native-app-id com.foo.bar --ignore-ios
      【解决方案4】:

      更新 iOS bundle id -

      • 从终端或命令提示符导航到 react-native 项目文件夹,然后进入 iOS 文件夹。
      • 输入命令打开ProjectName.xcodeproj

      此命令将在 Xcode 中打开您需要更新应用程序包标识符信息的项目

      要更新 android 软件包名称,请按照以下步骤操作 -

      • 更新“android/app/src/main/java/”文件夹中的文件夹结构 基于您的新软件包名称,例如“com/companyName/appName”
      • 更新 MainActivity.java 文件中的包名
      • 更新 MainApplication.java 文件中的包名
      • 更新 /android/app/src/main/AndroidManifest.xml 中的包名称 文件
      • 更新 /android/app/BUCK 文件中的包名
      • 更新 /android/app/build.gradle 文件中的包名

      【讨论】:

        【解决方案5】:

        如果您想在 react-native 项目中更改包标识符。您必须必须分别为 Android 端和 ios 端更改应用标识符。

        ios

        在xcode中选择根项目,选择General选项卡,可以看到Bundle 标识符到身份部分并更改您的新捆绑标识符 ios应用

        安卓

        1. 转到您的 AndroidManifest.xml。
        2. 只需将光标放在包名上,不要选择它,只需放置即可。
        3. 然后按 shift+F6(window)/F6 (mac) 会弹出一个窗口,填写新标识符并选择重命名包。它会改变 来自 android studio 的任何地方。

        【讨论】:

          【解决方案6】:

          即使使用 react-native-app-id,您也必须将文件移动到新文件夹

          我结束了使用 npm 任务进行升级,首先升级然后运行重命名命令,将 android 文件移动到正确的路径并重新链接以防万一

          【讨论】:

          • 问题与 iOS 版本有关。如果您认为您的答案比以前的答案更好,请提供额外的详细信息(例如要执行的命令等)
          【解决方案7】:

          ios/project.pbxproj 中编辑与项目关联的PRODUCT_BUNDLE_IDENTIFIER使用 XCode 更安全。

          我知道,对于热衷于使用 Xcode 的人,在您的 react native 项目中,该问题要求在没有 XCode 的情况下执行此操作:

          1. xed ios在xcode中打开ios文件夹
          2. 点击左上角图标 (project navigator)
          3. 单击左侧面板中的根项目ProjectName
          4. 在中心视图中,单击General
          5. identity 下,更改 Bundle 标识符

          【讨论】:

            【解决方案8】:

            我有一个更低调的解决方案,我一直在使用。这不是上述解决方案的替代品,而只是另一种方法。我只在 iOS 上对此进行了测试,但我认为它也适用于 Android。

            我注意到在大多数情况下,创建的项目都会有一个类似这样的 com.xyz.something。

            org.reactjs.native.example.abcyourprojectname-extras
            

            我意识到,我无需检查每个文件夹(并且不必使用 Xcode),而是简单地搜索(在 Visual Studio Code 中,打开项目文件夹)

            org.reactjs.native.example
            

            这将列出所有带有包标识符的文件。只需将其更改为您的首选捆绑标识符即可,仅此而已。这样,即使明天有任何文件更改或格式更改等,搜索仍将是一致的处理方式。

            (同样,这是一个低调的解决方案,但它似乎对我有用)

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2023-03-07
              • 2021-09-12
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2020-10-01
              相关资源
              最近更新 更多