步驟
1叠萍、打開Xcode芝发,新建工程。不要選擇“Application”苛谷,選擇“Framework & Library”辅鲸。選擇第一個,然后Next腹殿。
2独悴、創(chuàng)建功能類。
這里我創(chuàng)建一個繼承自NSObject的SayHello類
3锣尉、實現(xiàn)功能刻炒。
在新創(chuàng)建的類里面聲明方法并實現(xiàn)。這里我寫一個sayHello的方法自沧,以便后面測試使用坟奥。
4树瞭、更改參數(shù)
在TARGETS下選中工程,在Build Settings下更改幾個參數(shù)爱谁。
5晒喷、設置Target
修改兼容的版本為當前的最低版本。
6、設置Headers
將你要公開的頭文件拖至Public下,要隱藏的放在Private或者Project下驼鹅,當然,隱藏的頭文件就無法再被引用挺身。
打包Framework
打包Framework,我這里就用一種分方法來介紹,因為另外一種用終端的容易出現(xiàn)錯誤,沒法出現(xiàn)framework文件,所以我這里就用一種方法來介紹打包
1蓝撇、選中TARGETS下的工程,點擊上方的Editor,選擇Add Target創(chuàng)建一個Aggregate.
2叮姑、選擇Cross-platform下的Other中進行選擇Aggregate唉地,點擊Next創(chuàng)建。
3传透、嵌入腳本。選中剛剛創(chuàng)建的Aggregate,然后選中右側的Build Phases,點擊左下方加號极颓,選擇New Run Script Phase
將這段腳本復制進去:
# Sets the target folders and the finalframework product.
# 如果工程名稱和Framework的Target名稱不一樣的話朱盐,要自定義FMKNAME
# 例如: FMK_NAME = "MyFramework" ? 你生成的就是MyFramework.Framework
FMK_NAME="MyTestFramework"
# Install dir will be the final output tothe framework.
# The following line create it in the rootfolder of the current project.
INSTALL_DIR=${SRCROOT}/Products/${FMK_NAME}.framework
# Working dir will be deleted after theframework 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 binaryfiles (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}"
最后的格式如下圖,盡量一個回車也不能錯:
4菠隆、編譯兵琳。如圖所示,command+B編譯骇径。這里Generic iOS Device的意思是“iOS通用設備”躯肌,大概就是說模擬器和真機都能用。
5破衔、編譯成功后會自動跳出一個finder清女,保存這個.framework,這就是我們需要的framework晰筛。
至此嫡丙,打包framework的方法介紹完成!
可以參考下面的大神的一些文章進行進一步學習iOS封裝功能生成 .framework
使用
最后就是用我們的Framework了读第,倒入另一個Xcode中曙博,我們打開這個framework看看,發(fā)現(xiàn)只有Headers怜瞒,里面有兩個.h父泳,其中一個是我們之前添加的FrameworkDemo.h文件,另一個就是我們的SayHello.h 。