This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English
Bob 是一个命令行工具,用于在正常编辑器工作流程之外构建 Defold 项目。
Bob 能够构建数据(对应于选择编辑器菜单项 Project ▸ Build 的构建步骤),创建数据存档,并创建独立的、可分发的应用程序包(对应于编辑器菜单项 Project ▸ Bundle ▸ ... 选项)。
Bob 作为 Java JAR 存档分发,其中包含构建所需的一切。您可以在 GitHub 发布页面 上找到最新的 bob.jar 分发版本。选择一个发布版本,然后下载 bob/bob.jar。如果您使用的是 Defold 1.9.6,您将需要 OpenJDK 21 来运行它。对于旧版本的 Defold,您将需要 OpenJDK 17 或 11。
兼容的 OpenJDK 21 镜像(从 Defold 1.9.6 开始):
如果您在 Windows 上,您需要 OpenJDK 的 .msi
文件安装程序。
Bob 通过在 shell 或命令行中调用 java
(在 Windows 上是 java.exe
)并提供 bob java 存档作为参数来运行:
$ java -jar bob.jar --help
usage: bob [options] [commands]
-a,--archive Build archive
-ar,--architectures <arg> Comma separated list of
architectures to include for the
platform
--archive-resource-padding <arg> The alignment of the resources in
the game archive. Default is 4
-bf,--bundle-format <arg> Which formats to create the
application bundle in. Comma
separated list. (Android: 'apk'
and 'aab')
--binary-output <arg> Location where built engine
binary will be placed. Default is
"<build-output>/<platform>/"
-bo,--bundle-output <arg> Bundle output directory
-br,--build-report <arg> DEPRECATED! Use
--build-report-json instead
-brhtml,--build-report-html <arg> Filepath where to save a build
report as HTML
-brjson,--build-report-json <arg> Filepath where to save a build
report as JSON
--build-artifacts <arg> If left out, will default to
build the engine. Choices:
'engine', 'plugins', 'library'.
Comma separated list.
--build-server <arg> The build server (when using
native extensions)
--build-server-header <arg> Additional build server header to
set
-ce,--certificate <arg> DEPRECATED! Use --keystore
instead
-d,--debug DEPRECATED! Use --variant=debug
instead
--debug-ne-upload Outputs the files sent to build
server as upload.zip
--debug-output-spirv <arg> Force build SPIR-V shaders
--debug-output-wgsl <arg> Force build WGSL shaders
--defoldsdk <arg> What version of the defold sdk
(sha1) to use
-e,--email <arg> User email
-ea,--exclude-archive Exclude resource archives from
application bundle. Use this to
create an empty Defold
application for use as a build
target
--exclude-build-folder <arg> DEPRECATED! Use '.defignore' file
instead
-h,--help This help message
-i,--input <arg> DEPRECATED! Use --root instead
--identity <arg> Sign identity (iOS)
-kp,--key-pass <arg> Password of the deployment key if
different from the keystore
password (Android)
-ks,--keystore <arg> Deployment keystore used to sign
APKs (Android)
-ksa,--keystore-alias <arg> The alias of the signing key+cert
you want to use (Android)
-ksp,--keystore-pass <arg> Password of the deployment
keystore (Android)
-l,--liveupdate <arg> Yes if liveupdate content should
be published
--manifest-private-key <arg> Private key to use when signing
manifest and archive.
--manifest-public-key <arg> Public key to use when signing
manifest and archive.
--max-cpu-threads <arg> Max count of threads that bob.jar
can use
-mp,--mobileprovisioning <arg> mobileprovisioning profile (iOS)
--ne-build-dir <arg> Specify a folder with includes or
source, to build a specific
library. More than one occurrance
is allowed.
--ne-output-name <arg> Specify a library target name
-o,--output <arg> Output directory. Default is
"build/default"
-p,--platform <arg> Platform (when building and
bundling)
-pk,--private-key <arg> DEPRECATED! Use --keystore
instead
-r,--root <arg> Build root directory. Default is
current directory
--resource-cache-local <arg> Path to local resource cache.
--resource-cache-remote <arg> URL to remote resource cache.
--resource-cache-remote-pass <arg> Password/token to authenticate
access to the remote resource
cache.
--resource-cache-remote-user <arg> Username to authenticate access
to the remote resource cache.
--settings <arg> Path to a game project settings
file. More than one occurrance is
allowed. The settings files are
applied left to right.
--strip-executable Strip the dmengine of debug
symbols (when bundling iOS or
Android)
-tc,--texture-compression <arg> Use texture compression as
specified in texture profiles
-tp,--texture-profiles <arg> DEPRECATED! Use
--texture-compression instead
-u,--auth <arg> User auth token
--use-async-build-server DEPRECATED! Asynchronous build is
now the default.
--use-lua-bytecode-delta Use byte code delta compression
when building for multiple
architectures
--use-uncompressed-lua-source Use uncompressed and unencrypted
Lua source code instead of byte
code
--use-vanilla-lua DEPRECATED! Use
--use-uncompressed-lua-source
instead.
-v,--verbose Verbose output
--variant <arg> Specify debug, release or
headless version of dmengine
(when bundling)
--version Prints the version number to the
output
--with-symbols Generate the symbol file (if
applicable)
可用命令:
clean
distclean
build
--archive
选项以构建数据存档文件(构建目录中的 “game.darc
“)。bundle
--archive
选项的 build
)并指定目标平台(使用 --platform
选项)。除非使用 --bundle-output
选项指定不同的目录,否则 Bob 会在输出目录中创建包。包根据 game.project 中的项目名称设置命名。--variant
指定打包时构建哪种类型的可执行文件,它与 --strip-executable
选项一起取代了 --debug
选项。如果没有指定 --variant
,您将获得引擎的发布版本(在 Android 和 iOS 上剥离符号)。将 --variant
设置为 debug 并省略 --strip-executable
会产生与 --debug
过去相同的可执行文件类型。resolve
可用平台和架构:
x86_64-darwin
(Defold 1.3.5 及更早版本)x86_64-macos
(Defold 1.3.6 及更新版本)arm64-macos
(Defold 1.5.0 及更早版本)x86_64-win32
x86-win32
x86_64-linux
x86_64-ios
armv7-darwin
(Defold 1.3.5 及更早版本)armv7-ios
(Defold 1.3.6 及更新版本)armv7-darwin
和 64 位 arm64-darwin
架构。默认情况下,--architectures
参数值为 armv7-darwin,arm64-darwin
。armv7-android
armv7-android
和 64 位 arm64-android
架构。默认情况下,--architectures
参数值为 armv7-android,arm64-android
。js-web
js-web
和 wasm-web
架构。默认情况下,--architectures
参数值为 js-web,wasm-web
。默认情况下,Bob 在当前目录中寻找要构建的项目。如果您将当前目录更改为 Defold 项目并调用 bob,它将在默认输出目录 build/default 中构建项目的数据。
$ cd /Applications/Defold-beta/branches/14/4/main
$ java -jar bob.jar
100%
$
您可以将命令串联在一起以一次性执行一系列任务。以下示例解析库,清除构建目录,构建存档数据并将 macOS 应用程序捆绑(命名为 My Game.app):
$ java -jar bob.jar --archive --platform x86-darwin resolve distclean build bundle
100%
$ ls -al build/default/
total 70784
drwxr-xr-x 13 sicher staff 442 1 Dec 10:15 .
drwxr-xr-x 3 sicher staff 102 1 Dec 10:15 ..
drwxr-xr-x 3 sicher staff 102 1 Dec 10:15 My Game.app
drwxr-xr-x 8 sicher staff 272 1 Dec 10:15 builtins
-rw-r--r-- 1 sicher staff 140459 1 Dec 10:15 digest_cache
drwxr-xr-x 4 sicher staff 136 1 Dec 10:15 fonts
-rw-r--r-- 1 sicher staff 35956340 1 Dec 10:15 game.darc
-rw-r--r-- 1 sicher staff 735 1 Dec 10:15 game.projectc
drwxr-xr-x 223 sicher staff 7582 1 Dec 10:15 graphics
drwxr-xr-x 3 sicher staff 102 1 Dec 10:15 input
drwxr-xr-x 20 sicher staff 680 1 Dec 10:15 logic
drwxr-xr-x 27 sicher staff 918 1 Dec 10:15 sound
-rw-r--r-- 1 sicher staff 131926 1 Dec 10:15 state
$
Did you spot an error or do you have a suggestion? Please let us know on GitHub!
GITHUB