[英]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
構建沒有任何變體的應用程序(因此使用默認調試)可以正常工作。
感謝這個答案,我成功地解決了我的問題。
我現在使用而不是使用buildTypes
flavors
。
所以,
android {
...
flavorDimensions "standard"
defaultConfig {
applicationId "com.stackoverflow"
...
productFlavors {
customer1 {
applicationId "com.stackoverflow.customer1"
dimension "standard"
}
}
}
並通過啟動
react-native run-android --variant=customer1Debug --appIdSuffix 'customer1'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.