使用Android Studio生成unsigned,release apk

时间:2014-12-05 18:01:23

标签: android android-studio build android-gradle apk

我需要生成一个未签名的发布 APK(然后其他人将签名并将其发布到商店 - 其他人处理密钥和其他所有内容)。我的问题是,每当我尝试构建时,Android Studio都会抛出错误:

app-flavorUnsigned-release-unsigned.apk is not signed. Please configure the signing information for the selected flavor using the Project Structure dialog.

我已尝试了几种先前的方法:

  • 创建神器失败(无法找到任何带有&#34; Artifacts&#34的菜单;在任何地方,虽然编辑配置我找到了选择自定义神器的选项)[可能是最好的选择< /强>
  • 创建空签名配置
  • 创建自定义风味
  • 使用终端运行gradle assemblegradle assembleRelease(由于我的一个重要模块库尝试构建而失败)

这是我当前的[app&#39; s] build.gradle:

apply plugin: 'com.android.application'

android {
    signingConfigs {
        unsigned {
            storePassword = ""
            keyAlias = ""
            keyPassword = ""
        }
    }
    compileSdkVersion 19
    buildToolsVersion "20.0.0"
    defaultConfig {
        applicationId "hiddenForClientPrivacy"
        minSdkVersion 13
        targetSdkVersion 20
        versionCode 1
        versionName "1.0"
        signingConfig signingConfigs.unsigned
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.unsigned
        }
        unsignedBuild {
            debuggable false
            versionNameSuffix '-unsigned'
            signingConfig signingConfigs.unsigned
        }
        debug {

        }
    }
    productFlavors {
        flavorUnsigned {
            versionCode = 1;
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:20.0.0'
    compile project(':SlidingMenu')
    compile 'com.android.support:support-v13:20.0.0'
    compile 'com.github.castorflex.verticalviewpager:library:19.0.1'
}

感谢您的帮助。

帮助后编辑: 正如明确接受的答案所示,我必须清除释放块。此外,我点击了&#34; Run&#34;按钮 - 应该适当地显示错误,因为我无法在模拟器或设备上运行未签名的版本apk。接受的答案描述了一切。

3 个答案:

答案 0 :(得分:22)

release构建类型中,根本不指定signingConfig,您的构建将不会被签名。发布版本不会选择调试版本获取的默认签名配置,因此它应该适用于那些。

adt-dev邮件列表上有一个discussion

请记住,要从Android Studio构建,您需要转到Gradle任务窗口并选择assembleRelease任务;通过“Make Project”进行正常构建并不会真正构建最终的APK。

答案 1 :(得分:9)

实际上,只需构建一个无符号的.APK即可构建它:

要生成它,在Android Studio的左侧,有一个 Build Variants 菜单(可能是垂直)。点击它。

出现Build Variants窗口选项卡,单击 debug 并通过 release 进行更改。

重建您的项目应用&gt;构建&gt;重建项目

然后点击运行,出现一个新窗口,点击运行&gt;无论如何继续&gt;选择要与之一起运行的设备&gt;确定

应用程序无法在您的设备上运行,但.apk的发布版本将生成与调试版本相同的目录:

  • C:\ ANDROID_PROJECT_DIRECTORY \应用\建立\输出\ APK \

您可以注意到该名称是app-release-unsigned.apk,这正是我们想要的。

有关此tutorial website的更多信息。

答案 2 :(得分:1)

我不得不做同样的事情(因为应用程序签名是在其他地方处理的),我只是重建了项目。

要生成未签名的发行版apk ,请在构建变体菜单中选择一个发行版。

注意:您可能会在顶部菜单的应用程序配置中看到一个红叉,请忽略它。

重建项目应用程序 Build>重建项目

您将在以下位置找到您的app-release-unsigned.apk:

  • 〜\ app \ build \ outputs \ apk \ release \

注意:如果您需要创建其他版本,请保存生成的apk,因为随后的重建将覆盖当前apk(...与我不同)。