我使用React - Native init MyApp初始化一个新的React Native应用程序。 这创建了一个带有com.myapp包的Android项目。

更改这个包名称的最佳方法是什么,例如:com.mycompany.myapp?

我尝试在AndroidManifest.xml中更改它,但它创建了其他错误,所以我假设这不是方法。

任何想法?


当前回答

我会给你提供循序渐进的程序。

首先,我们需要了解为什么我们需要重命名一个包? 主要用于唯一识别应用程序,对吗?React Native是一个跨平台的应用程序,可以在iOS和Android上运行。所以我的建议是在两个平台中需要相同的标识符。Android包名是你应用的唯一标识符,iOS是它的捆绑包ID。

步骤:

首先关闭所有编辑器/studio,例如:xcode android studio vscode,然后在终端上运行命令安装“react-native-rename”包(如果您觉得不安全,请将您的项目文件夹副本保存在另一个文件夹中进行备份):

NPM安装react-native-rename -g

成功安装包后,在终端中打开你的项目文件夹,点击以下命令,其中“your app name Within double quotes”是app名称,< your package name without双/单引号>被替换为package/bundle name/id:

react-native-rename "<你的应用名称包含双引号>" -b <你的包名称不包含双引号或单引号>

例如:react-native-rename "Aptitude Test App" -b com.vaibhavmojidra.aptitudetestapp

注意:确保包/包名/id都是小写的

这还没有完成,现在每个文件都会改变它有包/包的名字,除了一个在ios项目,我们手动需要做的,打开xcode>打开一个项目或文件>选择文件从projectfolder/ios/projectname。Xcodeproj,然后单击打开 单击您的项目名。xcodeproj是项目导航器中的第一个文件,然后在Bundle identifier字段中输入包名/Bundle ID,如下所示:

之后在终端上运行

cd ios

然后运行

正在安装

然后运行

cd . .

现在你完成了ios的所有更改,最后一步是打开Android Studio>打开现有项目>选择projectfolder/ Android文件夹>单击打开 让它加载并完成所有过程,然后在构建菜单中单击“清理项目”,然后在文件菜单中>关闭项目 关闭所有编辑器,现在你可以尝试在ios和android上运行项目的命令,它将以重命名的打包方式运行,同时启动服务器,添加额外的标志——reset-cache:

NPM start -reset-cache

现在就享受吧

其他回答

将包名从“com”更改为“。”Myapp到com.mycompany.myapp(例如),

对于react应用的iOS应用,在general下使用xcode -。 对于android应用程序,打开构建。在模块级Gradle。android/app文件夹里的那个。你会发现

// ...
defaultConfig {
     applicationId com.myapp
     // ...
}
// ...

改变名称。Myapp给你任何你需要的。

希望这能有所帮助。

我今天才知道这个答案,但添加这个答案是为了帮助别人。你只需要在app/build中添加一个命名空间。Gradle引用旧的名字,像这样:

defaultConfig {
  applicationId "com.mycompany.myapp"
  namespace "com.myapp"
}

然后你可以有一个bash脚本,用这样的东西改变applicationId:

function sedi {
  if [ "$(uname)" == "Linux" ]; then
    \sed -i "$@"
  else
    \sed -i "" "$@"
  fi
}

bundle_name=com.mycompany.myapp

sedi -E "s/applicationId \"[-0-9a-zA-Z._]*\"/applicationId \"${bundle_name}\"/" android/app/build.gradle

如果你使用VSCode和Windows。

1.按Control + Shift + F。

2.找到您的包名,并用新的包名替换所有的包名。

输入cd android 类型”。/ gradlew干净”

要更改包的名称,您必须在项目中编辑四个文件:

 1. android/app/src/main/java/com/reactNativeSampleApp/MainActivity.java
 2. android/app/src/main/java/com/reactNativeSampleApp/MainApplication.java
 3. android/app/src/main/AndroidManifest.xml
 4. android/app/build.gradle

前两个文件的包名如下所示。

 package com.WHATEVER_YOUR_PACKAGE_NAME_IS;

将其更改为所需的包名称。

 package com.YOUR_DESIRED_PACKAGE_NAME;

您还必须在另外两个文件中编辑包名。

  android/app/build.gradle

  android/app/src/main/AndroidManifest.xml

注意你是否有谷歌服务。Json文件,那么你还必须改变该文件中的包名。

在这之后,你必须清理你的项目。

这些信息对你很有帮助,所以仔细听……

After updating package name and changing files, don't forget to change in 
package.json and app.json file at the root directory of your react native project

否则,您将得到下面的错误

Invariant Violation: "Your new package name" has not been registered