你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS 封裝含有靜態庫的動態庫Framework

iOS 封裝含有靜態庫的動態庫Framework

編輯:IOS開發綜合

項目中靜態庫出現了沖突,所以我采用動態庫方式封裝靜態庫解決這個問題;

以環信SDK為例:

建立動態庫:

CMD+Shift+N

這裡寫圖片描述

導入SDK

這裡寫圖片描述

使用:你需要自己聲明一個類調用這些頭文件中方法,即我們自己轉接實現一下。值得注意的是,如果你引用了動態庫中文件,那麼該文件所Import的文件也應該為public,如此類推。<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxwPjxpbWcgYWx0PQ=="這裡寫圖片描述" src="/uploadfile/Collfiles/20160916/201609160942311619.png" title="\" />

然後我們將這個文件的.h文件設為public,即可在外部引用包含在動態庫中的該文件。

此外靜態庫所需要的依賴庫,你在你的framework工程中也必須導入

這裡寫圖片描述

此外導入UI文件(xib,view,VC等),其實就是一個項目的文件,放在動態庫中封裝

這裡寫圖片描述

注意圖片和xib資源最好不要放入動態庫中,因為動態庫中導入圖片需要設置為動態庫的路徑,最好合成一個bundle,或者文件夾,與動態庫一起放入所需工程中。

最好是圖片和xib與動態庫分開,作為資源文件。即將用到的xib全部打包,和動態庫一起給用戶

靜態庫bitcode不支持,設置動態庫項目bitcode為NO

這裡寫圖片描述

然後選擇項目編譯

這裡寫圖片描述

1.如果出現Undefine symbol to arm7s 類似問題,檢查下你的依賴庫全部導入沒有;

2.見圖

這裡寫圖片描述

出現這個問題,修改下other linker flag 為 -read_only_relocs suppress

這裡寫圖片描述

然後可以編譯模擬器真機版本,然後來合並各CPU類型版本

選中項目:

這裡寫圖片描述

Other - >Aggregate

這裡寫圖片描述

這裡寫圖片描述

拷貝下面腳本:

# Sets the target folders and the final framework product.
# 如果工程名稱和Framework的Target名稱不一樣的話,要自定義FMKNAME
# 例如: FMK_NAME = "MyFramework"
FMK_NAME=${PROJECT_NAME}
# Install dir will be the final output to the framework.
# The following line create it in the root folder of the current project.
INSTALL_DIR=${SRCROOT}/Products/${FMK_NAME}.framework
# Working dir will be deleted after the framework creation.
WRK_DIR=build
DEVICE_DIR=${WRK_DIR}/Release-iphoneos/${FMK_NAME}.framework
SIMULATOR_DIR=${WRK_DIR}/Release-iphonesimulator/${FMK_NAME}.framework
# -configuration ${CONFIGURATION}
# Clean and Building both architectures.
xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphoneos clean build
xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphonesimulator clean build
# Cleaning the oldest.
if [ -d "${INSTALL_DIR}" ]
then
rm -rf "${INSTALL_DIR}"
fi
mkdir -p "${INSTALL_DIR}"
cp -R "${DEVICE_DIR}/" "${INSTALL_DIR}/"
cp -R "${SIMULATOR_DIR}/" "${INSTALL_DIR}/"
# Uses the Lipo Tool to merge both binary files (i386 + armv6/armv7) into one Universal final product.
lipo -create "${DEVICE_DIR}/${FMK_NAME}" "${SIMULATOR_DIR}/${FMK_NAME}" -output "${INSTALL_DIR}/${FMK_NAME}"
rm -r "${WRK_DIR}"
open "${INSTALL_DIR}"

這裡寫圖片描述

然後選擇運行

這裡寫圖片描述

然後會彈出合並後的framework 即最終版本;

使用

將framework與資源文件導入所需工程中

這裡寫圖片描述

提示:

這裡寫圖片描述

選擇工程 -> build phases -> embed frameworks

(沒有的話 ,去general裡面有)

這裡寫圖片描述

添加你的framework,然後再運行即可;

然後你就可以開始調用動態庫的代碼了;

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved