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

Posted

技术标签:

【中文标题】在 react-native 应用程序中更改包名称【英文标题】:Changing the package name in a react-native app 【发布时间】:2017-09-03 17:31:41 【问题描述】:

我在 react-native 中创建了一个应用程序。我需要包名称为: com.org.appname

React-native 不允许你在 init 中指定这个作为包名,或者在 init 之后改变它。

react-native init --package="com.org.appname" 

没用

如Change package name for android in React Native 中所述更改包名称也不起作用,并导致 react-native run-android 出现以下错误

未能完成会话:INSTALL_FAILED_VERSION_DOWNGRADE

【问题讨论】:

【参考方案1】:

ios 项目中,您只需使用 Xcode 更改 BundleID

在 Android 项目中,您需要在 4 个文件中更改 package 名称:

android/app/src/main/java/com/reactNativeSampleApp/MainActivity.java
android/app/src/main/java/com/reactNativeSampleApp/MainApplication.java
android/app/src/main/AndroidManifest.xml
android/app/build.gradle

好的做法也是在Android项目中修改BUCK文件,在两个地方,并在android项目中相应调整层次结构,虽然不是必须的:

BUCK文件:

 android_build_config(
     name = "build_config",
     package = "app.new.name",
 )

 android_resource(
     name = "res",
     package = "app.new.name",
     res = "src/main/res",
 )

运行命令 ./gradlew clean

【讨论】:

这个有更新吗?目前仅使用 Xcode 更改 BundleID 不适用于 RN 0.61。【参考方案2】:

根据这个https://saumya.github.io/ray/articles/72/,你可以从头运行这个命令

react-native init MyAwesomeProject -package "com.example.app"

但是如果你已经通过

生成了你的应用
react-native init MyAwesomeProject

您可以在文件中修改应用名称

android/app/src/main/res/values/strings.xml

然后你可以在文件中修改包名

android/app/src/main/java/com/reactNativeSampleApp/MainActivity.java
android/app/src/main/java/com/reactNativeSampleApp/MainApplication.java
android/app/src/main/AndroidManifest.xml ( optional as per my experience )
android/app/build.gradle

最后,运行以下命令(从应用的 android/ 目录中)

./gradlew clean
./gradlew assembleRelease

要更改 iOS 版本包名称,请使用 Xcode

【讨论】:

这些东西记录在哪里?甚至只是cli选项?为这个项目投入了这么多东西,却没有任何详细的文档! -package选项不支持,不起作用且链接中的文章其他方式不正确,建议删除。【参考方案3】:

我使用 react-native-rename npm 包。

使用安装

npm install react-native-rename -g

然后从你的 React Native 项目的根目录执行以下操作

react-native-rename "MyApp" -b com.mycompany.myapp

react-native-rename on npm

【讨论】:

【参考方案4】:

如果您的文本编辑器能够替换所有项目文件中的字符串,那么更改包 ID 非常容易。

我正在使用 phpStorm,我只是在我的所有项目文件中将 old.package.id 替换为 new.package.id。它对我有用

【讨论】:

【参考方案5】:

只需在这 4 个文件中更改您的包名

android => app => src => main => java => com => reactNativeSampleApp => MainActivity.java & MainApplication.java android => app => src => main => AndroidManifest.xml android => app => build.gradle

【讨论】:

以上是关于在 react-native 应用程序中更改包名称的主要内容,如果未能解决你的问题,请参考以下文章

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

更改项目名称后 react-native run-ios 将不起作用

在 React Native 中更改应用名称

React-Native Launch Image 导致布局更改

在 Bamboo 中构建之前更改包名称

OneSignal 通知在更改包名称后停止工作