Android studio - 发布 APK for flavor

标签 android gradle apk

我是 Android Studio 的新手,在设备上运行调试构建工作正常,但是要在应用程序购买中进行测试(显然要发布),我需要一个使用普通 key 签名的发布构建。我可以使用 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 中覆盖的包名称。那种味道没有表现出来;唯一的manifest在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 的问题。一旦我克服了这个问题,我想我就可以把所有东西都移过去了,所以我希望有人能帮我解决这个问题!

最佳答案

在选择Generate Signed APK 选项之前,进入Build Variants 窗口并选择Release build variant。 Generate Signed APK 命令采用当前选择的任何构建类型并对其进行签名。在这种情况下,这显然不是您想要的;错误 https://code.google.com/p/android/issues/detail?id=56532在那里要求改进。

关于Android studio - 发布 APK for flavor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21464320/

相关文章:

spring-boot - 如何使用gradle将时间戳附加到生成的jar中?

java - 在 Android 应用程序中存储文本数据的最佳方式?

android - 音效安卓

Android - 让 ImageView 适合 ListView

android - 处理程序/可运行延迟有时会产生不同步的事件

Android AsyncTask问题

android - Blu R1 HD Phone-Android无法安装:未知失败([CDS]关闭[0])

gradle - 如何禁用 Exposed Framework 的日志?

android - 对 APK 进行少量文本编辑后是否可以重新打包?

android - 典型的 ZIP 文件和 APK 文件之间有区别吗?