Cocos creator 构建 Android 平台应用

871 阅读4分钟

使用 Cocos creator 做小游戏开发的同学应该都会有最后的发布需求。当项目打算作为一个独立 App 进行发布的时候,总会面临构建、打包、发布过程中各式各样的坑。自己最近在做这方面工作时也遇到相同的情况,因此打算在解决问题的过程中,将遇到的一些情况都做个简单的记录,也许能帮到一些同学。

1. 发布流程

在 Cocos creator 的开发工作完成后,需要进行构建任务的创建,构建任务会创建出 Android 的代码工程。如果不需要对 Android 工程做改动的情况下,构建任务还可以直接生成 Android 平台的 APK 产物。

但大多数情况下,在我们打算向 Android 平台发布一款应用时,会考虑增加稳定性监控、数据埋点这些相关的功能。因此当我们构建了 Android 工程后,剩下还有一部分工作会转移到 Android Studio 进行。

在 Android Studio 对工程进行修改后,可以直接通过 Android Studio 的打包能力进行最终产物的输出。

2. Cocos creator 创建构建任务

Cocos creator 提供了非常简便的原生平台构建任务的解决方案。大多数情况下只需要跟随教程进行,并在构建平台处选择「安卓」。

image.png

在「安卓」选项下,应用 ID 名称就是 Android APK 的包名。渲染后端大多数情况下选择 GLES 是足够的,VULKAN 在 Android 7.0 以上也是默认支持了,按需要选取即可;发布的手机应用较少有 x86 平台的,因此「App ABI」一般也只需要 arm 平台;最后,如果你需要自己对打包产物进行签名的话,这里可以填上你自己的 keystore。

image.png

3. 生成的 Android 工程

当上一步所有内容填写完成后,点击「构建」,会开始在 cocos 项目下生成 build/android 文件夹,文件夹下有 4 个文件,包括三个文件夹和一个配置文件。其中 proj 就是 Android Studio 可导入的工程。

image.png

首次导入可能会提示 gradle 版本不匹配,需要进行升级。

image.png

这里升级到 8.5 再重新进行 sync 成功。

image.png

Sync 完成后左侧 Android 选项卡下显示了 4 个模块结构,分别是 libcocos、libservice、cocosproject。

image.png

尝试运行,会在编译时先执行 CMake 任务,完成后再进行 APK 打包(首次编译时间较久),这一步暂时没遇到什么问题,编译完成后可以直接在模拟器中运行起来。

image.png

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 进行修改,则需要注意。

项目目录包含下内容:

  • assetsdata 目录的软链,用于兼容各平台
  • data:Cocos Creator 项目中的资源和脚本生成的内容
  • proj:存放当前构建的原生平台工程,可用于对应平台的 IDE(如 Xcode,Android Studio 等) 执行编译、调试和发布。
  • cocos.compile.config.json:本次构建的采用的构建选项配置