我們常見的友盟 微信支付 百度地圖 高德地圖 由于歷史原因 可能要兼容 iOS7之前版本,目前這些公司提供的 SDK 都只支持靜態(tài)庫,筆者也咨詢了融云客服希望他們能夠提供下融云 IM 動態(tài)庫的 framework, 但是融云客服并沒有提供,只是說讓筆者自己將靜態(tài)庫打包成動態(tài)庫使用.
其實靜態(tài)庫打包成動態(tài)庫 跟普通類文件制作成 framework 基本相似, 以下以高德地圖 SDK 進行演示
image.png
//點擊+號 生成一個新的 target
image.png
image.png
//2 將下載下來的高德地圖 SDK framework 頭文件 和二進制文件 添加到工程中
image.png
由于高德地圖SDK 由多個組件構成 因此 建議 先添加 AMapFoundationKit 然后編譯通過后 ,再逐步把 AMMaplocationKit , AMapSearchKit , MAMapKit 添加到工程中,
然后修改頭文件信息
image.png
去掉 <AMMapSearchKit/AMapSearchAPI.h> 直接導入頭文件即可
當4個 framework 都添加完畢后 就可以去編譯生成一個我們自己的 AMMapLib 動態(tài)庫 ,然后使用lib -create 指令合并真機和模擬器多個指令的架構, 組件使用到這個動態(tài)庫 在編譯和提交組件時候 ,必須要保護 i386 x86-64 arm-64 armv7 等多個Cpu指令集 ,這樣在你提交自己組件 到遠程私有庫時候 編譯才能通過 .
iOS8以后蘋果為了 Swift 考慮 是可以在項目中使用動態(tài)庫,筆者在使用動態(tài)庫時候 沒有因此被蘋果審核拒絕,所以技術上不存在問題.