リリース APK は必ず
packaging エントリーポイントでビルドしてください。初回ビルドの前に、ネイティブ コンポーネントの準備を完了してください。必要環境
ビルドの入り口はリポジトリ ルートの
kotlin スクリプト(Windows は kotlin.bat)です。初回実行時に必要な Kotlin Toolchain を自動的にダウンロードするため、Kotlin や Gradle を手動でインストールする必要はありません。サポートする最低 Android バージョンは 13(API 33)、対応 ABI は arm64-v8a のみです。NDK バージョン、最小 SDK、ABI は kernel.properties から読み込まれます。
リポジトリの準備
1
ソースの取得
2
Android SDK の設定
API 37、build-tools 37.0.0、NDK 30.0.16248370、CMake 3.22.1、Ninja をインストールし、SDK ライセンスに同意してください。
ANDROID_HOME を SDK に向けるか、リポジトリ ルートに local.properties を作成します:ANDROID_HOME、ANDROID_SDK_ROOT、sdk.dir はすべて同じ SDK を指す必要があります。3
Go と Rust の準備
MetaCubeX が管理する Go 1.27(CI と同じバージョン)と Rust nightly ツールチェーンをインストールします。次のステップで GOROOT を変更するため、専用の Go SDK を推奨します:Go コアをビルドする前に、
.github/patch/ のパッチを go env GOROOT の示すディレクトリへ適用します。CI はネイティブ ビルドの前に自動で実行します。以下のコマンドは Linux、macOS、Git Bash で利用できます:4
mihomo カーネルの同期
既定では Alpha ブランチを同期します。Meta も利用できます:
ネイティブ コンポーネントのビルド
完全ビルド
コンポーネント単位のビルド
既定の ABI は
kernel.properties の abi.app.list から取得されます。環境変数で明示的に指定することもできます:
ビルド成果物
jniLibs/arm64-v8a/ のネイティブ ライブラリ:
Geo データは
build/generated/assets/geo/ に配置されます:
APK のビルド
ビルド コマンドはkotlin run -m packaging です。すべての -Pkey=value 引数は -- の後に置き、packaging エントリへ渡します。PowerShell ではドットを含む引数を単一引用符で囲みます。
Debug
Debug はローカルでのインストールと検証向けで、既定では Geo を同梱しません:Release
Release は loader DEX をビルドしてペイロードを梱包します。先に後述の署名設定を済ませてください:output_apk/debug/ と output_apk/release/ に YumeBox-external.apk または YumeBox-builtin.apk として出力され、バージョンや SHA-256 などのビルド情報を記録した同名の .apk.json が生成されます。
署名
署名を設定しない場合、Debug は標準の debug keystore を自動生成して使用します。リポジトリ ルートにsigning.properties が存在する場合は、Debug と Release の両方でそれが優先されます。Release は署名が必須です。リポジトリ ルートに release.keystore を置き、signing.properties を作成してください:
release.keystore と signing.properties はコミットしないでください。--allow-unsigned を明示的に指定し、かつ signing.properties がない場合にのみ生成されます。未署名 APK は adb install でインストールできず、CI もこのオプションを使用しません。
CI ビルド
すべての CI ジョブはmacos-26 で実行され、arm64-v8a のみをビルドします:
CI はコミット数をビルド バージョン番号として使用し、コミット ハッシュとブランチ情報を埋め込みます。
インストールの確認
output_apk/debug/ の実際の成果物を確認してください。
よくある問題
その他のビルドエラーは FAQ を参照してください。
