52

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

4

4 回答 4

83

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

$ gradle assemble

这将在 project/build/apk/ 中生成两个文件

app-debug-unaligned.apk 
app-release-unsigned.apk
于 2013-07-04T13:16:16.930 回答
20

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

  • signingConfig用这样的空配置定义一个:

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

    buildTypes{
        release{
            signingConfig signingConfigs.unsigned
        }
    }
    

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

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

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

更新 2013-12-19

正如 withoutclass 提到的,这不适用于 gradle 插件版本 0.6.3。

无论如何,可以使用 gradle 生成未签名的 APK:只需让风味或 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'
    }
}
于 2013-08-08T08:33:38.383 回答
10

只需将 null 分配给 signingConfig

android {
  buildTypes {
    debug {
      signingConfig null
    }
  }
}
于 2016-05-28T00:25:35.067 回答
0

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

myBuildType {
    initWith debug
    ...
}
于 2018-10-26T13:40:35.047 回答