2009-01-05 41 views
4

我有兩個項目,一個Cocoa iPhone應用程序和它使用的靜態庫。iPhone設備上的靜態庫

我已經在iPhone模擬器上成功測試過它,但是當我嘗試將它部署到我的iPhone設備時,我得到(符號未找到)鏈接錯誤。

如果我刪除了庫的依賴性,項目建立/運行良好。

我確保所有的構建設置都設置爲iPhoneOS而不是模擬器。

我確定它的東西很簡單,但有誰遇到類似的問題從iPhone模擬器移動到設備?我設法創建了新的項目(一個用於應用程序,一個用於靜態庫),併成功讓它們在iPhone或模擬器上運行。但是我有一個很奇怪的問題......對於每個特定的項目,我都無法使它與設備和模擬器一起工作......我已經仔細檢查了構建設置,確保正在引用的庫適用於匹配構建設置(我相信),但我無法解決這些鏈接錯誤。

我認爲我必須做的事情非常錯誤......所有的蘋果文檔都說'它的超級簡單 - 一次點擊',但是這給我帶來了很多問題。

這可能與xCode構建設置有關,但似乎無法理解爲什麼選擇不同的構建平臺和重建庫不起作用。

回答

7

查看my answer to a similar question以獲得可能有所幫助的文章鏈接。有一篇有趣的文章link

+0

謝謝,我設法使用那篇文章得到一個新的測試項目,雖然我似乎仍然有靜態庫在單獨的xcode項目中創建時的問題克拉。 – Akusete 2009-01-05 23:59:33

1

最終我意識到問題所在。

我將設備目標從模擬器更改爲iPhone設備,然後刪除舊的(模擬器)靜態庫並附加新(設備)庫。

除了庫搜索路徑(在構建配置中),所有的罰款仍然有模擬器目錄首先列出,我認爲它會被找到並使用,而不是設備。

這也解釋了爲什麼我能夠使每個設置都與新項目一起工作,但只是在設置之間發生了變化。

它是一個簡單而愚蠢的問題,但一個讓我有些悲傷和時間。我仍然不知道如何正確設置目標相關的構建設置,但至少如果有人遇到類似的問題需要注意。

1

我創建瞭如何創建和使用靜態庫一個完整的教程,這種教程包括也由蘋果通知的方法,也許人們會發現它有用:

http://www.sodeso.nl/?p=822

優勢這種方法是它根據你的項目設置自動重新編譯庫(所以沒有設備/模擬器構建的問題)

+0

鏈接已死 – srgtuszy 2011-12-31 11:41:01