Antを使用して、コマンドラインからさまざまなデータでAPKを自動的に生成します

最近、問題に遭遇しました-ダウンロードのためにリモートサーバーでapkファイルを生成する必要があり、転送されたサーバーアドレスに応じて、プログラムはインストール中にデフォルトでさまざまなサーバーに接続する必要がありました。

したがって、タスクは、渡されたパラメーター(この場合は異なるデータダウンロードサーバー)に応じて異なる動作をする動的に生成されたAndroidアプリケーションをインターネットからダウンロードする機会をユーザーに与えることです。



おそらくこのタスクは多くの人にとって簡単に思えるかもしれませんが、私はこれに初めて出くわし、その情報が誰かに役立つことを願っています。

最初に、リモートサーバーでJavaおよびAnt(Android SDK)を構成します。 これらのパッケージからアプリケーションを起動するときに、それらへのパスが登録されていることを確認するか、フルパスを入力してください。 プロジェクトソースをサーバーにコピーします。

コマンド実行順序


この例をUbuntuに提供します。 Windowsサーバーの場合、コマンドラインでファイル作成コマンドを置き換えるだけで済みます。

可変サーバーアドレスでapkファイルを生成するバッチファイルを作成します。 当然、他の変数にも使用できます。

まず、プロジェクトのデータ/アセットフォルダーへのパスとして指定されたデータのファイルを作成します...

cat<<F>__/_.txt
,
F


プロジェクトのルートにbuild.xmlファイルを生成し、プロジェクト名<project_name>を指定できます。これはapkファイルの名前になります。 さまざまなリリースを作成する必要がある場合は、たとえばproject_name_release_number_version_numberなどを指定できます。

android update project --name <project_name> --path <path_to_your_project>

次に、プロジェクトのルートから、コマンドを実行します

ant release

その結果、完成したapkが/ binディレクトリに取得されます。 この場合、アプリケーションに署名していないため、接尾辞-unsigned.apkが付いたファイルを受け取ります。 アプリケーションに署名するには、証明書ストアへのパスがlocal.propertiesファイルに記述されていることを確認する必要があります。 ここでは、アプリケーションに署名するための証明書を作成する方法について説明します 。 これはこの記事の範囲を超えています。

key.store=/Path/to/my/keystore/MyKeystore.ks
key.alias=myalias


確かに、このファイルの生成コードを挿入できます。

cat<<F >_/local.properties
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must *NOT* be checked in Version Control Systems,
# as it contains information specific to your local configuration.
# location of the SDK. This is only used by Ant
# For customization when using a Version Control System, please read the
# header note.
sdk.dir=/__sdk/Android-sdk
key.store=/Path/to/my/keystore/MyKeystore.ks
key.alias=myalias
F


Javaコードで、/ assetsの生成されたファイルから作業に必要なデータを取得します。 必要に応じて使用してください。 私の場合、起動する必要があるサーバーアドレスを読み取るだけです。
ユーザーにダウンロードする完成したapkへのリンクを提供します。

完全なバッチファイルを以下に示します。 パラメーターを使用して、データパスとファイル名をスクリプト/バッチファイルに渡すことができます。

注意! メモのテキストでは、EOFはロシア語の文字EとOを使用してすべての場所に書き込まれます。そうでない場合、正しく表示されません。

cat<<F >__/_.txt
,
F
android update project --name <project_name> --path <path_to_your_project>
cat<<F>_/local.properties
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must *NOT* be checked in Version Control Systems,
# as it contains information specific to your local configuration.
# location of the SDK. This is only used by Ant
# For customization when using a Version Control System, please read the
# header note.
sdk.dir=/__sdk/Android-sdk
key.store=/Path/to/my/keystore/MyKeystore.ks
key.alias=myalias
F
ant release

Source: https://habr.com/ru/post/J122528/


All Articles