使用 Cocos creator 做小游戏开发的同学应该都会有最后的发布需求。当项目打算作为一个独立 App 进行发布的时候,总会面临构建、打包、发布过程中各式各样的坑。自己最近在做这方面工作时也遇到相同的情况,因此打算在解决问题的过程中,将遇到的一些情况都做个简单的记录,也许能帮到一些同学。
1. 发布流程
在 Cocos creator 的开发工作完成后,需要进行构建任务的创建,构建任务会创建出 Android 的代码工程。如果不需要对 Android 工程做改动的情况下,构建任务还可以直接生成 Android 平台的 APK 产物。
但大多数情况下,在我们打算向 Android 平台发布一款应用时,会考虑增加稳定性监控、数据埋点这些相关的功能。因此当我们构建了 Android 工程后,剩下还有一部分工作会转移到 Android Studio 进行。
在 Android Studio 对工程进行修改后,可以直接通过 Android Studio 的打包能力进行最终产物的输出。
2. Cocos creator 创建构建任务
Cocos creator 提供了非常简便的原生平台构建任务的解决方案。大多数情况下只需要跟随教程进行,并在构建平台处选择「安卓」。
在「安卓」选项下,应用 ID 名称就是 Android APK 的包名。渲染后端大多数情况下选择 GLES 是足够的,VULKAN 在 Android 7.0 以上也是默认支持了,按需要选取即可;发布的手机应用较少有 x86 平台的,因此「App ABI」一般也只需要 arm 平台;最后,如果你需要自己对打包产物进行签名的话,这里可以填上你自己的 keystore。
3. 生成的 Android 工程
当上一步所有内容填写完成后,点击「构建」,会开始在 cocos 项目下生成 build/android 文件夹,文件夹下有 4 个文件,包括三个文件夹和一个配置文件。其中 proj 就是 Android Studio 可导入的工程。
首次导入可能会提示 gradle 版本不匹配,需要进行升级。
这里升级到 8.5 再重新进行 sync 成功。
Sync 完成后左侧 Android 选项卡下显示了 4 个模块结构,分别是 libcocos、libservice、cocosproject。
尝试运行,会在编译时先执行 CMake 任务,完成后再进行 APK 打包(首次编译时间较久),这一步暂时没遇到什么问题,编译完成后可以直接在模拟器中运行起来。
4. 原生项目目录
(以下内容搬运自官方文档)
当点击 构建 按钮后,会生成三个原生平台相关的文件夹。
公共目录
公共目录位置:native/engine/common
此目录用于存放共公内容,如引擎库配置,以及一些所有平台都会用上的第三方库。
这个目录下的代码多数是由 C/C++ 编写。
原生平台目录
平台目录名字规则:native/engine/当前构建的平台名称
这个目录用于存放对应平台相关的信息,比如:
- native/engine/android
- native/engine/ios
- native/engine/win64
- native/engine/mac
win64 用于 windows, 目前已不再支持 win32, 仅支持 win64 应用程序发布。
项目目录
项目目录名字规则:build/当前构建的平台名称
这个目录,包含的是最终生成的原生工程,用于编译、调试和发布。如:
- build/android
- build/ios
- build/windows
- build/mac
每一次构建时,引擎会将公共目录和原生平台目录,以及 Cocos Creator 项目中的资源、脚本等结合在一起,生成项目目录。
项目目录中的代码和相关配置引用原生平台目录下的文件,在 IDE 中改动对应的部分,平台目录下的文件也会做对应修改。
例外:native/engine/ios/info.plist 与 native/engine/mac/info.plist 文件由于CMake的机制,使用的是复制方式。 如果要对 info.plist 进行修改,则需要注意。
项目目录包含下内容:
assets:data目录的软链,用于兼容各平台data:Cocos Creator 项目中的资源和脚本生成的内容proj:存放当前构建的原生平台工程,可用于对应平台的 IDE(如 Xcode,Android Studio 等) 执行编译、调试和发布。cocos.compile.config.json:本次构建的采用的构建选项配置