最近由于项目需要发布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中赋值符号前后不能有空格
参考资料:
ps:分享一个好用的软件HoRNDIS:mac系统中共享android共享网络,下载地址