Android: 管理不同的服务器 URL 用于开发和发布
Android: Managing different server URL for development and release
我正在开发一个 Android 应用程序,它通过 REST API 与服务器交互。显然我需要为开发和发布版本使用不同的 URL。注释和取消注释代码非常繁琐且容易出错。
处理这种情况的最佳方法是什么?在 gradle 文件中使用不同的构建类型可以使过程自动化,但我不确定这是否是正确的方法。
也有可能增加构建类型的数量,即。测试、内部发布等
我遇到了类似的问题,我使用
解决了它
if (BuildConfig.DEBUG) { }
您需要导入
import com.commandsoftware.androidbookingapp.BuildConfig;
如果您使用的是 Android Studio,请使用 buildConfigField
将自定义字段添加到您的 BuildConfig
class.
buildTypes {
debug {
buildConfigField "String", "SERVER_URL", '"http://test.this-is-so-fake.com"'
}
release {
buildConfigField "String", "SERVER_URL", '"http://prod.this-is-so-fake.com"'
}
mezzanine.initWith(buildTypes.release)
mezzanine {
buildConfigField "String", "SERVER_URL", '"http://stage.this-is-so-fake.com"'
}
}
在这里,我有三种构建类型:标准 debug
和 release
,以及自定义 mezzanine
一种。每个在 BuildConfig
.
上定义一个 SERVER_URL
字段
然后,在 Java 代码中,您只需引用 BuildConfig.SERVER_URL
。该字段的值将基于您用于构建特定版本应用程序的构建类型。
我在写入 logcat 时遇到了类似的问题。如果应用程序使用调试密钥签名,我想写所有消息,否则写几乎 none。我用这行代码解决了问题:
boolean showAllMessages = ((getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0);
然后在我的日志编写器中使用该布尔值。当您初始化 URI 时,您应该能够做类似的事情。
我正在使用 Eclipse。我不能肯定地说这将适用于其他 IDE 环境。 This answer 暗示它可能是 Eclipse 独有的特性
可以在应用 build.gradle 中使用 ProductFlavours 进行管理。 ProductFlavours 将管理不同的 URL 即。 开发发布。
请在medium上看看。
里面有详细的解释。
我正在开发一个 Android 应用程序,它通过 REST API 与服务器交互。显然我需要为开发和发布版本使用不同的 URL。注释和取消注释代码非常繁琐且容易出错。
处理这种情况的最佳方法是什么?在 gradle 文件中使用不同的构建类型可以使过程自动化,但我不确定这是否是正确的方法。
也有可能增加构建类型的数量,即。测试、内部发布等
我遇到了类似的问题,我使用
解决了它if (BuildConfig.DEBUG) { }
您需要导入
import com.commandsoftware.androidbookingapp.BuildConfig;
如果您使用的是 Android Studio,请使用 buildConfigField
将自定义字段添加到您的 BuildConfig
class.
buildTypes {
debug {
buildConfigField "String", "SERVER_URL", '"http://test.this-is-so-fake.com"'
}
release {
buildConfigField "String", "SERVER_URL", '"http://prod.this-is-so-fake.com"'
}
mezzanine.initWith(buildTypes.release)
mezzanine {
buildConfigField "String", "SERVER_URL", '"http://stage.this-is-so-fake.com"'
}
}
在这里,我有三种构建类型:标准 debug
和 release
,以及自定义 mezzanine
一种。每个在 BuildConfig
.
SERVER_URL
字段
然后,在 Java 代码中,您只需引用 BuildConfig.SERVER_URL
。该字段的值将基于您用于构建特定版本应用程序的构建类型。
我在写入 logcat 时遇到了类似的问题。如果应用程序使用调试密钥签名,我想写所有消息,否则写几乎 none。我用这行代码解决了问题:
boolean showAllMessages = ((getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0);
然后在我的日志编写器中使用该布尔值。当您初始化 URI 时,您应该能够做类似的事情。
我正在使用 Eclipse。我不能肯定地说这将适用于其他 IDE 环境。 This answer 暗示它可能是 Eclipse 独有的特性
可以在应用 build.gradle 中使用 ProductFlavours 进行管理。 ProductFlavours 将管理不同的 URL 即。 开发发布。
请在medium上看看。 里面有详细的解释。