前言:最近接手公司的SDK開發任務,以前開發的SDK內部不涉及第三方的靜態庫,還算順利,這次要求在SDK內部集成微信支付和支付寶支付功能,需要在SDK內部集成第三方靜態庫,下面開始集成。
由于Framework 靜態庫開發,我們不可能每寫一句代碼,就打包.Framework,再集成到測試項目中看實際效果,所以我采用workspace的方式,多個工程集成到一個工作空間。
首先,在目錄中新建一個workspace如圖
接著在同級目錄下再創建一個新的普通工程 LoveGameSDKDevelop,用于在開發過程中測試SDK內部代碼
然后在同級目錄下再創建一個新的工程,這里選擇Framework靜態庫如圖
這個工程里就是我們用來編寫SDK內部的核心代碼
然后打開上面創建的工作空間,通過Add的方式將兩個工程都添加進去,效果如圖
將LGSDK內的沒用文件刪掉,創建一個以SDK名稱命名的類,LGSDK
接下來,將測試開發工程和SDK工程關聯起來
這樣還是不夠的,還要再修改頭文件索引路徑Header Search Paths
將后面的值修改為LGSDK工程文件的路徑,這樣就將兩個工程關聯起來了,后續開發中就可以邊在LGSDK中修改靜態庫核心代碼,邊在LGSDKDevelop中運行查看效果了,相當方便。
最后一個注意點,也是最重要的,由于.Framework庫有可能是靜態庫也可能是動態庫,默認情況下編譯器認為是動態庫,所以需要配置Build Settings
ok,測試一下,在LGSDK.h文件中定義一個hello方法,在實現文件里只做一個簡單打印,然后在LGSDKDevelop工程的ViewController.m中包含LGSDK.h,用#import+雙引號或者+書名號都可以,最后在viewDidLoad中調用hello方法