現在、iOS および Android 用の Adobe AIR プロジェクトに取り組んでいます。
ANT ビルド スクリプトを実行する Jenkins で自動的にビルドします。さまざまなコンパイル (リリース バージョンとテスト バージョン) に基づいてアプリケーションのさまざまなバージョンをパッケージ化し、テスト バージョンにはさらに多くの異なる構成がパッケージ化されます。
ここまでは順調ですね。ビルドは、AIR 3.6 SDK と組み合わせて ANT 1.8.4 を実行しているローカル マシンで動作します。
問題は、Jenkinsマシン(Mac Mini) でビルドが失敗し、次のようなエラー メッセージが表示されることがあることです。
package-android-versions:
[delete] Deleting directory /private/var/jenkins/workspace/**********/dist/android/release
[mkdir] Created dir: /private/var/jenkins/workspace/*************/dist/android/release
[echo] packaging for android...
[echo] done
[delete] Deleting directory /private/var/jenkins/workspace/************/dist/android/test/dummy
[mkdir] Created dir: /private/var/jenkins/workspace/**************/dist/android/test/dummy
[echo] packaging for android...
[java] SDK component at air/android/device/Runtime.apk is out of date
お気づきかもしれませんが、最初のパッケージ コマンドは成功するため、SDK コンポーネントが古くなっているとは考えられません。その場合、最初のパッケージ コマンドも失敗します。
以下は、関連する ANT ビルド コマンドです。
<echo>packaging for android...</echo>
<java jar="${AIR_SDK_HOME}/lib/adt.jar" fork="true" failonerror="true">
<jvmarg line="-Xmx1024m" />
<jvmarg line="-XX:MaxPermSize=2048m" />
<arg line="-package"/>
<arg line="-target apk-captive-runtime"/>
<arg line="-storetype pkcs12 -keystore '${dir.portal}/self-signed.p12' -storepass ******"/>
<arg line="'@{destination}/${app.name}@{label}' '@{source}/${app.descriptor}'" />
<arg line="-C '@{source}' ."/>
<arg line="-C '${dir.assets.runtime.android}' ."/>
</java>
<echo>done</echo>
Java コマンドで使用できるメモリの量を増やしてみましたが (私の経験では、これが失敗の原因になることが非常に多いため)、ここでは解決策ではありません。
また、私はこの同様の質問への回答を見てきましたが、私たちのビルド マシンはコンパイルとパッケージングの間にコーヒーを飲みに行かないので、それは本当の答えにはなりません ;)
他のアイデアはありますか?