2011-06-01 96 views
17

我有一個基於我們在不同iOS項目中使用的框架項目構建的iOS項目。該框架作爲xcode項目包含在應用程序項目中。應用程序項目依賴於框架的靜態庫構建目標。 (類似於像大多數開源庫three20)更改靜態庫的源代碼需要清理並在xcode 4中編譯

問題是,如果我改變框架源代碼中的東西,當我建立&運行應用程序項目時,靜態庫不會重建。

做一個乾淨的,然後構建&運行所做的更改編譯正確。每次我在框架中改變某些東西時重建都不是很好的解決方法,原因很明顯。

是否有一個設置,我必須更改,以便xcode正確地將我的框架標識爲髒並相應地生成它?

我使用的Xcode 4.0.2

+0

有同樣的問題。如果我更新庫的來源,需要一個乾淨的版本。你解決了嗎?謝謝。 – 2011-06-17 08:16:28

回答

22

這是xcode 4.0.2中的一個錯誤(可能會在將來的版本中修復)。從https://devforums.apple.com/thread/91711?start=25&tstart=0:項目

  1. 設置靜態庫, 下框架,以:相對於 構建產品
  2. 關閉了XCode
  3. 編輯project.pbxproj和刪除靜態庫,這樣的所有的路徑組件只有文件名保留,像這樣(重要部分是「path = libLibrary.a」)

    A74F787413566130000D0AFC/* libLibrary.a */= {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libLibrary.a; sourceTree = BUILT_PRODUCTS_DIR; };

+0

工作完美,謝謝 – jimj 2012-06-07 21:13:16

+0

我不能相信這個問題2年後仍然存在。 – eladleb 2013-07-16 15:07:59

+2

我不能相信這個問題依然存在X年後 – yeesterbunny 2014-03-07 23:16:29

0

你可能丟失你的目標與靜態庫之間的依賴關係。

爲了添加依賴:

  1. 拖/你的項目

    1B下降靜態庫的Xcode項目。將庫添加到您的應用程序框架(我瞭解它已經存在);

  2. 選擇你的目標;顯示信息窗格;

  3. 去依賴關係,點擊「+」,然後選擇你的靜態庫。

這些說明適用的Xcode 3.2.x中,但我希望在此基礎上,你可以很容易地找到你的出路這在Xcode 4

編輯: 對於Xcode的4,檢查thisthis(解決問題的已編輯部分)。

+0

這些步驟在xcode 4中有點不同。但我已經這樣做了,否則我的項目將永遠不會發生錯誤。問題不在於我在構建過程中遇到錯誤,而是在執行常規構建時無法識別庫項目中的更改。只有一個清潔和建設將工作。 – sliver 2011-06-03 06:46:12

+0

如果你設置正確的依賴,那麼我不知道該怎麼想。請記住,只有上述第1步才能正確構建。添加用於鏈接的庫是不同的,即將其添加爲依賴項。 – sergio 2011-06-03 07:06:12

0

添加腳本一步,在此設置你的main.m文件的修改

#Force dependencies' relink 
touch MyProject/main.m