为非生产环境和生产环境创建移动(iOS、Android)应用工件的最佳做法



>我需要为多个环境创建一个移动应用程序工件。目标是在多个环境(开发、qa、预生产和生产(中推广相同的工件。移动项目使用从 env 更改为 env 的 saas URL。请让我知道这样做的最佳实践。

目前,当工件通过qa时,我为pre-prod创建了另一个工件,最后为prod创建了另一个工件,这既耗时又容易出错。

我正在考虑创建一个活动的 env url 和发布版本 api。最佳实践是什么?

谢谢

我认为安卓风格会解决你的问题。

我看起来像下面的这些例子。

flavorDimensions "default"
productFlavors{
dev{
applicationId "com.amitgupta.trust_app_android.dev"
}
staging{
applicationId "com.amitgupta.trust_app_android.staging"
}
qa{
applicationId "com.amitgupta.trust_app_android.qa"
}
production{
applicationId "com.amitgupta.trust_app_android.production"
}
}

您还可以根据不同的环境使用不同的URL。

flavorDimensions "version"
productFlavors {
QA {
buildConfigField "String", "BASE_URL", '"http://qa.com/api/"'
}
production {
buildConfigField "String", "BASE_URL", '"http://production.com/api/"'
}
}

请查看这些以实现。

https://medium.com/@hsmnzaydn/configuration-product-flavors-and-build-variants-in-android-bb9e54d459af

https://www.journaldev.com/21533/android-build-types-product-flavors

对于 iOS: 您可以在 Xcode 中使用方案和构建配置。以下是官方文档: https://developer.apple.com/library/ios/recipes/xcode_help-project_editor/Articles/BasingBuildConfigurationsonConfigurationFiles.html

我希望这会有所帮助。

如果您使用 gradle,则会出现以下情况:

  1. 对于顶级build.gradle,定义appId参数:
allprojects {
ext {
appId = 'com.my.app'
}
}
  1. 对于应用模块的 build.gradle,定义风格并使用上述参数:
android {
def globalConfig = rootProject.extensions.getByName("ext")
productFlavors {
dev {
applicationId globalConfiguration["appId"] + ".dev"
...
buildConfigField "String", "YOUR_ENDPOINT", ""https://my.dev.env/""
}
qa {
applicationId globalConfiguration["appId"] + ".qa"
...
buildConfigField "String", "YOUR_ENDPOINT", ""https://my.qa.env/""
}
}
  1. 使用特定风格构建应用程序 + 在代码中使用BuildConfig.YOUR_ENDPOINT。

相关内容

最新更新