2013-02-11 78 views
0

我有幾個共享許多相同的類和自定義視圖/視圖控制器的項目,所以我創建了一個自定義靜態庫,其中包含這些常用類,以便直接在我的客戶端項目中使用。Xcode無法識別我的自定義庫中的ViewContoller

這是我所採取的步驟:

  1. 我創建和編譯靜態庫,複製產生的u和公共.h文件放到一個文件夾我的桌面(MYLIB)上。

  2. 我將myLib文件夾拖放到客戶端項目中。我通過引用複製,並沒有複製我的客戶端項目下的物理文件。如預期的那樣,目標的構建階段「與庫鏈接二進制文件」階段自動包含.a文件。

  3. 我引用了View Contollers使用客戶端項目的故事板。這些類按預期自動完成,所以Xcode認識到它們的存在。

  4. 我在我的客戶端項目構建設置和目標構建設置下設置了-ObjC和-all_load鏈接器標誌。

  5. 我清理併成功構建了客戶端項目。

  6. 我運行了客戶端項目,但自定義視圖未加載,引用了「Interface Builder文件中的未知類[myViewController]」。

第6步是我現在面臨的問題。以下是一些可能有用的觀察結果:

  • 在File Inspector中,標頭的目標成員資格爲空;客戶端項目列在「目標成員」標題下,但該複選框已禁用且未選中。但是,myLib.a目標成員資格被選中。

  • 我試圖在客戶端項目中創建myViewController(clientViewController)的子類,並引用此類。當我建立了客戶端項目,我得到一個錯誤:當你建立

    "warning: directory not found for option '-L/Users/[me]/Desktop/Projects/[clientProject]/[myLib]; Undefined symbols for architecture i386: [clientViewController] in [clientViewController.o]."

回答

0

模擬器選項,看起來像你錯過了。只用這個。這是做一個通用框架一樣容易使普通庫: iOS-Universal-Framework

還閱讀了這篇文章:How to create universal static libraries on Xcode 4: the traditional way

+0

我嘗試使用模擬器計劃建立我的圖書館,但由於某些原因,我的頭文件沒」當我建立圖書館時不要複製。我發現他們只會在我選擇「iOS設備」時進行復制,因此我根據該方案進行構建。也許這跟它有關係? 無論如何,我會嘗試這個通用框架的東西,也許它會奇蹟般地解決我的問題,我真的不明白。好像我需要知道很多關於鏈接器和處理器體系結構的細節,只是爲了在項目之間構建一些共享類... – user2060086 2013-02-11 03:38:07

+0

您是否確定爲Universal創建?令人困惑的是,閱讀這篇文章:http://blog.boreal-kiss.net/2011/03/15/how-to-create-universal-static-libraries-on-xcode-4/ – 2013-02-11 03:40:37

相關問題