Que*_*ein 2 android unsigned gradle apk jenkins
我有一个Android项目(使用Android Studio和Gradle)和一个构建此项目的Jenkins CI服务器.
我要做的是生成一个完全未签名的证书.
事实上,当服务器构建的应用程序,它会产生一个-unsigned.apk但似乎这个APK 是由签署developper证书.
事实上,我通过下载apk并运行以下命令检查了这一点(阅读后如何验证Android apk是否与发布证书签名?)
jarsigner -verify -verbose -certs app-unsigned.apk | grep Android
Run Code Online (Sandbox Code Playgroud)
所以输出就像
X.509, CN=Android Debug, O=Android, C=US
Run Code Online (Sandbox Code Playgroud)
(有很多行)
为了它的价值,我构建了运行gradle任务的应用程序:
clean assemble lint
Run Code Online (Sandbox Code Playgroud)
之后,我通过运行来压缩所有的apks
zipalign -f -v 4 *.apk
Run Code Online (Sandbox Code Playgroud)
我的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
}
}
Run Code Online (Sandbox Code Playgroud)
如果有人有想法生成一个完整的未签名的apk它会帮助我很多.谢谢你的帮助.
好的,我设法得到了结果.
事实是我用于构建的任务.
我用了
clean assemble lint
Run Code Online (Sandbox Code Playgroud)
然后我改变了
clean assembleRelease lint
Run Code Online (Sandbox Code Playgroud)
生成的apk现在是app-release-unsigned.apk,但是当我运行命令时
jarsigner -verify -verbose -certs app-release-unsigned.apk | grep Android
Run Code Online (Sandbox Code Playgroud)
输出没什么,所以我猜它有用.
这是一个谜对我来说,因为我觉得assemble
是一种快捷的assembleDebug
,然后assembleRelease
就像我的gradle上阅读,但似乎产生的APK具有相同的名称(应用程序释放-unsigned.apk),但其中一人签署,则别的没有.
无论如何,使用assembleRelease
似乎工作.
归档时间: |
|
查看次数: |
3549 次 |
最近记录: |