Android工作室 - 发布APK for flavor

时间:2014-01-30 18:11:43

标签: android gradle apk

我是Android Studio的新手,并且在设备上运行调试版本工作正常,但是为了测试应用程序购买(显然要发布)我需要使用普通密钥签名的发布版本。我可以使用Build制作APK - >生成签名的APK,但包名称似乎不正确。这是我的构建文件:

apply plugin: 'android'

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.1"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 9

        testPackageName "com.company.common.common"
        testInstrumentationRunner "android.common.InstrumentationTestRunner"
    }

    signingConfigs {
        releaseConfig {
            storeFile file("filname")
            storePassword "password"
            keyAlias "alias"
            keyPassword "password"
        }
    }

    buildTypes {
        debug {
            packageNameSuffix ".debug"
        }
        release {
            runProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            signingConfig signingConfigs.releaseConfig
        }
    }

    productFlavors {
        Flavor1 {
            packageName "com.company.test"
        }
    }
}

dependencies {
    // some dependencies
}

请注意在flavor中重写的包名称。那味道没有明显;唯一的清单是在main下,并指定一个com.company.common包。如果我使用Android创建com.company.test APK并将其安装在设备上,然后从Android Studio生成APK并安装它,我最终会在设备上安装两个应用程序而不是第二个替换第一个应用程序。这表明包名称不同,我假设因为Android Studio正在生成一个带有com.company.common包的APK。不知道如何核实这一点。

当我构建项目时,我得到一个调试APK但没有发布APK。如何获得具有正确包名的发布APK?我刚从Android Studio运行应用程序,它说它正在安装com.company.test.debug,并且需要在安装之前卸载应用程序。所以现在我认为生成签名的APK使用调试包生成了一个构建。

到目前为止,这是阻止我转向Android Studio和gradle的问题。一旦我越过这个,我想我很清楚将一切都移到一边所以我希望有人可以帮我解决这个问题!

1 个答案:

答案 0 :(得分:7)

在选择生成签名APK 选项之前,请转到构建变体窗口,然后选择发布构建变体。 生成签名APK 命令将获取当前在此处选择的任何构建类型并签名。在这种情况下,这显然不是你想要的; bug https://code.google.com/p/android/issues/detail?id=56532正在请求改进。