2011-07-20 62 views
6

我添加資源(大量的.png和其他)到我的iPhone項目中拖動文件夾到它並選擇「爲所有添加的文件夾創建文件夾引用」,以保留文件夾結構。 它們已正確添加到「複製資源」構建階段。如何強制XCode 4始終更新資源?

問題是,我浪費了很多時間,因爲當我創建/刪除/更新新資源時,它經常會忽略已更改的文件並堅持使用舊版本。

看起來像它試圖只更新資源時,它們被更改,但它無法看到更改。 在模擬器中,可以手動更新.app中的文件,但是在設備上工作時,它會抱怨某些資源的代碼已經改變!

我發現強迫它更新所有東西的唯一可靠方法是刪除構建產品,應用程序和設備應用程序,直到它最終決定忘記舊版本,但這樣做是爲了每次資源變化都浪費了我瘋狂的時間(遊戲內容更改頻繁)。

因此,簡而言之:我如何強制XCode禁用「版本控制」並且只是取消所有資源並每次都複製它們?

謝謝!

編輯:我發現,刪除內置的「構建」文件夾中的文件夾名爲.app總是迫使XCode中添加新的文件...

我仍然有它保持了舊文件,當我刪除不知道該文件夾,但這是更好的,因爲它只按預期複製新資源。 所以像

rm -rf "$CODESIGNING_FOLDER_PATH" 

一個簡單的腳本是否在每個版本中刪除該文件夾的伎倆......

不幸的是,很明顯的XCode運行代碼簽名前的構建階段選項卡中的任何執行,所以更新舊的目標,該腳本刪除舊的目標,然後崩潰抱怨沒有找到代碼簽名資源。

所以...我必須堅持手動刪除文件,或者有沒有辦法在代碼簽名之前運行腳本?

回答

0

在更新資源之後以及構建更新的應用程序之前,您可能需要使用產品菜單下的清潔選項(或按住Shift鍵並按下K鍵)。我注意到,當我更新資源或用戶定義的構建設置時,這幫助了我。

+4

不幸的是,這正是我想要避免的 - 這樣做也會刪除所有已編譯的代碼,並強制完成重建... 現在我正在使用Bullet,重建需要很多時間。 我想要的只是清理資源,可能會自動! – Tom89

1

好吧,我終於找到了一個(有點醜)解決這個問題。

在你的項目中,創建兩個聚合目標,比如Clean Build and Cleaner。

  • 在清潔劑,添加具有rm -rf "$CODESIGNING_FOLDER_PATH"「運行腳本」階段,將在build文件夾中清除臨時應用。

  • 在Clean Build中,添加第一個Cleaner,然後將您的正常應用程序目標添加到Target Dependencies。

  • 從運行列表中選擇清理生成,然後編輯計劃並將您的應用目標設置爲可執行文件。命中運行,它應該工作:)
5

我也有這樣的問題,關於文件沒有得到更新時,我建立我的項目(PhoneGap項目,但這應該不重要)。

我所做的,就是將它添加到我的項目的構建階段:

find "${PROJECT_DIR}/www/." -exec touch -cm {} \; 

,將確保該文件被拿起時的XCode生成項目的更新。當然,您應該根據需要修改命令 - 我的需求是更新構建中的www文件夾,因爲我正在使用Visual Studio編輯我的文件,並在虛擬機中運行。

+0

我正在編輯鏈接文件夾中的着色器,並且此解決方案對我無效。 – Justin