說明:在使用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)",
在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"
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.
有任何問題,請聯絡我
歡迎轉載,請註明出處,感謝。
沒有留言:
張貼留言