反应本机自定义 buildType 不使用地铁
React native custom buildType not using metro
我需要为不同的 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
构建没有任何变体的应用程序(因此使用默认调试)可以正常工作。
感谢,我已经成功解决了我的问题。
我现在使用 flavors
,而不是 buildTypes
。
所以,
android {
...
flavorDimensions "standard"
defaultConfig {
applicationId "com.Whosebug"
...
productFlavors {
customer1 {
applicationId "com.Whosebug.customer1"
dimension "standard"
}
}
}
并通过
启动
react-native run-android --variant=customer1Debug --appIdSuffix 'customer1'
我需要为不同的 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
构建没有任何变体的应用程序(因此使用默认调试)可以正常工作。
感谢
我现在使用 flavors
,而不是 buildTypes
。
所以,
android {
...
flavorDimensions "standard"
defaultConfig {
applicationId "com.Whosebug"
...
productFlavors {
customer1 {
applicationId "com.Whosebug.customer1"
dimension "standard"
}
}
}
并通过
启动react-native run-android --variant=customer1Debug --appIdSuffix 'customer1'