ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Godot 多平台导出与发布完整指南:从导出模板到六端打包

Godot 多平台导出与发布完整指南:从导出模板到六端打包 Godot 多平台导出与发布完整指南从导出模板到六端打包【免费下载链接】godot-docsGodot Engine official documentation项目地址: https://gitcode.com/GitHub_Trending/go/godot-docs本文写给第一次给 Godot 游戏做打包发布的人。它带你走完 Godot 导出的完整流程安装导出模板、创建导出预设再到 Windows、macOS、Linux、Android、iOS、Web 六个平台的配置要点。读完之后你可以独立完成一份多平台发布并处理签名、加密与自动化中的常见报错。发布前先看这张表不同平台对产物格式和凭证的要求差别很大动手前先对照这张表确认你手上有什么、缺什么。平台发布产物必备凭证典型用途Windows.exe可内嵌 data.pck代码签名证书.pfx强烈建议Steam、itch.io 等桌面分发macOS.app 或 .zip通用二进制同含 Intel 与 Apple SiliconApple Developer ID 证书公证必须Mac 用户直接运行或上架 Mac App StoreLinux无扩展名可执行文件惯例加 .x86_64无强制要求桌面商店与社区分发Android.apk 或 .aabAAB 上 Google Play 必须非调试 Keystore密码需长期保存Google Play 与直接安装iOS.zip导入 Xcode 后构建Apple 开发者证书 描述文件App StoreWebindex.html .wasm .pck 等一组文件无多线程导出需要服务器响应头浏览器即点即玩三步走通任意平台导出Godot 把所有平台都收敛到同一套流程装模板、建预设、点导出。任何平台卡住基本都能回到这三步里定位问题。第 1 步安装导出模板导出模板就是各平台的发行版引擎导出时项目数据会被塞进由它生成的壳里。打开 编辑器 → 管理导出模板勾选你需要的平台以及对应的 CPU 架构点安装即可。注意模板版本必须与你的引擎版本一一对应混装会直接导出失败。第 2 步创建导出预设点编辑器顶部的 导出 按钮打开导出面板第一次会是空的点 添加… 选择目标平台即生成一个预设。默认选项对大多数项目已经够用你真正要填的通常只有三处资源导出范围、Bundle ID移动端和 macOS或输出路径。预设会写入项目根目录的 export_presets.cfg可以放心提交到版本库[preset.0] nameWindows Desktop ; ← 改成你的预设名命令行导出时按这个名字引用 platformWindows Desktop [preset.0.options] ; ← 平台相关选项都在这个节里比如签名、图标、架构第 3 步导出并验证点底部的 导出项目 按钮。输出文件名要符合各平台的格式习惯Windows 是 .exemacOS 是 .app 或 .zipAndroid 是 .apkWeb 建议直接用 index.html。导出成功后别急着发在目标环境真机、虚拟机、本地浏览器完整跑一遍主流程再检查存档、音频这类依赖运行时权限的功能。桌面端三平台Windows、macOS、Linux 一次配齐三个桌面平台的差异主要在产物形态和签名要求配置思路可以一次理顺。Windows的产物是 可执行文件 data.pck也可勾选内嵌 pck 合成单文件上限约 3.9 GB。图标会自动取项目图标转换无需额外处理。默认选 x86_64 架构即可如果你的玩家里有 Windows on ARM 设备如 Snapdragon X 系处理器可以另出一个 arm64 版本。未签名的 exe 容易被杀软和 SmartScreen 拦截签名配置见后文签名一节。macOS用官方模板导出时是 Universal 2 通用二进制一份产物同时跑 Intel 和 Apple Silicon。两个高频坑一是从 Windows 上导出的 .app 会丢失可执行权限、在 macOS 上打不开建议跨机器发布时统一用 .zip二是不签名、不公证的包会被 Gatekeeper 直接拦截正式分发必须走 Apple Developer ID 签名加公证。在 macOS 上用 Xcode 自带的 codesign/notarytool 即可非 macOS 机器可以装 rcodesign 走命令行。玩家侧的放行操作可以参考文档里的这张系统设置截图Linux三者中最省心一个无扩展名二进制加 data.pck没有强制签名。默认 x86_64需要树莓派等 ARM 设备就加选 arm64 架构。习惯上用 .x86_64 作为后缀表明位数。移动端发布Android 与 iOS 的关键差异共同前置两边都需要导出模板都需要一个唯一的反向域名包名Bundle ID发布版都必须用自己的签名密钥——调试签名只能用于开发期。Android 侧的工作量偏环境。Godot 4.8 起可以走 项目 → 设置 Android 构建… 由编辑器自动下载并配置 Java 与 Android SDK手动配置时则要在编辑器设置里填 Java SDK Path 和 Android SDK Path 两个路径SDK 版本过时是常见报错源。图标方面只需提供三档主图标≥192×192Android 8 以下使用、自适应图标前景与背景≥432×432、主题图标≥432×432可选缺什么 Godot 会按回退链用项目图标顶替。上架 Google Play 必须提交 AAB 文件这要求启用 Gradle 构建并用非调试 Keystore 签名——Keystore 生成命令如下改文件名和别名即可# 生成发布用 Keystoremygame.keystore 和别名 mygame 改成你自己的 keytool -v -genkey -keystore mygame.keystore -alias mygame -keyalg RSA -validity 10000iOS 侧的门槛是 macOS 环境导出产物是一个 .zip解压后拖进 Xcode 打开在 Xcode 里完成签名、描述文件选择和上传。Godot 预设里可以填证书与描述文件让导出直接带签名但日常流程还是Godot 出包 Xcode 收口最稳。Web 端让游戏跑进浏览器Godot 4 的 Web 导出只走 WebGL 2Compatibility 渲染方法产物是一组文件index.html、.js、.wasm引擎本体、.pck你的游戏和启动图。文件名建议直接用 index.html且导出文件不要随意改名否则启动会找不到配套文件。线程模型是 Web 端最关键的取舍4.3 起默认单线程导出兼容性最好itch.io 等平台直接可用若你确实要开线程支持更低音频延迟、可用 Thread 类服务器必须返回两个跨源隔离响应头Cross-Origin-Opener-Policy: same-origin和Cross-Origin-Embedder-Policy: require-corp且页面要跑在 HTTPS 上否则项目直接起不来。没有服务器控制权时可以启用预设里的 Progressive Web App 选项用 Service Worker 模拟这两个头同时获得离线缓存能力。部署时再确认 .wasm 以application/wasm的 MIME 类型发送并对 .wasm、.pck 开启压缩wasm 通常能压到原来的四分之一左右。签名、加密与密钥管理各平台的安全设置其实遵循同一个模式公开参数进预设秘密进凭证文件。所有导出配置存在 export_presets.cfg可安全提交版本库密码、加密密钥、Keystore 路径等敏感项存在 .godot/export_credentials.cfg不要提交换机器时手动拷过去。支持自动签名的导出项都有对应的环境变量CI 里用它注入密钥最干净例如GODOT_WINDOWS_CODESIGN_IDENTITY、GODOT_WINDOWS_CODESIGN_PASSWORD、GODOT_MACOS_CODESIGN_CERTIFICATE_FILE、GODOT_SCRIPT_ENCRYPTION_KEY。Windows 签名在编辑器设置 Export → Windows 里指定 SignToolWindows 上或 osslsigncode其他系统再在预设里打开 Enabled 并填 .pfx 证书。macOS 签名有证书时选 Xcode codesign 或 rcodesign 工具、填身份或 PKCS #12 文件公证用 notarytool 或 rcodesign 并禁用 Debugging 权限什么都没有时只能用 ad-hoc 签名Gatekeeper 下玩家需手动放行。Android 的 Keystore 一旦用于上架就永远不要换更新包必须能用同一密钥验签密码丢一次就是事故。脚本加密在各预设的加密选项里开启并生成 256 位密钥密钥写入 data.pck能防普通逆向别当绝对防线。一条命令跑完所有平台导出自动化命令行导出前提是预设已建好模板已装好。核心参数是--export-release或--export-debug引号内是预设名最后是输出路径——注意它相对项目目录而不是你敲命令时的目录# 在项目外目录也能导出预设名用引号包住输出名按平台格式写 godot --path /path/to/project --export-release Windows Desktop game.exe批量导出写个循环即可各平台输出名格式不同.exe / .zip / 无后缀 / .apk / .zip#!/bin/bash # platforms 数组改成你要发的平台输出文件名按各平台格式对应修改 for p in Windows Desktop Linux Android Web; do godot --path $PROJECT --export-release $p ./builds/$p doneCI 里的做法持续集成里注意两点模板安装用 Godot headless 的--install-template或预置缓存密钥一律走环境变量不落地到代码里。流程大致是 checkout → 装模板 → 设密钥变量 → 逐平台导出# 以 Windows 为例签名密码从 CI 的 Secret 注入不写进配置文件 export GODOT_WINDOWS_CODESIGN_IDENTITY/path/to/cert.pfx godot --headless --export-release Windows Desktop game.exe踩坑记录三个真实场景与排查思路场景一Windows 包被杀软全家桶标记。现象是 exe 一落地就被隔离玩家下载即报毒。原因通常是没有有效签名——杀软对未知发布者默认敌意。处理买一份代码签名证书商业 CA按前文配置 SignTool 与证书路径重新导出已发布的旧包要在发布页说明等签名包逐步替代。场景二玩家打开 macOS 包直接被拦。现象是双击 .app 提示已损坏或来自身份不明的开发者。原因是未签名加未公证的包会被 Gatekeeper 拦下。处理正式渠道一律 Developer ID 签名并公证临时发给熟人测试时可让对方在 系统设置 → 隐私与安全性 里点仍要打开参考前文那张设置截图这只是应急手段。场景三Android 真机装不上。现象是导出时报 Could not install to device。原因是设备上已经装着一个同包名、但签名不同的应用常见于换过调试/发布密钥。处理先卸载设备上的旧应用再重新安装上 Play 前记得切到非调试 Keystore避免首包用调试签名、后续无法自签更新。发布前最后检查六个平台各自跑一次完整主流程重点覆盖存档与音频。Bundle IDmacOS/移动端与包名Android已填且全局唯一。发布版全部用正式签名Windows 证书、Apple 证书与公证、Android 非调试 Keystore。.godot/export_credentials.cfg 已加入 .gitignore密钥没有泄漏进版本库。纹理 VRAM 压缩选项按目标平台勾齐桌面 BC、移动端 ETC2/ASTC。Web 包在真实 HTTPS 服务器上验证过多线程导出确认两个隔离响应头生效。输出文件名符合各平台格式玩家拿到手就能直接运行。导出只是发布流程的中间环节配置正确与否最终都要靠真机、真浏览器、真实玩家的环境来验收。把这份清单跑完一遍再发版能挡掉绝大多数上线当天的救火。延伸阅读仓库内文档导出总览与配置说明tutorials/export/exporting_projects.rst各平台细节exporting_for_windows.rst、exporting_for_macos.rst、exporting_for_linux.rst、exporting_for_android.rst、exporting_for_ios.rst、exporting_for_web.rst命令行用法tutorials/editor/command_line_tutorial.rst【免费下载链接】godot-docsGodot Engine official documentation项目地址: https://gitcode.com/GitHub_Trending/go/godot-docs创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表