使用Gradle构建未签名的APK

时间:2013-07-04 09:04:58

标签: android gradle android-studio

目前我正在尝试学习Gradle来构建Android APK。如何在gradle中设置一个选项来构建一个未签名的APK?

4 个答案:

答案 0 :(得分:69)

您不必设置任何选项,只需运行常规任务:

$ gradle assemble

这将在project / build / apk /

中生成两个文件
app-debug-unaligned.apk 
app-release-unsigned.apk

答案 1 :(得分:17)

要生成未签名的apk,请执行以下操作:

  • 使用如下所示的空配置定义signingConfig

    signingConfigs{
        unsigned{
            storePassword = ""
            keyAlias = ""
            keyPassword = ""
        }
    }
    
  • buildTypes中为您的发布版本定义未签名的配置:

    buildTypes{
        release{
            signingConfig signingConfigs.unsigned
        }
    }
    

我从adt-dev group得到这个,Xavier Ducrohet写道:

  

目前的行为是检查签名配置是否完全   配置(*),如果是,它生成一个签名的APK,否则一个   未签名的APK。

     

(*)现在完全配置意味着的值   存储,别名和密码存在,但不包括   密钥库存在。

更新2013-12-19

正如没有提到的那样,这不适用于gradle插件版本0.6.3。

无论如何,可以使用gradle生成一个未签名的APK:只需将flavor或buildType的signingConfig条目留空即可。它应该是这样的:

productFlavors{
    // with this config you should get a "MyProject-flavorUnsigned-release-unsigned.apk"
    flavorUnsigned{
        versionCode = 9
        packageName defaultPkgName
    }
}

buildTypes{
    // with this config you should get a "MyProject-release-unsigned.apk"
    release{
        packageNameSuffix '.release'
    }
}

答案 2 :(得分:7)

只需为signedConfig

指定null
android {
  …
  defaultConfig {
    …
    testInstrumentationRunner = "android.support.test.runner.AndroidJUnitRunner"
  }
  …
}

dependencies {
    // Required -- JUnit 4 framework
    testCompile 'junit:junit:4.12'
    // Optional -- Mockito framework
    testCompile 'org.mockito:mockito-core:1.10.19'

    androidTestCompile 'com.android.support:support-annotations:23.2.0'
    androidTestCompile 'com.android.support.test:runner:0.4.1'
    androidTestCompile 'com.android.support.test:rules:0.4.1'
    // Optional -- Hamcrest library
    androidTestCompile 'org.hamcrest:hamcrest-library:1.3'
    // Optional -- UI testing with Espresso
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1'
    // Optional -- UI testing with UI Automator
    androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.1'
}

答案 3 :(得分:0)

如果要使未签名的构建类型行为(就像调试构建一样),请执行以下操作:

add = ("INSERT INTO server_stats_servers (Owner, ServerID, MessageID, "
       "Channel, ServerIP, ServerPort, ServerName, DiscordName, `Key`) "
       "VALUES (%(Owner)s, %(ServerID)s, %(MessageID)s, %(Channel)s, "             
       "%(ServerIP)s, %(ServerPort)s, %(ServerName)s, %(DiscordName)s, %(Key)s)")
相关问题