环境

MacBook pro 2016
MacOs Big Sur 11.6

cocos Creator 3.5.1

xcode 13.2

iPhone SE(2代) iOS14.0

 

参考文献 

https://docs.cocos.com/creator/3.0/manual/zh/editor/publish/native-options.html#ios-%E5%B9%B3%E5%8F%B0%E6%9E%84%E5%BB%BA%E9%80%89%E9%A1%B9

 

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

 

版权声明:本文为虚空中的天行者原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/xiloweiEVE/p/16525560.html