2014-11-06 58 views
12

我正嘗試使用Xcode 6提供的用於創建Cocoa Touch框架的新模板構建iOS框架(Test.framework)。 該框架具有在Podfile中指定的不同依賴關係(如AFNetworking或FacebookSDK)。我不希望依賴項被包含在框架中,我只想鏈接它們。如何使用弱鏈接的CocoaPods庫構建iOS框架

問題是,當我構建框架時,libPods.a被鏈接幷包含在內。 問:我如何鏈接到libPods.a庫,但沒有將其包含在框架中?


更多細節:

我看了一下弱鏈接: https://developer.apple.com/library/ios/documentation/MacOSX/Conceptual/BPFrameworks/Concepts/WeakLinking.html 但我沒有太多的經驗與項目設置打,所以我一個不親。

我試圖把libPods.a作爲一個「可選」但沒有改變,仍然包含依賴關係。

我試圖從在編階段的部分「鏈接二進制與圖書館」刪除libPods.a,但我得到這個錯誤(再次清洗項目文件夾和建築後):

ld: library not found for -lPods-MyFramework-AFNetworking 

我試着刪除所有來自「其他鏈接器標記」的標誌,但它給了我未定義的符號:

Undefined symbols for architecture armv7: 
    "_OBJC_CLASS_$_FBSession", referenced from: 
     objc-class-ref in TestClass.o 
ld: symbol(s) not found for architecture armv7 

這裏是與圖書館乾淨的項目的源代碼包括: https://www.dropbox.com/sh/0ymuzw6kiagz02j/AABzyHiZVaQQvBEnjBgRBq3ua?dl=0

回答

1

我還不能評論,所以我會在這裏回答。 我認爲你不能那樣做。 Cocoapods創建的靜態庫不是一個動態的庫,所以所有的代碼都應該在編譯時嵌入到你的框架中。

Cocoapods documentation,請轉到「幕後發生了什麼?」詳細解釋

如果你想爲一些平常的豆莢組織一些基本的配置,最好的方法是製作一個自定義的cocoapod作爲依賴關係。這樣,您可以依靠cocoapods來管理版本,並根據您的偏好更新代碼。我自己也採用了類似的方法,我對結果非常滿意。

相關問題