2013-05-01 46 views
2

我正在編寫一個具有嵌入式幫助程序的應用程序。我配置了Xcode行爲,以便每次構建應用程序時都會增加這兩個應用的捆綁版本。問題是,我發現除非每次清理我的構建文件夾,我的應用程序的N版本獲得幫助器的版本N - 1。這不僅僅是版本號不匹配 - 幫助程序的二進制文件不包含我剛剛做出的更改。複製文件階段正在獲取最新版本的產品

我的基本設置,像這樣:

"Typesetter Toolkit Helper" is included in a Target Dependencies phase at the top, and "Typesetter Toolkit Helper.app" is listed in a Copy Files phase at the bottom, being copied to "Contents/Helpers" in destination "Wrapper".

要嘗試模擬清理build文件夾中更有針對性的方式,我寫了一個運行腳本階段之前只是運行一個很小的Perl腳本複製文件階段添加幫手,但它沒有效果:

use strict; 
use warnings; 

use File::Path qw(remove_tree); 

my $dir = "$ENV{TARGET_BUILD_DIR}/$ENV{WRAPPER_NAME}/Contents/Helpers"; 
if(-e $dir) { 
    remove_tree $dir or die "Can't rmtree $dir: $!"; 
} 

有誰知道發生了什麼事?我如何讓我的助手和主機保持同步?

回答

3

您的腳本在複製階段之前運行,所以我認爲您需要BUILD_DIR而不是TARGET_BUILD_DIR。

BUILD_DIR = /Users/gdunham/Library/Developer/Xcode/DerivedData/DC_Wire_Sizer-csvpfesmgmorlhendyncafecwzam/Build/Products 
TARGET_BUILD_DIR = /Users/gdunham/Library/Developer/Xcode/DerivedData/DC_Wire_Sizer-csvpfesmgmorlhendyncafecwzam/Build/Products/Debug-iphonesimulator 

提示:我一般選中「在構建日誌顯示環境變量」爲我的運行腳本生成階段。您還可以從腳本打印並通過展開構建階段腳本來查看輸出。在日誌導航器中選擇您的運行腳本,然後在Xcode的菜單中選擇「編輯器」 - >「展開選定腳本」。

+0

這似乎已經做了竅門 - 我沒有意識到它正在其他地方建造,然後移動到最終位置。謝謝! – 2013-05-01 20:37:22