我使用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中更改它,但它创建了其他错误,所以我假设这不是方法。
任何想法?
当前回答
将包名从“com”更改为“。”Myapp到com.mycompany.myapp(例如),
对于react应用的iOS应用,在general下使用xcode -。 对于android应用程序,打开构建。在模块级Gradle。android/app文件夹里的那个。你会发现
// ...
defaultConfig {
applicationId com.myapp
// ...
}
// ...
改变名称。Myapp给你任何你需要的。
希望这能有所帮助。
其他回答
我使用react-native-rename* npm包。通过
npm install react-native-rename -g
然后,从你的React Native项目的根目录,执行以下命令:
react-native-rename "MyApp" -b com.mycompany.myapp
转到Android Studio,打开应用程序,右键单击java并选择 新建,然后打包。
给出你想要的名字(例如com.something)。
将文件从另一个包(要重命名)移动到新包。删除旧包。
在编辑器中找到你的项目,使用快捷方式搜索所有文件(在mac上是shift cmd F)。输入旧包的名称。更改对新包名的所有引用。
点击Android Studio,构建,清洁项目,重建项目。
完成了!
快乐编码:)
进入文件android/app/src/main/AndroidManifest.xml -
更新:
attr android:元素应用程序的标签为:
旧值- android:label="@字符串/app_name" android:label="(你想放的字符串)"
and
attr android:标签的元素活动为:
旧值- android:label="@字符串/app_name" android:label="(你想放的字符串)"
为我工作过,希望能有所帮助。
我今天才知道这个答案,但添加这个答案是为了帮助别人。你只需要在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
Ivan Chernykh的答案对于react-native 0.67及以下是正确的 对于react-native 0.68及以上版本的新架构,只要你遵循了Ivan Chernykh提到的步骤
对于android,你必须进入app => src => main => jni文件夹
在MainApplicationTurboModuleManagerDelegate.h
以下更改
static constexpr auto kJavaDescriptor =
"Lcom/yournewpackagename/newarchitecture/modules/MainApplicationTurboModuleManagerDelegate;";
在MainComponentsRegistry.h
constexpr static auto kJavaDescriptor =
"Lcom/yournewpackagename/newarchitecture/components/MainComponentsRegistry;";