私は次のビルド環境を持っています:
- Ubuntu
- Java 1.6.0_24
- Apache ant 1.8.2
- ジェンキンス1.427
- 桟橋6.1.26
コマンドライン(jenkinsワークスペース領域)からリリースAPK(zipalignedおよびsigned)を作成するには、実行して、プロンプトが表示されたら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が署名に失敗し、コマンドラインから同じターゲットを実行するとうまくいく原因は何ですか?
私はこれをグーグルで検索し、APKに署名するために独自のbashスクリプトを作成し、後でそれらをシェルターゲットとして実行している人がいることを発見しましたが、それはかなり汚い方法のようです...何か提案はありますか?
ありがとう