我需要为不同的 applicationId 构建相同的应用程序,以便我可以将它作为我公司某些客户的私有应用程序发布到 Play Store / App Store。
我决定使用,因为它应该允许我轻松react-native-config
更改applicationId
和一些变量。env
我创建了一些.env.${variant}
文件,即在以下示例中,.env.customer1
.
我已将所需设置buildTypes
如下:
...
buildTypes {
debug {
...
}
customer1 {
initWith debug
applicationIdSuffix "customer1"
}
}
在使用这些变体构建时,我强制 react.gradle 不捆绑
project.ext.react [
bundleInCustomer1: false,
devDisabledInCustomer1: false
]
然后我使用这个命令行在我的物理设备上运行
copy .env.customer .env && react-native run-android --variant=customer1 --appIdSuffix 'customer1'
结果是该应用程序在我的设备上构建并启动,但我看到的是该应用程序的旧版本(可能是几周前我使用 assembleRelease 构建的最后一个),metro 启动但告诉我什么时候我试图强制重新加载,否则什么都不告诉我
warn No apps connected. Sending "reload" ...
我试过没有任何成功
gradlew clean
npm start --cache-reload
npm cache clean --forced
npm i
构建没有任何变体的应用程序(因此使用默认调试)可以正常工作。