2010-09-14 70 views
3

我有一個單調乏味的任務,我需要重複每次構建iPhone項目以發送給非程序員同事:我在項目文件夾外引用的所有庫和標題都需要複製到項目文件夾或其子文件夾中,所以我可以壓縮源代碼並將其傳遞。如何自動化XCode項目變更?

我知道你可以用AppleScript自動化XCode,但是我不能在我的生活中找到任何有關可用命令的正確文檔。如果我谷歌XCode AppleScript自動化,我只是在編寫Xcode中的AppleScript應用程序的一堆點擊。

任何幫助將不勝感激!

回答

1

根據您的描述,在xcode中創建自定義目標來執行此任務會更容易。 xcode可以運行各種unix工具進行復制,壓縮等。soo ... shell腳本應該更容易。你也可以將這個目標設置爲一個依賴,如果你願意的話,所以它總是保持最新狀態(但對於常規開發有點緩慢,tbh。

是的,你可以在很多情況下使用applescript和xcode,但是對於你所描述的任務來說,這將會變得更加困難:

+0

Shell腳本適用於複製文件等,但在這種情況下,我也需要更改項目的文件引用,例如,如果項目引用../So meOtherProject/SomeFile.mm,在複製文件後需要變成SomeFile.mm。 – Simplex 2010-09-14 11:20:58

+0

啊 - 好吧,我誤解了你原來的帖子的意思。我以爲你指的是引用文件,而不是項目引用。好的 - 我們通常不會在交付中經歷所有這些繁瑣的步驟。在某些情況下,您可以在xcode項目文件本身中使用搜索和替換。如果您只是添加了搜索路徑(用於包含內容),或者使用xcode的「源代碼樹」來更改引用/搜索路徑(對於您必須編譯的文件),它會更容易。 – justin 2010-09-14 11:32:22

+0

源樹很漂亮,不知道那個。但他們並沒有解決我的問題。我可以做一個搜索+替換,只是覺得有點哈克。我知道有通過AppleScript操作xcode項目的命令(包括添加/刪除引用等),我只是找不到任何文檔。 : - /謝謝你的幫助! – Simplex 2010-09-15 11:41:18

3

這裏是一個演示,讓你開始使用,因爲你知道如何定位字典,其餘的可能很簡單,如果你喜歡使用AppleScript:

tell application "Xcode" 
    -- of course, use your project's name instead of Alias 
    set projectName to "Alias" 
    set xcProject to project projectName 

    repeat with idx from 1 to the count of (get every file reference of xcProject) 
     set fileRef to (file reference idx) of xcProject 
     get path of fileRef 
     get id of fileRef 
     get name of fileRef 
     get properties of fileRef 

     set newPath to path of fileRef 
     -- add logic and alterations here 
     set path of fileRef to newPath 
     -- ... 
    end repeat 
end tell