gpt4 book ai didi

Android使用gradle生成未签名的apk

转载 作者:太空狗 更新时间:2023-10-29 16:37:58 24 4
gpt4 key购买 nike

我有一个 Android 项目(使用 Android Studio 和 Gradle)和一个构建这个项目的 Jenkins CI 服务器

我想做的是生成一个完全未签名的证书

事实上,当服务器构建应用程序时,它确实生成了一个-unsigned.apk,但看起来这个apk签名的通过开发人员证书

事实上,我通过下载 apk 并运行以下命令(在阅读 How do I verify that an Android apk is signed with a release certificate? 之后)检查了这一点

jarsigner -verify -verbose -certs app-unsigned.apk | grep Android

所以输出是这样的

X.509, CN=Android Debug, O=Android, C=US

(有很多行)

为了它的值(value),我构建了运行 gradle 任务的应用程序:

clean assemble lint

然后,我通过运行压缩所有 apk

zipalign -f -v 4 *.apk

我的 build.gradle 不包含任何签名选项

android {
compileSdkVersion 19
buildToolsVersion '19.0.1'

defaultConfig {
minSdkVersion 10
targetSdkVersion 19
}

buildTypes {
debug {
// proguard
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
// ZipAlign
zipAlign false
}

release {
// proguard
runProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
// ZipAlign
zipAlign true
}
}

productFlavors {
defaultFlavor {
proguardFile 'proguard-rules.txt'
}
}

lintOptions {
// Don't abort if Lint finds an error, otherwise the Jenkins build
// will be marked as failed, and Jenkins won't analyse the Lint output
abortOnError false
}
}

接下来我可以尝试什么?

最佳答案

好的,我设法得到了结果。

事实在我用于构建的任务中。

我用过

clean assemble lint

然后我更改为

clean assembleRelease lint

生成的 apk 现在是 app-release-unsigned.apk 但是当我运行命令时

jarsigner -verify -verbose -certs app-release-unsigned.apk | grep Android

输出什么都没有所以我猜它起作用了。

这对我来说是个谜,因为我认为 assembleassembleDebugassembleRelease 的一种快捷方式> like I read on gradle但似乎生成的 apk 具有相同的名称 (app-release-unsigned.apk),但其中一个已签名,另一个未签名。

无论如何,使用assembleRelease 似乎可行。

关于Android使用gradle生成未签名的apk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23613326/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com