coocs2dx-lua在XCode开发时lua和资源热更新问题解决办法

本文介绍了在使用cocos2dx-lua开发iOS应用时遇到的lua和资源文件修改后需clean再build才能生效的问题。原因是XCode视lua为文本资源,仅做增量拷贝。解决方法是通过添加Run Script Build Phase,在编译时自动拷贝更新的资源。详细步骤包括在XCode的Build Phases中添加脚本,并提供相关参考资料。

最近由于项目需要发布ios版,所以我转到了mac环境下发布我们的项目。

因为cocos2dx跨平台,所以发布起来倒不是很蛋疼。在开发的过程中发现了一个奇怪的问题,就是每次修改一个lua文件或者资源文件,XCode都必须clean一下再build一下才会生效,然后每次编译的时间都很长,这是比较难以接受的。

于是在网上查了一下发现已经有人提出并解决个问题,之所以会每次都要clean再build的原因是:对于Xcode来说lua本身不是代码而是文本资源,而对于XCode的build 程序来说,每次build资源都是只增式拷贝,所以每次修改资源的时候对于XCode来说都不会被拷贝到编译程序中的。

解决办法是当XCode在build的时候手动拷贝指定资源到编译程序中去。整理下前人方法步骤如下:

1.XCode->项目工程->TARGETS(你的目标项目)->Build Phase

2.Editor -Add  Build Phase -Add Run Script Build Phase

3.将下面的shell代码修改下资源目录路径,然后复制粘贴到Run Script下。

#$TARGET_BUILD_DIR:获取工程生成路径,在Build Settings->Build locations中可以修改,一般为/Users/用户名/Library/Developer/Xcode/DerivedData/项目名-cjzvgkxolvdmwncjlzdgoyapfvrp/Build/Products/Debug-iphonesimulator
#$CONTENTS_FOLDER_PATH:项目生成文件,后缀为.app(需要设置显示文件拓展名),一般为工程的TARGETS中生成相应target名.app
#_TARGET_BUILD_CONTENTS_PATH:获取生成文件路径
LuaScripr_Path="../../../src"
Resource_Path="../../../res"
_TARGET_BUILD_CONTENTS_PATH=$TARGET_BUILD_DIR/$CONTENTS_FOLDER_PATH                       
#clean LuaScripr Directory
rm -fr $_TARGET_BUILD_CONTENTS_PATH/src/* 
rm -fr $_TARGET_BUILD_CONTENTS_PATH/src
#copy LuaScripr Directory
mkdir -p $_TARGET_BUILD_CONTENTS_PATH/src/
cp -RLp $PWD/LuaScripr_Path/*  $_TARGET_BUILD_CONTENTS_PATH/src/ 
#clean Resource Directory
rm -fr $_TARGET_BUILD_CONTENTS_PATH/res/* 
rm -fr $_TARGET_BUILD_CONTENTS_PATH/res                
#copy Resource Directory
mkdir -p $_TARGET_BUILD_CONTENTS_PATH/res/    
cp -RLp  $PWD/Resource_Path/* $_TARGET_BUILD_CONTENTS_PATH/res/

或者:

_TARGET_BUILD_CONTENTS_PATH=$TARGET_BUILD_DIR/$CONTENTS_FOLDER_PATH  
echo PWD:$PWD

function copyResource()
{
    #clean LuaScripr and Resource Directory
    rm -fr $_TARGET_BUILD_CONTENTS_PATH/$1/*
    mkdir -p $_TARGET_BUILD_CONTENTS_PATH/$1/
                                                                                                                                     
    mkdir -p $_TARGET_BUILD_CONTENTS_PATH/$1/
    cp -RLp  $PWD/$1/* $_TARGET_BUILD_CONTENTS_PATH/$1/ 
    echo copyResource:$1 completed!
}

 copyResource src;
 copyResource res;


注意:shall中赋值符号前后不能有空格


参考资料:

XCODE调试时强制更新模拟器上的资源文件

确保 Xcode 每次 Build 时都自动更新资源

XCode ios iphone 变态的资源管理


ps:分享一个好用的软件HoRNDIS:mac系统中共享android共享网络,下载地址



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值