我使用React - Native init MyApp初始化一个新的React Native应用程序。 这创建了一个带有com.myapp包的Android项目。
更改这个包名称的最佳方法是什么,例如:com.mycompany.myapp?
我尝试在AndroidManifest.xml中更改它,但它创建了其他错误,所以我假设这不是方法。
任何想法?
我使用React - Native init MyApp初始化一个新的React Native应用程序。 这创建了一个带有com.myapp包的Android项目。
更改这个包名称的最佳方法是什么,例如:com.mycompany.myapp?
我尝试在AndroidManifest.xml中更改它,但它创建了其他错误,所以我假设这不是方法。
任何想法?
当前回答
我今天才知道这个答案,但添加这个答案是为了帮助别人。你只需要在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
其他回答
我重命名了项目的子文件夹从:“android/app/src/main/java/MY/ app/ OLD_ID/”到:“android/app/src/main/java/MY/ app/ NEW_ID/”
然后手动切换新旧包id:
: android / app / src / main / java /我的/ app / NEW_ID / MainActivity.java:
package MY.APP.NEW_ID;
在android / app / src / main / java /我的/ app / NEW_ID / MainApplication.java:
package MY.APP.NEW_ID;
在android / app / src / main / AndroidManifest.xml:
package="MY.APP.NEW_ID"
在android/app/build.gradle中:
applicationId "MY.APP.NEW_ID"
在android / app /美元:
android_build_config(
package="MY.APP.NEW_ID"
)
android_resource(
package="MY.APP.NEW_ID"
)
Gradle'清理结束(在/android文件夹):
./gradlew clean
我会给你提供循序渐进的程序。
首先,我们需要了解为什么我们需要重命名一个包? 主要用于唯一识别应用程序,对吗?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
现在就享受吧
init脚本根据你给它的名字为Android生成一个唯一的标识符(例如com。acmeapp for acmeapp)。
你可以通过在android/app/build.gradle中查找applicationId键来查看生成的名称。
如果你需要改变唯一的标识符,现在就做如下所述:
在/android文件夹中,替换所有出现的com。Acmeapp由com.acme.app提供
然后使用如下命令修改目录结构:
mkdir android / app / src / java / com/acme玩
Mv android/app/src/main/java/com/acmeapp android/app/src/main/java/com/acme/app
应用程序标识符中的每个点都需要一个文件夹级别。
来源:https://blog.elao.com/en/dev/from-react-native-init-to-app-stores-real-quick/
非常简单的方法:
cd /your/project/dir
执行如下命令:
grep -rl "com.your.app" . | xargs sed -i 's/com.your.app/com.yournew.newapp/g'
重命名文件夹
android/app/src/main/java/com/your/app
改变
android/app/src/main/java/com/yournew/newapp
要更改包的名称,您必须在项目中编辑四个文件:
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文件,那么你还必须改变该文件中的包名。
在这之后,你必须清理你的项目。