Cocos Creator是个能发布多平台的引擎工具,之前一直用来发布Web项目,微信小游戏,头条小游戏,QQ小游戏的项目,今天尝试了一下如何发布Native 安卓(Android)apk和ios的ipa 文件。
Cocos Creator 使用基于 cocos2d-x 引擎的 JSB 技术实现跨平台发布原生应用。在使用 Cocos Creator 打包发布到原生平台之前,需要先配置好 cocos2d-x 相关的开发环境。
前期准备
环境准备
- Android 环境(Android Studio)点击下载
- ios环境 (Xcode)(可以Appstore下载)进入官网
- Cocos Creator 进入官网
- Python2.75+(Mac电脑自带)(进入官网)
- Java SDK (JDK)点击下载
配置环境
- Java SDK
1 | java -version |
本地输出
1 | Last login: Thu Oct 17 14:39:48 on ttys001 |
如果不能正确输出,请重新配置JDK环境,如何配置JDK,在此不再赘述。
- Python
1 | Python |
本地输出
1 | bogon:~ smile$ Python |
安装Xcode和Android Studio
安装 Android Studio 完成后,参考官方文档,打开 SDK Manager
-
在 SDK Platforms 分页栏,勾选你希望安装的 API Level,也就是支持安卓系统的版本,推荐选择最低兼容的 API Level 16(4.1) 和所需的主流 API Level 23(6.0)、API Level 26(8.0)和 API Level 28(9.0)。
在 SDK Tools 分页栏,首先勾选右下角的
Show Package Details
,显示分版本的工具选择。在
Android SDK Build-Tools
里,选择最新的 build tools 版本。勾选
Android SDK Platform-Tools
,Android SDK Tools
和Android Support Library
勾选
NDK
,确保版本在 r16 及以上。记住窗口上方所示的 Android SDK Location 指示的目录,稍后我们需要在 Cocos Creator 里填写这个 SDK 所在位置。
点击
OK
,根据提示完成安装。Cocos2d-x 自带的编译工具 Cocos Console 需要以下运行环境:
注意:如果没有Android Support Library
那么用最后一个就可以出来Android Support Repository 就可以了
推荐几个镜像服务器:
http://1.mirrors.neusoft.edu.cn //东软信息学院,端口:80
http://2.ubuntu.buct.edu.cn/ubuntu.buct.cn //北京化工大学,端口:80
http://3.mirrors.opencas.cn (http://mirrors.opencas.org/mirrors.opencas.ac.cn) //中国科学院开源协会
http://4.sdk.gdgshanghai.com 端口:8000 //上海GDG镜像服务器
http://5.mirrors.dormforce.net //(栋力无限)电子科技大学,端口:80
最终效果
安装ios 需要的Xcode
在这里需要配置以下两个路径:
- NDK 路径,选择
Android SDK Location
路径下的ndk-bundle
文件夹(NDK 是其根目录),不需要编译 Android 平台的话这里可以跳过。 - Android SDK 路径,选择刚才在 SDK Manager 中记下的
Android SDK Location
路径(Android SDK 的目录下应该包含 build-tools、platforms 等文件夹),不需要编译 Android 平台的话这里可以跳过。
配置完成后点击 保存 按钮,保存并关闭窗口。
注意:这里的配置会在编译 原生工程 的时候生效。如果没有生效(一些 Mac 机器有可能出现这个情况),可能需要您尝试到 系统环境变量 设置这些值:
COCOS_CONSOLE_ROOT
,NDK_ROOT
,ANDROID_SDK_ROOT
。- NDK 路径,选择
如果遇到
NDK_ROOT not defined. Please define NDK_ROOT in your environment
这个错误就是环境变量的问题:
问题原因:使用了
zsh + iTerm2
的配置,所以它默认启动时执行的脚本文件是~/.zshrc
文件解决办法:参考 简书-DayBreakL
vim ~/.zshrc
//打开配置文件.zshrc
source ~/.bash_profile;
//在.zshrc
文件末尾加上这句话,保存退出
source ~/.bash_profile;
//再终端中执行一次这个命令
新建项目
- 我们大家Cocos Creator新建一个项目,我这里叫 mynativedemo
- 等待项目生成
- 我们项目生成,我们需要更改一下项目的参数设置
- 打开菜单–> 偏好设置
- 偏好设置–>原生开发环境配置
- NDK 路径,选择
Android SDK Location
路径下的ndk-bundle
文件夹(NDK 是其根目录) - Android SDK 路径,选择刚才在 SDK Manager 中记下的
Android SDK Location
路径(Android SDK 的目录下应该包含 build-tools、platforms 等文件夹) - 默认
/Users/smile/Library/Android/sdk/ndk-bundle
(此处Android Studio 4.1后有改动) /Users/smile/Library/Android/sdk/ndk/21.3.6528147
- 默认
/Users/smile/Library/Android/sdk
解决办法 NDK 路径不对,重新配置正确的路径 应修改为1
2
3NDK is missing a “platforms” directory.
If you are using NDK, verify the ndk.dir is set to a valid NDK directory. It is currently set to C:\DJZHAO\Workspace\Android\Sdk\ndk-bundle.
If you are not using NDK, unset the NDK variable from ANDROID_NDK_HOME or local.properties to remove this warning./Users/smile/Library/Android/sdk/ndk/21.3.6528147
其中21.3.6528147
是自己对应下载的NDK下载ADK 2020-11-24 更新 –结束 - NDK 路径,选择
- 偏好设置–>预览运行 修改 我这里写 750 X 1334 竖屏
- 打开 项目–>项目设置
- 项目设置–>项目预览 设置分辨率、 适配宽度
安卓平台(apk)
- 选择 项目–>构建发布
设置需要的选项
Portrait —> 这个是竖屏展示;
Upside Down –> 这个是手机竖屏,但是你的手机需要倒过来;
Landscape Left –> 这个是横屏,屏幕在home键左边;(常用的)
Landscape Right –> 这个也是横屏,屏幕在home右边。
附加 Android 的 API Levels对应表 大家可以根据这个表 判断自己要兼容的版本
Android 的 API Levels对应表
名称 | 版本号 | 发行日期 | API等级 |
---|---|---|---|
Android 11 | 11 | 2020-09-08 | 30 |
Android 10 | 10 | 2019-09-03 | 29 |
Pie | 9 | 2018-08-06 | 28 |
Oreo | 8.0 – 8.1 | 2017-08-21 | 26 – 27 |
Nougat | 7.0 – 7.1.2 | 2016-08-22 | 24 – 25 |
Marshmallow | 6.0 – 6.0.1 | 2015-10-05 | 23 |
Lollipop | 5.0 – 5.1.1 | 2014-11-12 | 21 – 22 |
KitKat | 4.4 – 4.4.4 | 2013-10-31 | 19 – 20 |
Jelly Bean | 4.1 – 4.3.1 | 2012-07-09 | 16 – 18 |
Ice Cream Sandwich | 4.0 – 4.0.4 | 2011-10-18 | 14 – 15 |
Honeycomb | 3.0 – 3.2.6 | 2011-02-22 | 11 – 13 |
Gingerbread | 2.3 – 2.3.7 | 2010-12-06 | 9 – 10 |
Froyo | 2.2 – 2.2.3 | 2010-05-20 | 8 |
Eclair | 2.0 – 2.1 | 2009-10-26 | 5 – 7 |
Donut | 1.6 | 2009-09-15 | 4 |
Cupcake | 1.5 | 2009-04-27 | 3 |
1.1 | 1.1 | 2009-02-09 | 2 |
1.0 | 1.0 | 2008-09-23 | 1 |
- 等待发布成功
控制台没有输出错误log
1 | Start building assets |
- 此时我们的项目已经生成 在 .build 文件夹下
- 修改我们的项目 自定义部分
- 然后点击 编译按钮
- 等待项目完成
1 | Skipping task ':hello_world:assembleRelease' as it has no actions. |
路径 build/jsb-link/publish/android
下 生成我们的APK文件
- 点击安装 运行效果
关于返回键不能正常关掉游戏的问题,此处先不谈这些,只讨论如何正确发布,这个问题,后面再说如何解决
ios 平台(ipad)
准备工作
- 需要正确安装的Xcode
- 然后需要安装开发者证书
- 需要再证书添加调试设备者账号ID
开始构建设置
- 选择 项目–>构建发布
设置需要的选项
成功构建后
1 | Checked Python Version [2.7.16] |
找到 构建目录.build 目录下面的 jsb-link–>frameworks–>runtime-src–>proj.ios_mac–>hello_world.xcodeproj 使用 Xcode 打开
修改我们项目的配置
- 修改秘钥
修改后
修改我们调试设备 Build Settings
- 连接我们的设备 然后点击运行按钮等待
- 编译结束
OK 调试结束
导出我们的ipad 文件
选择 Achieve
等待编译结束
结束后 会主动弹出一个窗口 或者我们自己打开 Window–> Organizer 打开窗口
选择 Development 点击 Next 然后 继续 Next
然后选择 Profile 点击 Next
最后选择 导出 export 我们的项目
选择导出目录
最后 打开已经生成 ipa文件
备注 导出的项目 目录 /Users/smile/Library/Developer/Xcode/Archives
点击小箭头 可以打开
使用iTools 安装 ipa 文件
- 下载 iTools 进入官网
- 安装iTools
- 打开iTools软件
安装我们生成的ipa 文件
安装成功
打开运行成功
本地 模拟器删除缓存
删除:/Applications/CocosCreator.app/Contents/Resources/cocos2d-x/simulator/mac/Simulator.app/Contents/Resources/jsb.sqlite
这个文件即可
1 | /Applications/CocosCreator.app/Contents/Resources/cocos2d-x/simulator/mac/Simulator.app/Contents/Resources/jsb.sqlite |
注意:删除 整个 resources 文件夹 会导致运行不起来
关于安卓手机如何监听返回键
1 | cc.systemEvent.on(cc.SystemEvent.EventType.KEY_DOWN, this.onKeyDown, this); |
2021-09-24 更新
最新版本 使用 Cocos Creator 3.3.1 版本 安卓版本 Target API Level 为 30 情况下 返回键已经无效 可以使用一个迂回的方案解决
AppActivity.java
1 |
|
原文链接:https://blog.csdn.net/lebsharing/article/details/110004131
JavaScript 端 写对应处理即可
1 | onBackPressed() { |
其他相关问题 比如 Editbox 等问题 :
1 |
|
思路:就是自己把信息传到 Javascript 那边,然后处理对应的动作。
总结
打包Native安装包,应该了解安卓环境或者Xcode环境,熟悉项目目录结构文件配置,能更轻松顺利的解决遇到的问题。