Android studio-发布APK for flavor
我是Android Studio的新手,在设备上运行调试构建工作正常,但是要测试应用内购买(显然是发布),我需要一个使用普通密钥签名的发布构建。我可以使用Build->Generate signed APK创建一个APK,但是包名似乎不正确。这是我的构建文件: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 {
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调用的实际构建类型相连接,这将是一件棘手的事情。