iOS SDK的封裝(二)靜態(tài)庫.framework SDK文件的封裝和使用

前言

這幾年做的項目,基本都是封裝成SDK供第三方使用,在這里做個記錄,希望各位技術(shù)大牛多多指教,同時也希望可以給別人給予幫助和借鑒。
感興趣的可以看下面的文章
iOS SDK的封裝(一)靜態(tài)庫.a SDK文件的封裝和使用

1 .framework 的創(chuàng)建

1.1 打開Xcode創(chuàng)建一個新的工程,選擇工程如下:
image.png
1.2 創(chuàng)建工程完畢后,目錄如下
image.png
1.3 配置參數(shù)
1.3.1 TARGETS --> Build Settings --> Linking 配置參數(shù)。
image.png
1.3.2 接著配置 TARGETS --> Build Settings --> Build Active Architecture Only 設(shè)置為NO。
image.png
1.3.3 接著配置,增加armv7s:TARGETS --> Build Settings --> Architectures,在Architectures下增加armv7s,并選中。
image.png
1.4 創(chuàng)建一個工具類AtaticLibTool,添加一個方法用于測試;
image.png
1.5 設(shè)置Headers:將你要公開的頭文件拖至Public下,要隱藏的放在Private或者Project下,當(dāng)然,隱藏的頭文件就無法再被引用;
image.png
1.6 需要在testFramework.h(必須是公開的,否則無法引用)中將你所有要公開的.h引入。
image.png
1.7 編譯打包
1.7.1 首先 Edit Scheme
image.png
1.7.2 設(shè)置Build Configuration ,選擇Release。
image.png
1.7.3 添加編譯打包版本
1.7.3.1 選中TARGETS下的工程,點擊菜單的Editor,選擇Add Target創(chuàng)建一個Aggregate;
image.png
1.7.3.2 選擇Cross-platform --> Other --> Aggregate,點擊Next創(chuàng)建;
image.png
1.7.3.3 嵌入腳本,TARGETS --> MyFramework --> Build Phases --> + --> New Run Script Phase 。
image.png
1.7.3.4 編輯腳本。
image.png
腳本如下:
# Sets the target folders and the finalframework product.
# 如果工程名稱和Framework的Target名稱不一樣的話,要自定義FMKNAME
# 例如: FMK_NAME = "MyFramework"
FMK_NAME=${PROJECT_NAME}
# 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}"
fimkdir -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}"
1.8 編譯。如圖所示,command + B編譯。這里Generic iOS Device的意思是“iOS通用設(shè)備”,大概就是說模擬器和真機都能用。
image.png
1.9 編譯成功后,選擇Products --> 右軟件 --> Show in Finder ,那就是我們需要的framework文件。
image.png
image.png
1.10 最后使用Framework,導(dǎo)入另一個項目中,我們打開這個framework看看,發(fā)現(xiàn)只有Headers,里面有兩個.h,其中一個是我們之前添加的FrameworkDemo.h文件,另一個就是我們的AtaticLibTools.h 。
image.png

2 完成 .framework 的創(chuàng)建和打包、使用。

3 后記

本篇主要講述了一種.framework SDK的生成和使用,感興趣的給個贊或者關(guān)注~~~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容