如何使Android应用程序自动配置调试与发布值?

Mat*_*ins 4 java environment android release

我正在开发Android应用程序,特别是使用Facebook Android SDK的应用程序.在开发模式中,我正在使用一个带有一个ID的测试Facebook应用程序.但是,在发布模式下,该应用程序将使用具有不同ID的第二个Facebook应用程序.

我想知道大多数Android(或Java可能是一个适当的知识领域)开发人员如何让他们的应用程序自动构建调试与发布值.在构建之前,理想的解决方案不涉及手动开关(例如:切换public static final DEBUG = false;true).

Rom*_*ain 9

你提问已经有一段时间,但我想我会分享我是怎么做的.

就像塞巴斯蒂安暗示的那样,Ant脚本可以为你处理这个变化,并生成你正在寻找的静态最终常量.您可以配置IntelliJ或Eclipse以使其几乎无缝.

我试着详细说明我在这里采取的不同步骤,让我知道它是否有帮助.我知道在发布之前我永远不需要做任何手动更改,这是一个很好的解脱!


mac*_*ach 6

在eclipse ADT 17.0及更高版本中,有一个新功能.检查使用您的代码自动构建的BuildConfig.DEBUG.

有关更多信息,请参阅http://developer.android.com/sdk/eclipse-adt.html


Reu*_*ton 5

我不推荐使用IMEI方法......主要问题是并非所有Android设备都有IMEI.更好的方法是检查用于签署.apk的签名.

// See if we're a debug or a release build
try {
    PackageInfo packageInfo = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);
    if (packageInfo.signatures.length>0) {
        String signature = new String(packageInfo.signatures[0].toByteArray());
        isReleaseBuild = !signature.contains("Android Debug");
    }
} catch (NameNotFoundException e1) {
    e1.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)