mll*_*llm 138 android react-native react-native-android
我曾经react-native init MyApp初始化一个新的React Native应用程序.这创建了包含该项目的Android项目com.myapp.
更改此包名称的最佳方法是什么,例如:com.mycompany.myapp?
我尝试更改它AndroidManifest.xml但它创建了其他错误,所以我假设它不是那样的.
任何的想法?
Che*_*niv 321
我已将项目'子文件夹名称从:" android/app/src/main/java/MY/APP/OLD_ID / "更改为:" android/app/src/main/java/MY/APP/NEW_ID / "
然后手动切换旧的和新的包ID:
在: android/app/src/main/java/MY/APP/NEW_ID/MainActivity.java:
package MY.APP.NEW_ID;
Run Code Online (Sandbox Code Playgroud)
在android/app/src/main/java/MY/APP/NEW_ID/MainApplication.java中:
package MY.APP.NEW_ID;
Run Code Online (Sandbox Code Playgroud)
在android/app/src/main/AndroidManifest.xml中:
package="MY.APP.NEW_ID"
Run Code Online (Sandbox Code Playgroud)
在android/app/build.gradle中:
applicationId "MY.APP.NEW_ID"
Run Code Online (Sandbox Code Playgroud)
(可选)在android/app/BUCK中:
android_build_config(
package="MY.APP.NEW_ID"
)
android_resource(
package="MY.APP.NEW_ID"
)
Run Code Online (Sandbox Code Playgroud)
Gradle'清理到底(在/ android文件夹中):
./gradlew clean
Run Code Online (Sandbox Code Playgroud)
Jav*_*uzi 67
我使用react-native-rename npm包.
安装使用
npm install react-native-rename -g
Run Code Online (Sandbox Code Playgroud)
然后从React Native项目的根目录执行以下操作
react-native-rename "MyApp" -b com.mycompany.myapp
Run Code Online (Sandbox Code Playgroud)
Olu*_*ola 12
要将包名称从com.myapp更改为:com.mycompany.myapp(例如),
对于Android应用程序,在模块级别打开build.gradle.android/app文件夹中的那个.你会找到
...
defaultConfig {
applicationId com.myapp
...
}
...
将"com.myapp"更改为您需要的任何内容.
希望这可以帮助.
Fed*_*Baù 11
让原始应用程序名称为:com.myApp
让新应用程序名称为:'com.newname.myApp`
android\app\src\main\AndroidManifest.xml重命名 xml 属性:`package="com.newname.myApp"
android\app\src\main\java\com\[yourAppName]\MainActivity.java将第一行从package com.myApp;To重命名为package com.newname.myApp;
android\app\src\main\java\com\[yourAppName]\MainApplication.java将第一行重命名为package com.newname.myApp;
在类private static void initializeFlipper
reneme 中这一行:
Class<?> aClass = Class.forName("com.myApp.ReactNativeFlipper");
到
Class<?> aClass = Class.forName("com.newname.myApp.ReactNativeFlipper");
android\app\build.gradle关于defaultConfig重命名applicationId
到“com.newname.myApp”
在命令行上运行:
$ npx react-native start
$ npx react-native run-android
Run Code Online (Sandbox Code Playgroud)
小智 10
最简单的一种:
npx react-native-rename YourNewAppName -b com.YourCompanyName.YourNewAppName
您可以简单地使用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
但请注意,此lib删除了您MainActivity.java和MainApplication.java。更改软件包名称之前,请从这两个文件进行备份,更改软件包名称后,只需将其放回原处即可。这个解决方案对我有用
更多信息: react-native-rename
初始化脚本会根据您为其提供的名称(例如,com.acmeapp针对AcmeApp)为Android生成唯一标识符。
您可以通过在中查找applicationId键来查看生成的名称android/app/build.gradle。
如果您需要更改该唯一标识符,请按照以下说明立即进行操作:
在/android文件夹,替换所有出现com.acmeapp的com.acme.app
然后使用以下命令更改目录结构:
mkdir android/app/src/main/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/
如果您正在使用VSCode和Windows.
1.按Control + Shift + F。
2.找到你的Package Name和Replace All与你的new Package Name.
类型"cd android"
类型"./gradlew clean"
如果您使用的是Android Studio,
更改com.myapp为com.mycompany.myapp
在下面创建一个新的包层次结构com.mycompany.myapp android/app/src/main/java
使用Android Studio GUI 将所有类从复制com.myapp到com.mycompany.myapp
Android Studio将负责为所有复制的类放置合适的包名称。如果您有一些自定义模块并且不想在所有.java文件中手动替换,则此功能很有用。
更新android/app/src/main/AndroidManifest.xml并android/app/build.gradle(替换com.myapp为com.mycompany.myapp
同步项目(逐步构建)
转到Android Studio
右键单击您的软件包(最有可能是com)-> Refractor->重命名->在对话框中输入新的软件包名称->做Refractor
它将在任何地方重命名您的包名称。
在 VS Code 中,Ctrl + Shift + F在“查找”中按下并输入旧包名称,然后在“替换”中输入新包。然后按“替换所有出现的”。
绝对不是务实的方法。但是,它对我来说已经成功了。
要更改包名称,您必须编辑项目中的四个文件:
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
Run Code Online (Sandbox Code Playgroud)
前 2 个文件的包名称如下所示。
package com.WHATEVER_YOUR_PACKAGE_NAME_IS;
Run Code Online (Sandbox Code Playgroud)
将其更改为您想要的包名称。
package com.YOUR_DESIRED_PACKAGE_NAME;
Run Code Online (Sandbox Code Playgroud)
您还必须编辑其他 2 个文件中的包名称。
android/app/build.gradle
android/app/src/main/AndroidManifest.xml
Run Code Online (Sandbox Code Playgroud)
请注意,如果您的项目中有 google-services.json 文件,那么您还必须更改该文件中的包名称。
之后,您必须 ./gradlew 清理您的项目。
我有一个基于@Cherniv答案的解决方案(适用于macOS)。两者之间的区别:我在Java文件夹中有一个Main2Activity.java,它执行相同的操作,并且我不必打扰./gradlew clean,因为看起来react-native打包程序似乎总是自动执行此操作。
无论如何,我的解决方案可以完成Cherniv的工作,只是我为此创建了一个bash shell脚本,因为我正在使用一组代码构建多个应用程序,并且希望能够在运行npm脚本时轻松更改软件包名称。
这是我使用的bash脚本。您需要修改要使用的packageName,并向其中添加其他任何内容...但是这里是基础知识。您可以创建一个.sh文件,授予权限,然后从与运行react-native相同的文件夹中运行该文件:
rm -rf ./android/app/src/main/java
mkdir -p ./android/app/src/main/java/com/MyWebsite/MyAppName
packageName="com.MyWebsite.MyAppName"
sed -i '' -e "s/.*package.*/package "$packageName";/" ./android/app/src/main/javaFiles/Main2Activity.java
sed -i '' -e "s/.*package.*/package "$packageName";/" ./android/app/src/main/javaFiles/MainActivity.java
sed -i '' -e "s/.*package.*/package "$packageName";/" ./android/app/src/main/javaFiles/MainApplication.java
sed -i '' -e "s/.*package=\".*/ package=\""$packageName"\"/" ./android/app/src/main/AndroidManifest.xml
sed -i '' -e "s/.*package = '.*/ package = '"$packageName"',/" ./android/app/BUCK
sed -i '' -e "s/.*applicationId.*/ applicationId \""$packageName"\"/" ./android/app/build.gradle
cp -R ./android/app/src/main/javaFiles/ ./android/app/src/main/java/com/MyWebsite/MyAppName
Run Code Online (Sandbox Code Playgroud)
免责声明:您需要首先在Java文件底部附近编辑MainApplication.java的注释。注释中有“包装”一词。由于脚本的工作方式,它会在其中包含单词“ package”的任何行并将其替换。因此,该脚本可能不会在将来进行验证,因为在其他地方可能会使用相同的单词。
第二个免责声明:前三个sed命令从名为javaFiles的目录中编辑Java文件。我自己创建了这个目录,因为我想从那里复制一组Java文件(因为将来可能会向其中添加新的软件包)。您可能会想做同样的事情。因此,从java文件夹复制所有文件(通过其子文件夹查找实际的Java文件),然后将它们放在一个名为javaFiles的新文件夹中。
第三个免责声明:您需要将packageName变量编辑为与脚本顶部和底部的路径一致(com.MyWebsite.MyAppName到com / MyWebsite / MyAppName)
用
npx react-native-rename <newName>
使用自定义捆绑标识符(仅限 Android。对于 iOS,请使用 Xcode)
$ npx react-native-rename <newName> -b <bundleIdentifier>
Run Code Online (Sandbox Code Playgroud)
首先,切换到新分支(可选但推荐)
$ git checkout -b rename-app
Run Code Online (Sandbox Code Playgroud)
然后,重命名您的应用程序 $ npx react-native-rename "Travel App"
使用自定义捆绑标识符
$ npx react-native-rename "Travel App" -b com.junedomingo.travelapp
Run Code Online (Sandbox Code Playgroud)
更改名称后,请确保转到 android 文件夹并运行gradlew clean. 然后返回主项目并运行npx react-native run-android.
另外,如果您在之前的项目中有 google-services.json 文件,请使用新的文件进行相应更改...那么您就可以开始了:)
在这里查看更多https://github.com/junedomingo/react-native-rename#readme
| 归档时间: |
|
| 查看次数: |
73907 次 |
| 最近记录: |