我有下面的生成环境中工作:未能签署从詹金斯的Android APK,但在命令行
- Ubuntu的
- 的Java 1.6.0_24
- Apache Ant的1.8.2
- 詹金斯1.427
- 码头6.1.26
我可以创建一个发布APK(zipalign处理和(在jenkins工作区中),运行ant release
,然后在出现提示时键入密钥库传递。
但是使用相同的生成命令从失败与下面的一个詹金斯工作:
release:
[echo] Signing final apk...
[signjar] Signing JAR: /home/james/.jenkins/workspace/android-sam/androidsam/bin/AndroidSam-unsigned.apk to /home/james/.jenkins/workspace/android-sam/androidsam/bin/AndroidSam-unaligned.apk as mykeystore
[signjar] jarsigner: Certificate chain not found for: mykeystore . mykeystore must reference a valid KeyStore key entry containing a private key and corresponding public key certificate chain.
BUILD FAILED
/home/james/tools/android-sdk-linux_x86/tools/ant/main_rules.xml:641: jarsigner returned: 1
在Ant目标一步,我已经设置下列属性的詹金斯:
key.store=my-release-key.keystore
key.alias=mykeystore
key.store.password=<mypass>
key.alias.password=<mypass>
sdk.dir=/home/james/tools/android-sdk-linux_x86
什么会导致詹金斯无法签名,从命令行执行相同的目标工作正常吗?
我已经使用了这个功能,并且发现有些人正在编写自己的bash脚本来签署他们的APK,然后将这些作为shell目标运行,但它看起来相当肮脏......任何建议?
感谢