2011-05-13 134 views
17

我知道,這已被問了幾次,但主要是針對Xcode 3.x.對於iPad的,我有兩個項目都生活在一個公共工作區Xcode 4:如何爲項目添加靜態庫目標依賴項

  • 富,一個基於視圖的應用程序和
  • Foolib,靜態可可觸摸庫

前者取決於後者。我似乎無法解決如何添加該依賴關係。這不是很好的文檔中解釋說,所以我嘗試了以下內容:

  1. 點擊在導航區域左側的富項目,
  2. 選擇構建階段了頂部和擴大目標相關部分
  3. 單擊加號按鈕,但結果列表爲空。

我也嘗試將.a文件拖放到該部分,但很少成功。此外,文檔指出

如果一個項目的工作空間中的構建產物是依賴於在工作區中的另一個項目的構建產物(例如,如果一個項目建立由其他項目中使用的庫), Xcode發現了這種隱式的依賴關係,並以正確的順序構建。

我想知道Xcode如何發現這些依賴關係。蘋果是否說我根本不需要添加這個目標依賴項?但是,那麼Xcode會如何發現其中一個正在使用另一個呢?

最後但並非最不重要的是,我需要以某種方式將Foolib中的.h文件傳送到Foo。推薦的方式是什麼?顯然,我不想複製它們。使用框架的頭文件包含在內,但人們通常在處理自己並行開發的靜態庫時會做什麼。

在正確的方向微調將不勝感激。謝謝。

回答

13

一般來說,Xcode 4似乎自動發現編輯方案表暗示的依賴關係。其他開發人員提到,依賴不會自動發現,並且需要明確列出它們:

因此,編輯計劃 - >構建 - >從工作空間添加目標。

就靜態庫頭文件而言,Xcode 4似乎有問題,至少在代碼完成和語法高亮顯示的時候。唯一的方法是,我可以正常使用靜態庫中的類將相關頭文件的副本拖到主項目中的組文件夾中。請注意,您應該取消選中添加到目標...這會照顧語法突出顯示和代碼完成。剩下的應該通過給它正確的標題搜索路徑來處理。這將是用戶標題搜索路徑= $(BUILT_PRODUCTS_DIR) - 取決於您如何設置您的位置偏好設置。

參見:this link

+1

謝謝你。因此,將Target添加到Scheme中會使Xcode在Foo之前​​構建Foolib,對吧?但似乎我也必須將libFoolib.a以某種方式放入我的Foo項目中,否則,我會收到鏈接器錯誤,對不對?目前我甚至無法讓Foolib建立;那麼它會成功構建,但產品組中的libFoolib.a保持紅色。任何想法發生了什麼? – McKrassy 2011-05-13 05:48:39

+0

根據設備或仿真器上的運行情況,我遇到了架構AMR或i386的問題。也許這是你的問題(當你在一個架構上編譯靜態庫時,使用這個庫的項目試圖鏈接一個具有不同架構的庫......) – 2011-08-11 08:31:39

+0

@MPenades yup)你實際上需要閱讀** Universal Library **看看這個嘖嘖。 http://www.raywenderlich.com/41377/creating-a-static-library-in-ios-tutorial – Resty 2014-08-26 08:30:39

相關問題