iOS創建Framework

iOS開發中,有時候需要將一些工具包裝起來,做成sdk提供給客戶使用,製作過程可以分爲兩種。一種是製作靜態庫.a文件,一種是製作成framework文件。前者操作起來簡單,但是提供給客戶時比較麻煩,需要提供頭文件。後者使用簡便,可以直接導入,但是製作較爲麻煩。

蘋果在iOS8之前都不支持動態庫framework方法,所以這裏說的framework實質上都是靜態庫文件。

這篇文章主要記錄創建framework的方法。創建framework也有兩種方法,一種是Xcode6之前的製作方法,一種是Xcode6之後的製作方法。這篇博客先講解最新版本Xcode7製作framework的方法。

Xcode6就已經提供了動態庫的製作方法。這裏還是以Xcode7爲例,兩者的操作步驟是相同的。新建一個Project,選擇Application-Single View Application。

其次,爲此項目添加一個targets,,選擇iOS下的Framework & Library選項:
這裏寫圖片描述

創建之後,選擇你創建的Targets,在BuildSetting中搜索Mach-O,將之設置爲Static Library:
這裏寫圖片描述

修改相關配置:
這裏寫圖片描述

製作通用framework,使真機和模擬器都可使用:
這裏寫圖片描述

這裏寫圖片描述

在RunScript添加如下代碼:

# Sets the target folders and the final framework product.
# 如果工程名稱和Framework的Target名稱不一樣的話,要自定義FMKNAME
# 例如: FMK_NAME = "MyFramework"
FMK_NAME="此處填寫framework名稱"

# 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}/"

# 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中有些類可能是一些私有的輔助工具,不需要使用者看到,在這裏只需要把開放出去的類放到Public下:
這裏寫圖片描述

選中新建的Target,Run, 如果沒有異常的話,會自動彈出生成的Framework文件:
這裏寫圖片描述

這裏寫圖片描述

如果您進行到最後一步,恭喜成功得到了想要的framework文件了!

最後,打開Mac的終端,驗證下生成的framework都支持哪些設備吧:
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章