启动一个新的react-native项目,xcode-project输出bundle-identifier“org.reactjs.native.example.XYZApp”。 XYZ是我实际项目名称的占位符。
有没有办法在react-native端更改此bundle标识符?当然,我可以在XCode中更改它。但这不安全,因为当react-native重新创建xcode项目时,它可以被覆盖,这可能在任何时候发生,也可能在重建项目时发生。
答案 0 :(得分:31)
根据您使用的react-native版本,在两个平台(android和ios)上都需要更改一堆文件
值得一提的是,有一个npm模块(https://www.npmjs.com/package/react-native-ci-tools)完成了以上所有操作;使用它,让生活变得轻松。
更新文件夹路径:
我们还需要更改文件夹路径以匹配新名称 - 将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-
此命令将在Xcode中打开项目,您需要在其中更新应用程序的捆绑包标识符信息
要更新android软件包名称,请执行以下步骤-
答案 3 :(得分:0)
如果要在react-native项目中更改包标识符。您必须同时为android和ios更改应用程序标识符。
iOS
在xcode中选择根项目,选择General选项卡,您可以看到Bundle 标识符进入“身份”部分并更改新的捆绑包标识符 用于ios应用程序
android
- 转到您的AndroidManifest.xml。
- 只需将光标放在包名称中,不要选择它,只需将其放置。
- 然后按shift + F6(window)/ F6(mac),将弹出一个窗口,填充新的标识符,然后选择“重命名”包。它将改变 来自android studio中的任何地方。
答案 4 :(得分:0)
即使使用react-native-app-id,您也必须将文件移动到新文件夹中
我结束了使用npm任务进行升级的操作,首先升级,然后运行命令进行重命名,将android文件移动到正确的路径,然后重新链接以防万一
答案 5 :(得分:0)
在PRODUCT_BUNDLE_IDENTIFIER
中编辑与项目关联的ios/project.pbxproj
。 使用XCode安全得多。
我知道这个问题要求在不参与本机项目的情况下,对于渴望使用使用Xcode 的人们不使用XCode进行操作:
xed ios
用xcode打开ios文件夹project navigator
)ProjectName
中的根项目General
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¬if_t=group_comment_reply&ref=m_notif
现在最好的计划是在升级时选择“d”选项以在允许覆盖之前验证文件。