Android studio-发布APK for flavor

Android studio-发布APK for flavor,android,gradle,apk,Android,Gradle,Apk,我是Android Studio的新手,在设备上运行调试构建工作正常,但是要测试应用内购买(显然是发布),我需要一个使用普通密钥签名的发布构建。我可以使用Build->Generate signed APK创建一个APK,但是包名似乎不正确。这是我的构建文件: apply plugin: 'android' android { compileSdkVersion 19 buildToolsVersion "19.0.1" defaultConfig {

我是Android Studio的新手,在设备上运行调试构建工作正常,但是要测试应用内购买(显然是发布),我需要一个使用普通密钥签名的发布构建。我可以使用Build->Generate signed 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,需要在安装之前卸载这个应用程序。所以现在我认为generate signed APK使用调试包生成了一个构建


到目前为止,这是一个阻碍我转到Android Studio和gradle的问题。一旦我过了这关,我想我很清楚要把一切都改变过来,所以我希望有人能帮我弄清楚

在选择生成已签名的APK选项之前,进入构建变体窗口并选择发布构建变体。Generate Signed APK命令接受此处选择的当前生成类型并对其进行签名。在这种情况下,这显然不是你想要的;bug要求改进。

我在命令行中使用“gradle AssemblereRelease”来确保我正在创建发布版本。您还应该能够使用“installFlavor1Release”任务进行测试。这很有效,谢谢!从我对文档的阅读来看,似乎我应该能够设置它,以便在构建项目时,它自动生成调试APK和发布APK,而无需生成签名APK。是我误解了,还是我的配置错了,或者可能是AS中的错误?没有未签名的APK——甚至调试构建都是用调试密钥签名的。因此,如果您在Android Studio中通过命令行或普通build命令构建发布版本,它将使用build.gradle文件中指定的密钥进行签名,这是您使用生成签名APK向导设置的,一切都一样。如果您还没有,向导只会填写生成文件中的条目。是的,我知道,我要说的是,当我刚刚进行生成(Ctrl-F9)时,它会生成一个签名的调试APK,仅此而已。无释放APK。既然我在gradle构建文件中有所有的签名信息,那么有没有办法让它在每个构建中都生成一个签名的发布APK?或者我总是要转到Build->Generate signed APK?您不需要使用Generate signed APK命令。如果当前从build Variants窗口选择的构建类型是Release,则Ctrl-F9应该构建它。当您每次按Ctrl-F9时,无法通过UI同时生成这两个。您可能会设置一个可以执行的Gradle任务来构建这两个任务,但要将其与您可以从Ctrl-F9调用的实际构建类型相连接,这将是一件棘手的事情。