大约一周前,我开始开发一个白色标签的应用程序,其中每个应用程序之间唯一不同的是一些颜色值,图像来源和API端点,但是该应用程序本身却完全相同。< / p>
因此,最近几天我尝试着学习如何从同一个项目中构建多个应用程序...(这里主要关注Android)。在旅途中,我找到了一些指南,并通过遵循以下方法使其能够正常工作this guide并在我的build.gradle中设置产品口味。
productFlavors {
firstapp {
applicationIdSuffix '.firstapp'
resValue "string", "build_config_package", "com.myapp"
}
secondapp {
applicationIdSuffix '.secondapp'
resValue "string", "build_config_package", "com.myapp"
}
}
好吧,现在我可以在开发过程中运行react-native run-android --variant=firstappDebug
来模拟应用程序,而在发布gradlew assembleFirstappRelease
时可以运行该应用程序,并且能够生成多个(在本例中为2个)不同的版本。
但是,作为一个初学者,我找不到合适的方法来编写针对特定风味的代码,该代码将在每次构建特定风味时进行渲染。
此外,我跟随this other guide或多或少地展示了如何执行此操作,但是同样,我缺乏适当执行某些步骤的知识,因此未能通过。我无法在 STEP 2 找出代码应该放在哪个文件中,而BuildConfig.FLAVOR
,NSBundle.mainBundle()
和 STEP 3 都不是{ {1}},UtilityManager.getTarget()
总而言之。我仍在努力学习,并且在环境变量方面病态更加深……但是我觉得有必要向社区寻求帮助。
答案 0 :(得分:0)
这篇文章(这很重要)时我正在使用的解决方法是: 产品风味(Android)和XCode方案(iOS)来构建具有不同名称和图标的不同应用。
通过发出环境变量来编写特定风味/方案的代码。我使用所需的配置变量创建了多个.env文件。例如
//.env.mycustomenv
LOGIN_TITLE_TEXT= "My App"
LOGIN_STATUSBAR_CONTENT= "light-content"
LOGIN_BACKGROUND_COLOR= "#333"
LOGIN_SIMPLE_TEXT_COLOR= "#FFF"
LOGIN_TEXTINPUT_BACKGROUD_COLOR= "#FFF"
LOGIN_LOGIN_BUTTON_COLOR= "#009933"
从命令行像react-native-config
一样简单地告诉RN使用$env:ENVFILE=".env.mycustomenv"
来查看哪个.env文件。(在使用Powershell的Windows上)。
react-native-config
应该可以将上面的这些变量公开到您的.js文件中,并且确实可以,但是以我的经验,使用产品类型时,它没有用。因此,我开始使用react-native-build-config
来完成该任务。.最后,我的代码如下所示:
import BuildConfig from "react-native-build-config"
export function MainStyle () {
return(
<>
<StatusBar barStyle={`${BuildConfig.LOGIN_STATUSBAR_CONTENT}`} backgroundColor={BuildConfig.LOGIN_BACKGROUND_COLOR} />
<TitleText>{CoBrandConfig.Login.LOGIN_TITLE_TEXT}</TitleText>
</>
)
}
依此类推...
我希望这个答案可以帮助其他找到这篇文章的开发人员寻求帮助。