🚧

Buildozer Installtion メモ

2024/12/09に公開

Buildozerとは

Buildozerは、Pythonで記述されたアプリケーションをAndroidやiOS向けに簡単にビルドできるオープンソースツールである。特にKivyフレームワークと組み合わせて使われることが多い。

主な特徴

  1. クロスプラットフォーム対応
    PythonコードをAndroid APKやiOSアプリに変換可能
    ※ iOSアプリのビルドにはmacOSが必要
  2. 依存関係の管理
    必要なライブラリやツールチェーンを自動でダウンロード・設定
  3. シンプルな設定
    buildozer.specという設定ファイルを使って、アプリ名やバージョン、依存関係を管理
  4. 自動化
    1つのコマンドでビルドからAPKの生成まで行える

環境

Ubuntu 22.04 LTS
Python 3.10.12

参考

公式ドキュメント
https://buildozer.readthedocs.io/en/latest/installation.html

コマンド

基本的なコマンド

  1. buildozer init

    • buildozer.specファイル(アプリの設定を記述するためのテンプレート)を生成
  2. buildozer -v <command>

    • コマンドを詳細モードで実行し、進行状況を詳しく表示
    • 使用例:buildozer -v android debug

プラットフォーム関連

  1. buildozer android debug

    • Android用のデバッグ用APKをビルド
  2. buildozer android release

    • リリース用のAPKをビルド (署名が必要)
  3. buildozer ios debug

    • iOS用のデバッグアプリをビルド (macOSが必要)
  4. buildozer ios release

    • リリース用のiOSアプリをビルド

デバッグ・エミュレーション

  1. buildozer android deploy run logcat

    • アプリをデバイスにデプロイし、実行し、ログをリアルタイムで取得
  2. buildozer android clean

    • Androidビルドのキャッシュをクリア

設定関連

  1. buildozer help

    • 使用可能なすべてのコマンドとオプションの一覧を表示
  2. buildozer distclean

    • すべてのビルド関連ファイルや依存関係を削除し、初期状態に戻す

プロジェクトの更新

  1. buildozer android update
    • Androidの依存関係やツールを更新

注意点

  • 必要なコマンドは、buildozer.specファイルの設定内容やターゲットプラットフォームによって異なる
  • ビルド時に発生する問題の多くは依存関係や環境設定が原因なので、エラーログを確認してください・・・

Buildozerのインストール

1. 必要なパッケージのインストール

sudo apt update
sudo apt install -y git zip unzip openjdk-17-jdk python3-pip autoconf libtool pkg-config zlib1g-dev libncurses5-dev libncursesw5-dev libtinfo5 cmake libffi-dev libssl-dev
pip3 install --upgrade Cython==0.29.33

2. ~/.bashrc を編集

  1. ~/.bashrcを開いて編集
    ターミナルで以下のコマンドを実行して、~/.bashrc ファイルを開く

    nano ~/.bashrc
    
  2. 環境変数PATHを設定

    ファイルの最終行に以下を追加

    # Add local bin directory to PATH
    export PATH=$PATH:~/.local/bin/
    

    nanoはCtrl+xyEnterで上書き保存

  3. 変更を適用
    ターミナルに戻り、以下を実行して設定を反映させる

    source ~/.bashrc
    
  4. 設定内容の説明

    • PATH 環境変数
      システムがコマンドを探す場所を指定する
      : で区切られたディレクトリのリスト

    • ~/.local/bin/ の追加
      この設定により、~/.local/bin/ 内のコマンドを直接実行できるようになる
      主にユーザーローカルのインストールスクリプトが置かれる

    • export の役割
      設定をシェルのサブプロセスにも引き継ぎ、全体で有効にする

3. 仮想環境の作成(推奨)

python3 -m venv buildozer_env
source buildozer_env/bin/activate

https://zenn.dev/shimazu_aon/articles/88229a14880c56

4. Buildozerのインストール

pip3 install --upgrade pip
pip3 install buildozer

5. 動作確認

buildozerコマンドが使用できるか確認する

buildozer --version

Kivyアプリをビルドする

実際にKivyアプリのビルドをテストする。

  1. Kivyアプリの作成
    まず、Kivyアプリを作成する。以下のようなシンプルなmain.pyを用意。

    from kivy.app import App
    from kivy.uix.label import Label
    
    class MyApp(App):
        def build(self):
            return Label(text="Hello, Buildozer!")
    
    if __name__ == "__main__":
        MyApp().run()
    
  2. Buildozerの設定ファイルを生成
    Buildozerの設定ファイルを生成する。アプリのディレクトリ内で以下のコマンドを実行する。

    buildozer init
    

    これにより、buildozer.specというファイルが生成される。
    このファイルには、ビルドに関する設定が記載されている。
    例えば、アプリの名前やパッケージ名などを指定できる。

  3. Android APKのビルド
    Android用のAPKをビルドする。
    以下のコマンドを実行すると、必要な依存関係が自動的にインストールされ、APKが生成される。

    buildozer -v android debug
    

    ビルドが完了すると、bin/ディレクトリに*.apkファイルが生成される。
    このファイルをAndroidデバイスにインストールしてテストすることができる。

Discussion