如何更改React Native中的“Bundle Identifier”?

时间:2016-03-20 21:19:38

标签: ios xcode react-native

启动一个新的react-native项目,xcode-project输出bundle-identifier“org.reactjs.native.example.XYZApp”。 XYZ是我实际项目名称的占位符。

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

8 个答案:

答案 0 :(得分:31)

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

要编辑的文件列表:

IOS

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

    1. strings.xml(更改 app_name 键值)
    2. manifest.xml(更改属性)
    3. build.gradle(更改 applicationId 值)
    4. MainActivity.java(更改java类
    5. MainApplication.java(更改java类
    6. 值得一提的是,有一个npm模块(https://www.npmjs.com/package/react-native-ci-tools)完成了以上所有操作;使用它,让生活变得轻松。

      更新(6 / Mar / 2019)

      更新文件夹路径:

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

答案 1 :(得分:6)

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

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

用法就像react-native-app-id com.foo.bar

一样简单

答案 2 :(得分:3)

要更新iOS捆绑包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文件中的软件包名称

答案 3 :(得分:0)

如果要在react-native项目中更改包标识符。您必须同时为android和ios更改应用程序标识符。

iOS

  

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

android

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

答案 4 :(得分:0)

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

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

答案 5 :(得分:0)

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

我知道这个问题要求在不参与本机项目的情况下,对于渴望使用使用Xcode 的人们不使用XCode进行操作:

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

答案 6 :(得分:0)

我有一个使用过的低调解决方案。这不是上述解决方案的替代,而是简单的另一种实现方法。我只在iOS上进行了测试,但我认为它也可以在Android上使用。

我注意到,在大多数情况下,创建的项目都会带有com.xyz.something之类的东西。

org.reactjs.native.example.abcyourprojectname-extras

我意识到,无需检查每个文件夹(不必使用Xcode),我只需进行搜索(在Visual Studio Code中,打开项目文件夹)

org.reactjs.native.example

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

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

答案 7 :(得分:-1)

不幸的是没有。事实上,我们今天只是在Native Facebook群组中讨论这个问题。 https://m.facebook.com/groups/586400221495560?view=permalink&id=738954276240153&comment_id=739065029562411&notif_t=group_comment_reply&ref=m_notif

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