У меня есть следующая среда сборки:
- Ubuntu
- Java 1.6.0_24
- Apache ant 1.8.2
- Дженкинс 1,427
- Причал 6.1.26
Я могу создать выпуск APK (zipaligned и подпись) из командной строки (в рабочей области jenkins), выполнив команду ant release
, а затем введите запрос в хранилище ключей по запросу.
Однако при использовании той же команды сборки из задания Jenkins происходит сбой со следующим:
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
На шаге назначения jenkins 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
Что может привести к тому, что jenkins не сможет подписать, при этом выполнение той же цели из командной строки работает нормально?
Я гуглил по этому поводу и обнаружил, что некоторые люди пишут свои собственные bash-скрипты для подписи своих APK, а потом запускают их как цели оболочки, но это кажется довольно грязным ... любые предложения?
Спасибо