2013-03-07 72 views
1

我即將爲多個客戶端自定義項目。該項目使用CocoaPods和Storyboard。由於我期望解決一些錯誤,並在一路上爲每個客戶端在UI中進行一些更改,因此我想組織這些項目,如下所示: 1.將啓動的iOS應用程序轉變爲已編譯的靜態庫(不知何故) 2 。創建新的自定義應用程序。將其鏈接到靜態庫。 3.將原始Storyboard複製到新的自定義應用程序中。iOS應用程序編譯爲靜態庫

現在在「新」故事板中,我可以根據客戶需求應用更改。 Storyboard引用中的每個ViewController作爲Custom Class都有一個在原始應用程序(現在是已編譯的靜態庫)中定義的類。這樣我總是可以替換或擴展原始類,並將新的類設置爲故事板中ViewController的自定義類。

這聽起來不錯。但我無法得到它的工作。 1.我設法從原始iOS應用程序中創建一個靜態庫,將二級目標添加到項目中作爲靜態庫。經過與標題搜索路徑,標誌和鏈接框架掙扎後,我得到它編譯(與LOT的警告) 2.我創建了一個新的項目,並鏈接靜態庫,但無法得到它編譯。

我的問題是。 1.我是否以正確的方式做這件事? 2.如果我有一個帶有相關頭文件的靜態庫,並且我創建了另一個使用前面的靜態庫。如果我想將第二個創建的庫用於新項目,是否必須將它與庫和頭文件鏈接起來?

+0

嗨,你有能力做到這一點嗎? – ekeren 2013-11-12 17:43:12

+0

我決定將我的lib作爲Pod來構建。當然,它需要大量的重複......但它確實有效。 – user1170896 2013-11-12 18:24:31

回答

0
  1. 它在理論上應該工作,雖然我個人會去創建一個靜態的框架,而不是一個靜態庫的路線,因爲該框架應更容易鏈接到,可以有不同的版本不同的架構,並在同一個包中包含標題。查看這個項目,爲Xcode添加一個Framework項目類型:https://github.com/kstenerud/iOS-Universal-Framework。 (有人真的需要讓蘋果包括框架目標類型默認)

  2. 有人可以糾正我,如果我錯了,但據我瞭解的事情:是的,你需要將兩個庫鏈接到最終執行編譯庫2對庫1不結合庫1的代碼轉換成庫2.

我們需要得到更具體的信息的編譯錯誤,以幫助您鏈接靜態庫到您的新項目。

+0

是的,當我寫下這個問題時,我有點沮喪,並且沒有深入詳細地討論錯誤。關鍵是,報告這些錯誤將是非常無用的,因爲是特定於我的代碼。基本上它總是關於沒有找到的接口(這意味着頭文件沒有找到和/或加載),即使我全部檢查了頭部搜索路徑。也許我的基於CocoaPods的項目結構給整個事情增加了更多的複雜性。 你能指點我的任何文檔詳細解釋與圖書館(靜態動態)框架等有關的世界嗎? 謝謝 – user1170896 2013-03-08 08:43:13

+0

這不是你收到的具體錯誤信息,而是錯誤的類型,這將是一個很長的路要走。它是編譯器錯誤(例如「未知函數:doStuff()」)還是鏈接器錯誤(例如「未解析符號:_doStuff」)。我沒有一個好的官方文檔頁面;我從這本書中學到了大部分內容:http://amzn.to/XvvqhD。它們可以是等價的,框架只需要較少的工作就可以使用。看到這個SO帖子,http:// stackoverflow。com/questions/6245761 /差異之間的框架和靜態庫中的xcode4和如何調用它們 – Chris 2013-03-08 16:20:17

+0

它主要是接口沒有定義的錯誤。即使連接了UIKit和CoreGraphics,我也得到CGFloat沒有定義。但是我有另外一個想法:將原始應用程序源代碼包裝到Pod中,作爲依賴項添加到所有Pod中。通過這種方式,我可以創建一個新的工作空間,並使用所有我使用的Pod和我自制的Pod。 – user1170896 2013-03-08 17:05:14