CocosCreator 3.5.1项目 打包原生IOS 流程记录
环境
MacBook pro 2016
MacOs Big Sur 11.6
cocos Creator 3.5.1
xcode 13.2
iPhone SE(2代) iOS14.0
参考文献
1 mac 安装 XCode
使用xcode自动管理 证书(Signing Certificate) + 应用(Bundle Identifier) + 设备 (Device) + 描述文件 (Provisioning Profile) .这里的前置条件是使用开发机正确登录和授权App开发者账号。
使用xcode 登陆App开发者账号。找个空项目完成上述证书管理。
2 使用IOS平台 构建 cocos项目
使用mac已经完成认证的开发者证书(部分配置在xcode工程可以再次修改)
3 编译 (这里会提示 自动安装一个 xcode tools的工具 , 前提条件需要正确安装xcode)
4 找到 生成的ios工程 ,认知cocos项目生成目录和文件
根据creator3.0的官方官方文档说明 构建生成内容会保存在 项目目录下的2个位置
1)项目/build/ios/ 这个目录下的内容每次从creator项目build都会删除和重新生成
- data:存放项目资源
proj
:存放当前构建的原生平台工程,可用于对应平台的 IDE 执行编译任务,详情请参考下文介绍cocos.compile.config.json
:本次构建的编译选项配-
2)项目/build/native/engnie/ios/
- 这里是二次开发xcode工程的主要目录
5 修改xcode项目 以便二次开发。
确认好第1步相关证书和Bundle Identifier 配置后。尝试build项目。确认第一阶段 creator打包-》xocde项目运行正常。
对xcode项目目录关系进行重新整理。因为xocde项目文件 xcodepro影响项目重要的配置和build信息。不能被creator每次build污染。
所以做以下操作进行调整
1)把 4.1 提及的 proj目录复制一份出来。重新打开项目。这时项目中的默认相对路径 $(SRCROOT) 仍然指向 4.2提及的 native/engine/ios/
2)删除项目结构Resources,并重新从4.1提及的目录位置 拖动js打包生成的游戏资源文件(以后每次creator内的游戏内容修改 build出的变更内容都只在这几个目录和文件中)
拖入时记得勾选 引用
完成后目标文件和目录是蓝色
3) 再次build项目。检查各资源脚本的依赖关系是否正常。
5 精简生成项目 重复使用libcocos2d.a
精简项目Target,只保留游戏target。 移除其他,主要是libcocos2d。避免每次都重新编译cocos2d静态库。
找到之前编译生成的libcocos2d.a静态库。引入依赖关系。
截图中包含了后续二次开发引入的SDK内容。只关注红框部分即可
注意buildSetting相关设置
如果是真机调试 Architetures 选项 any iOS SDK 选择arm64. 项目中使用到的所有静态库 都应该支持 arm64.
Build Active Architetures Only 中 Debug选项改为YES能加快调试运行build速度。
Other Linker Flags 选项中 加入 -ObjC 。对其他已有内容不要轻易更改
至此。Creator3.5 打包到原生iOS环境,通过xcode运行到真机调试的项目构建全部完成。
后续接入SDK等二次开发 主要在xcode项目中 ,4.2)的native/engine/ios/目录下完成。不会受到每次creator Build污染。而每次creator生成的游戏资源文件,也会通过引用方式更新到xcode项目中。无需额外的改动和配置,xcode工程可以直接Build出Archives