cocos项目iOS端的二次开发问题


通过cocoscreator bulid生成ios端的工程,然后在这个工程上做一些功能扩展的开发。但因为cocos现在是通过cmake来管理的工程文件的引用,一旦游戏端的内容发生变化,在ios工程文件执行 cmake . ,重新配置引入文件,但与此同时工程的其他配置会恢复到默认配置,二次开发的内容也不见了。有尝试修改相关的CMakeList 文件的set_target_properties,但是涉及到的bulid setting配置有点多,不太好处理。请问有没有更好的游戏资源更新替换的方法

build一次就可以 然后把工程考到别的地方 别放到build目录下 第二次build用引擎提供的build完成回调或者直接命令行build 结束的时候把assets和src文件夹用命令行代码拷贝到你那个工程理就行了

bulid出来的工程,原生的相关文件是独立在native文件夹里面。如果像你说的操作,是不是bulid出来的工程只是一个配置好的模版工程,删除掉原有的原生文件和游戏资源的引用配置,然后重新copy引入到工程里面。如果游戏内容有修改,只需要替换assets和src文件夹

第一次build的模板选为default 然后拷贝完成工程就行 之后改逻辑的话改的都是assets和src

请问你现在用的是cocoscreator3+吗。是不是目前的版本有改了资源管理的方式。因为我尝试了像你说的那样操作,不管是引用,还是直接复制进工程,都会报找不到资源的错误

2.4.x 新的3.x还没用过 我试下3.x


没问题啊 第一次构建完成把那个ios文件夹改个别的名字 第二次构建只拷贝assets那个文件夹就行了 后面改配置接sdk都只改动那个重命名的文件夹

我修改完文件名之后运行直接报错了

你引用的还是ios下面的 看下这个下面的资源 换成对的就可以了

image


你现在运行正常会不会是因为重新又bulid出一个ios,而temp_project里面的new Project.xcodeproj 的 bulid parse 的 copy files 又重新引用了新bulid出来ios的asset文件。如果是这样,temp_project的assets资源更换好像不能起到作用

是的 你说的对 因为我又构建了一次 所以没报错 又看了下 和2.4有个区别 多了native/engine这个 我研究下 好了的话发给你

找到一种方法 不过还存在一个问题 先发给你

  1. 生成的是build/ios/这样的目录 比如你要改成build/ios_xxx/
  2. 把ios_xxx工程用vscode打开 全局搜索build/ios/ 替换为build/ios_xxx/
  3. 这时候会找不到assets、jsb-adapter、main.js、src 从新引用下就可以了
  4. 这时候应该不会报错了 但是会缺少BundleId 填上 选好证书就可以正常运行了
    PS: 但是存在一个问题 再次build 那个BundleId 会变为空 这个还没来的急看
    可以先试试 如果还有别的报错 直接按照报错找就可以 基本都是因为路径的问题

这个方法有个问题,就是当游戏资源发生变化的时候,变化的资源没有办法参与编译, 因为目前是使用copy files 来编译资源的,

没办法参与编译是指改了UI但是build没效果么?