2011-06-24 53 views
4

靜態庫 - 乾淨的圖書館中,我有一個Xcode 4的項目,有我的iOS應用程序和靜態庫(這是一個單獨的項目,但包含在應用程序的項目,還是和我在一起? )。的Xcode 4的項目瓦特/應用及在構建

好了,所以只要我在運行應用程序時進行了更改靜態庫,才能看到結果,我必須做一個乾淨的,然後運行。有沒有辦法讓它在構建應用程序的目標之前自動清理靜態庫?

+0

請參閱我在http://stackoverflow.com/questions/1456806/xcode-dependencies-across-different-build-directories/10819487#10819487答案。它可以幫助解決重建問題而無需定位iOS設備技巧。 – Orange

回答

2

是靜態庫的.a文件名顏色紅色在項目結構中?

步驟一:讓你的項目的備份,如果你沒有一個已經:)

步驟二:嘗試我工作:

從刪除靜態庫紅。一個節點項目結構。

刪除這些節點將打破您在項目設置中建立的應用程序和庫之間的鏈接(在「構建階段>鏈接庫中的二進制文件」下),但不用擔心 - 您可以將它們設置爲備份後來。

現在經過所有靜態庫項目一個接一個,並分別構建它們,瞄準「iOS設備」它的目標iOS設備是很重要的(而不是模擬器) - 這是一個神奇的一步。

一旦所有的靜態庫已經爲iOS設備構建完成,然後返回到您的項目設置並重新建立應用程序和您的Lib之間的鏈接(例如,通過轉到「Build Phases> Link Binary with Libraries」應用程序的項目設置)。

因爲我們建立了靜態庫中定位iOS設備,新出現的.a節點應該出現在黑色的項目結構。

更改到靜態庫的源代碼現在應該已經生成(或運行)過程中爲您的主應用程序被拾起,即使你沒有不乾淨或修改的主要應用。如果你和我一樣,而且你的大部分開發都在一個靜態庫中,並且你很少修改應用程序項目,這是一個巨大的頭痛節省。

如果您曾經在定位「iOS設備」時運行Clean,則靜態lib節點可能會再次變紅。我不確定這是否會再次破壞。

實際上可能並不需要刪除節點/斷開鏈接來修復構建。建立針對iOS設備的每個庫可能就足夠了。但是,我不確定這一點,所以我只寫了適合我的整個過程。