網頁

2013年7月31日 星期三

【xCode】static lib與專案結合

【環境:xCode4.6.7 , ios6.1 , USE ARC】
說明:在使用static lib時,據我所知,通常最常用的方法有
1.
將lib compiler後,實機和測試均compiler一次,再用 "lipo" 指令,進行結合。

2.
建立work space,加入所有你需要用的lib,並設定,lib與你將要產出的target project作結合。(此次要介紹的)

3.
將所有的static lib包成framework,在需要使用時,再放入你的專案中。

可能還有其他更好的方法,以上是我所知。

==
第一步:

用Xcode建立一個workspace,並同時建立一個static lib(name:staticLib2)與一個用來套用此lib的project(name:your app)。



第二步:setting your static lib
注意以下幾個地方:


2-1.
設定lib.a的安裝路徑
安裝的路徑取決於xcode的偏好設置:Locations.


但我要把他指定到target的路徑位置。

為了使得在各種情況下都一樣,需要把lib編譯設定裡的"Installation Directory"設置為"$(BUILT_PRODUCTS_DIR)"

以防萬一,我們也順便檢查一下“Skip Install”項,此目錄預設應為yes,避免此lib被裝載到mac目錄下的“/usr/local/lib”位置中,檢查是否為 yes。 


2-2.設置static.h文件的路徑
在Build Settings中,將“Public Headers Folder Path”設為"$(TARGET_NAME)"

如此,.h文件的路徑就為:$(BUILT_PRODUCTS_DIR)/TARGET_NAME/xx.h




第三步:Now setting your app

3-1.點擊該工程的target,在Build Phases 項的“Link Binary With Libraries”添加.彈出個框大概如下:選我們的workspace裡面這個lib.(已加入的lib不會再次顯示)


3-2.添加.h路徑.
Build Settings/User Header Search Paths, 添加$(BUILT_PRODUCTS_DIR),記得選擇"recursive"


此時注意,全部路徑添加完畢後,請先執行一次your app,並且關閉整個work space,並且重開

此時在your app中,Xcode就可自動找到static2.h的頭文件。


補充:

When using a static library which includes categories we will also have to add the “-ObjC” flag to the “Other Linker Flags” build setting. This will force the linker to load all objective-c classes and categories from the library. If the library contains only categories “-all_load” or “-force_load” may be needed as well. See Technical Q&A QA1490 for a more detailed explanation of these settings. 

As always , if you have any question , feel free to contact me.
有任何問題,請聯絡我

歡迎轉載,請註明出處,感謝。

沒有留言:

張貼留言