Build

Build thư viện native của plugin trên máy: Android bằng một file .bat trên Windows, iOS trên máy Mac. Không dùng CI.

Build trên máy

Ở thư mục gốc repo, chạy build_android.bat (double-click hoặc từ terminal):

build_android.bat              :: build mọi plugin
build_android.bat nativeutils  :: chỉ một plugin

Script tự làm các việc sau:

  1. Tìm JDK 17 hoặc 21: ưu tiên JAVA_HOME, sau đó Temurin, Oracle, Microsoft, JBR của Android Studio.
  2. Tìm Android SDK (ANDROID_HOME, ANDROID_SDK_ROOT hoặc %LOCALAPPDATA%\Android\Sdk) và ghi vào android/local.properties nếu chưa có.
  3. Build AAR → plugins/<tên>/addon/leono_<tên>/bin/android/leono_<tên>.aar.
  4. Copy mọi addon sang demo/addons/ để test.

Lần build đầu Gradle tải khoảng vài trăm MB (Gradle, thư viện Google) nên mất vài phút; các lần sau khoảng 15–30 giây.

macOS/Linux dùng thẳng Gradle: cd android && ./gradlew copyAar syncDemo.

Chỉ macOS. Cần Xcode và SCons.

brew install scons
scripts/build_ios.sh nativeutils
# → plugins/nativeutils/addon/leono_nativeutils/bin/ios/*.xcframework

Script tự tải godot-cpp 10.0.0-stable, build cho máy thật (arm64) và Simulator (arm64), gộp với godot-cpp thành một static library rồi đóng gói .xcframework cho cả bản debug và release.

Đưa tài liệu lên web

Trang tài liệu này nằm ở addons.leonogames.com (Cloudflare Pages, project leono-addons). Sửa file trong docs/ xong thì chạy:

deploy_docs.bat

Script làm 3 việc, mất khoảng 20 giây:

  1. Build lại mọi AAR (build_android.bat).
  2. Đóng gói mỗi plugin thành downloads/leono_<tên>.zip (cấu trúc addons/leono_<tên>/) và một gói leono_plugins_all.zip.
  3. Upload docs/ (trừ specs/) cùng các file zip bằng wrangler.

Cần Node.js, JDK 17/21 + Android SDK, và biến môi trường cấp user CLOUDFLARE_API_TOKEN, CLOUDFLARE_ACCOUNT_ID. Thư viện iOS chỉ có trong zip nếu đã build trên Mac trước đó (bin/ios/).

Đưa vào game

Sau khi build, thư mục plugins/<tên>/addon/leono_<tên>/ đã có đủ bin/. Copy nguyên thư mục đó vào res://addons/ của game. Cần cả Android lẫn iOS thì build iOS trên Mac rồi gộp thư mục bin/ios/ vào cùng addon.

Kiểm tra

Project demo/ có sẵn nút cho mọi hàm của mọi plugin. Không cần thiết bị:

godot --headless --path demo --editor --quit   # không có lỗi script
godot --headless --path demo -- --check        # in "self-check OK"

Export demo ra máy thật để kiểm tra đầy đủ hành vi native.

Toolchain

Công cụPhiên bảnGhi chú
Godot4.7.2
Android Gradle Plugin8.6.1Khớp build template của Godot 4.7.2
Gradle8.11.1
Kotlin2.1.21
compileSdk / minSdk36 / 24
godot-cpp10.0.0-stableapi_version=4.7
iOS deployment target15.0Mặc định của Godot 4.7