我曾经react-native init MyApp
初始化一个新的React Native应用程序。这创建了一个带有软件包的Android项目com.myapp
。
将此包名称更改为例如的最佳方法是com.mycompany.myapp
什么?
我尝试更改它,AndroidManifest.xml
但它创建了其他错误,因此我假设这不是方法。
任何想法?
我曾经react-native init MyApp
初始化一个新的React Native应用程序。这创建了一个带有软件包的Android项目com.myapp
。
将此包名称更改为例如的最佳方法是com.mycompany.myapp
什么?
我尝试更改它,AndroidManifest.xml
但它创建了其他错误,因此我假设这不是方法。
任何想法?
Answers:
我已将项目的子文件夹从“ 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;
在android / app / src / main / java / MY / 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 / BUCK中:
android_build_config(
package="MY.APP.NEW_ID"
)
android_resource(
package="MY.APP.NEW_ID"
)
最后进行Gradle清理(在/ android文件夹中):
./gradlew clean
android/app/src/main/java/com/old_app_name/
为...com/new_app_name/
,它似乎可以正常工作。
我使用react-native-rename * npm包。通过安装
npm install react-native-rename -g
然后,从您的React Native项目的根目录执行以下命令:
react-native-rename "MyApp" -b com.mycompany.myapp
要将包名称从更改com.myapp
为:(com.mycompany.myapp
例如),
android/app
文件夹中的一个。你会找到// ...
defaultConfig {
applicationId com.myapp
// ...
}
// ...
将更com.myapp
改为您需要的任何内容。
希望这可以帮助。
./gradlew clean
然后./gradlew app:assembleRelease
。
applicationId
和本地package
名称彼此独立”,“ applicationId
在设备上和Google Play商店中唯一标识您的应用” – developer.android.com/studio/build/application-id
No matching client found for package name 'xxxxx'
您可以简单地使用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
转到Android Studio
右键单击您的软件包(最有可能是com)-> Refractor->重命名->在对话框中输入新的软件包名称->做Refractor
它将在任何地方重命名您的包名称。
初始化脚本会根据您为其提供的名称(例如,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/
如果您使用的是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
同步项目(逐步构建)
我有一个基于@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
免责声明:您需要首先在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>
首先,切换到新分支(可选,但建议)
$ git checkout -b rename-app
然后,将您的应用程序重命名为$ npx react-native-rename“ Travel App”
使用自定义的捆绑包标识符
$ npx react-native-rename "Travel App" -b com.junedomingo.travelapp
更改名称后,请确保进入android文件夹并运行gradlew clean
。然后回到主项目并运行npx react-native run-android
。
另外,如果您在先前的项目中有google-services.json文件,请用新的文件进行相应的更改...然后就可以了:)
在这里查看更多https://github.com/junedomingo/react-native-rename#readme
按照简单的步骤来重命名您的名称app name
,Package name
以防万一您没有在android文件夹中进行任何自定义更改(例如,您刚刚初始化项目的情况)
name
了在package.json
文件中,你需要和保存。react-native upgrade
注意:正如ivoteje50的注释中所述,如果您已经按照官方说明生成了密钥库,请不要删除android文件夹,因为它将删除密钥库,并且您无法再次签署新的应用程序。
转到Android Studio,打开应用程序,右键单击Java,然后选择“新建”,然后选择“打包”。
输入您想要的名称(例如com.something)。
将文件从另一个包(要重命名)移动到新的包。删除旧软件包。
在编辑器中转到您的项目,并使用快捷方式搜索所有文件(在Mac上为shift cmd F)。输入旧软件包的名称。将所有引用更改为新的程序包名称。
转到“ Android Studio”,“构建”,“清理项目”,“重建项目”。
做完了!
快乐的编码:)
我用过react-native-rename包。
在终端中运行命令进行安装:
npm install react-native-rename -g
在您的React Native项目的根目录中,运行以下命令:
react-native-rename "NewNameOfApp" -b com.companyname.newnameofapp
您可以使用react-native-rename软件包,它将对软件包名称下的所有必要更改进行更改
但请确保手动更改java / com文件夹下所有文件的软件包名称。因为当我创建启动画面活动时,旧的软件包名称未更新。
转到文件的Android /应用/ src目录/主/ AndroidManifest.xml中 -
更新:
attr android: Element 应用程序的标签为:
旧值-android:label =“ @ string / app_name”
新值-android:label =“(您要放入的字符串)”
和
attr android: Element 活动的标签为:
旧值-android:label =“ @ string / app_name”
新值-android:label =“(您要放入的字符串)”
为我工作,希望会有所帮助。