溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

cocos2d-x自制工具08:讓XCode運行時自動更新資源(改進版)

發(fā)布時間:2020-06-11 13:02:50 來源:網(wǎng)絡(luò) 閱讀:8366 作者:老G 欄目:游戲開發(fā)

用過XCode的人都知道,XCode有一個臭名昭著的bug——除非你修改了源代碼造成了重新編譯,否則游戲包中的資源經(jīng)常無法刷新。不管怎么運行資源都是舊的。


關(guān)于這個問題,業(yè)內(nèi)有幾位同行已經(jīng)詳細探討過了。有幾種解決方法,其中一種方法是,在運行時強制把資源刪除,這樣XCode會重新導(dǎo)入新的資源。要做到這一點就是寫一個腳本,讓這個腳本在XCode運行時自動執(zhí)行。


“我是妖怪”兄曾經(jīng)寫了一個blog,來論述如何寫這個腳本,我修改了一下,封裝成了函數(shù),這樣做新項目時很方便。(好吧,這個是改的,叫自制工具不太好,但是系列標題又不好改。。。)


_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/
#函數(shù)作用:刷新資源文件夾,解決xcode不能刷新資源文件夾的bug
#參數(shù)1:傳入要操作的文件夾
function operation_folder()
{
    rm -fr $_TARGET_BUILD_CONTENTS_PATH/$1/*
    mkdir -p $_TARGET_BUILD_CONTENTS_PATH/$1/
                                                                                                                                                         
    #判斷文件夾不為空,才進行復(fù)制,防止cp命令報錯
    DIRECTORY=$PWD/../Resources/$1/
    if [ "`ls $DIRECTORY`" != "" ]; then
     cp -RLp $DIRECTORY/* $_TARGET_BUILD_CONTENTS_PATH/$1/
     echo operation_folder:$1 completed!
    fi
}


調(diào)用的時候,在這段代碼后面接著寫,函數(shù)直接后面加參數(shù)就行,比如你的Resources下面有若干子文件夾,pic,ui,sound等。如下方式調(diào)用:

operation_folder sound;
operation_folder ttf;
operation_folder script;
operation_folder data;
operation_folder pic;
operation_folder ui;


然后把這個腳本加載到項目的Build Phases中。XCode每次run都會運行這個腳本。

cocos2d-x自制工具08:讓XCode運行時自動更新資源(改進版)



參考文獻:

確保 Xcode 每次 Build 時都自動更新資源——我是妖怪兄的原文,這篇文字的代碼就是改自這里

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

XCode ios iphone 變態(tài)的資源管理——這篇文章詳細論述了XCode資源更新的bug

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


向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI