【cocos2d-x】让XCode运行时自动更新资源【IOS】

用过XCode的人都知道,XCode有一个臭名昭著的bug——除非你修改了源代码造成了重新编译,否则游戏包中的资源经常无法刷新。不管怎么运行资源都是旧的。


关于这个问题,业内有几位同行已经详细探讨过了。有几种解决方法,其中一种方法是,在运行时强制把资源删除,这样XCode会重新导入新的资源。要做到这一点就是写一个脚本,让这个脚本在XCode运行时自动执行。


“我是妖怪”兄曾经写了一个blog,来论述如何写这个脚本,我修改了一下,封装成了函数,这样做新项目时很方便。(好吧,这个是改的,叫自制工具不太好,但是系列标题又不好改。。。)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
_TARGET_BUILD_CONTENTS_PATH=$TARGET_BUILD_DIR/$CONTENTS_FOLDER_PATH
echo   _TARGET_BUILD_CONTENTS_PATH: $_TARGET_BUILD_CONTENTS_PATH
echo   PWD: $PWD
echo   Cleaning $_TARGET_BUILD_CONTENTS_PATH/
#函数作用:刷新资源文件夹,解决xcode不能刷新资源文件夹的bug
#参数1:传入要操作的文件夹
function   operation_folder()
{
     rm   -fr $_TARGET_BUILD_CONTENTS_PATH/$1/*
     mkdir   -p $_TARGET_BUILD_CONTENTS_PATH/$1/
                                                                                                                                                          
     #判断文件夹不为空,才进行复制,防止cp命令报错
     DIRECTORY=$PWD/.. /Resources/ $1/
     if   "`ls $DIRECTORY`"   !=  ""   ];  then
      cp   -RLp $DIRECTORY/* $_TARGET_BUILD_CONTENTS_PATH/$1/
      echo   operation_folder:$1 completed!
     fi
}


调用的时候,在这段代码后面接着写,函数直接后面加参数就行,比如你的Resources下面有若干子文件夹,pic,ui,sound等。如下方式调用:

1
2
3
4
5
6
operation_folder sound;
operation_folder ttf;
operation_folder script;
operation_folder data;
operation_folder pic;
operation_folder ui;


然后把这个脚本加载到项目Target设置的Build Phases中。XCode每次run都会运行这个脚本。

wKioL1LVBl-Cgd9JAAKvUuEBCBY582.jpg



参考文献:

确保 Xcode 每次 Build 时都自动更新资源——我是妖怪兄的原文,这篇文字的代码就是改自这里

http://dualface.github.io/blog/2013/07/31/flush-res-when-build/

XCode ios iphone 变态的资源管理——这篇文章详细论述了XCode资源更新的bug

http://www.cnblogs.com/dabaopku/archive/2012/04/11/2441679.html


本文原文出自 “老G的小屋” 博客(up主略有修改)

请务必保留此出处http://goldlion.blog.51cto.com/4127613/1351616

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值