iOS制作framework
ios自定義.framework .framework可以制作為靜態(tài)庫(kù)和動(dòng)態(tài)庫(kù),此文章是制作靜態(tài)庫(kù)。系統(tǒng)的.framework都是動(dòng)態(tài)庫(kù),自己制作的.framework都是靜態(tài)庫(kù)。
如何制作.framework如下:
1.用xcode創(chuàng)建一個(gè)framework工程,如下圖
2.編寫自己的工具類。如下圖
3.設(shè)置Build Active Architecture Only 值 為NO。如下圖(適配所有版本的模擬器和真機(jī))
4.設(shè)置Mach-O Type值為Static Library(靜態(tài)庫(kù))。如下圖
5.將你需要?jiǎng)e人引用的頭文件設(shè)置public。默認(rèn)在project(不可見,私有)。
6.引入頭文件,有幾個(gè)public 就引入幾個(gè)public文件
?
7.創(chuàng)建Target。File->New->Target->Other->Aggregate。如下圖
?
8.添加腳本。如下圖
9.下面的腳本代碼復(fù)制到新建的 Run Script. 如下圖
#!/bin/sh #要build的target名 TARGET_NAME=${PROJECT_NAME} if [[ $1 ]] then TARGET_NAME=$1 fi UNIVERSAL_OUTPUT_FOLDER="${SRCROOT}/Products"#創(chuàng)建輸出目錄,并刪除之前的framework文件 mkdir -p "${UNIVERSAL_OUTPUT_FOLDER}" rm -rf "${UNIVERSAL_OUTPUT_FOLDER}/${TARGET_NAME}.framework"#分別編譯模擬器和真機(jī)的Framework xcodebuild -target "${TARGET_NAME}" ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphoneos BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" clean build xcodebuild -target "${TARGET_NAME}" ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphonesimulator BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" clean build#拷貝framework到univer目錄 cp -R "${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${TARGET_NAME}.framework" "${UNIVERSAL_OUTPUT_FOLDER}"#合并framework,輸出最終的framework到build目錄 lipo -create -output "${UNIVERSAL_OUTPUT_FOLDER}/${TARGET_NAME}.framework/${TARGET_NAME}" "${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${TARGET_NAME}.framework/${TARGET_NAME}" "${BUILD_DIR}/${CONFIGURATION}-iphoneos/${TARGET_NAME}.framework/${TARGET_NAME}"#刪除編譯之后生成的無(wú)關(guān)的配置文件 dir_path="${UNIVERSAL_OUTPUT_FOLDER}/${TARGET_NAME}.framework/" for file in ls $dir_path do if [[ ${file} =~ ".xcconfig" ]] then rm -f "${dir_path}/${file}" fi done #判斷build文件夾是否存在,存在則刪除 if [ -d "${SRCROOT}/build" ] then rm -rf "${SRCROOT}/build" fi rm -rf "${BUILD_DIR}/${CONFIGURATION}-iphonesimulator" "${BUILD_DIR}/${CONFIGURATION}-iphoneos" #打開合并后的文件夾 open "${UNIVERSAL_OUTPUT_FOLDER}"?
?10.切換Scheme,CusFrameWork 設(shè)置Excluded Architectures下的?Any ios Simulator SDK 值為 arm64。(模擬器生成的.framework, 不需要arm64架構(gòu))。如下圖 切記taget不要看錯(cuò)了。
?11.Scheme:CusFrameWork,?設(shè)置編譯模式 release。如下圖
12.設(shè)置.framework的最低版本,如下圖
?
13.Schem: CusFrameWork. 選擇真機(jī),command+b 生成真機(jī).framework。如下圖
14.?Schem: CusFrameWork. 選擇模擬器,command+b 生成真機(jī).framework。如下圖
?
13.切換Schem:Aggregate, 選擇 any ios device,?command+B 編譯運(yùn)行腳本,腳本會(huì)自動(dòng)打開文件夾?如下圖
?
14.測(cè)試引入.framework. 新建一個(gè)項(xiàng)目TestCusFrameWork. 將13步驟中的CusFrameWork.framework文件夾?放到此項(xiàng)目中的根目錄中。然后引入。如下圖
?15.在TestCusFrameWork使用自己制作的SDK 并運(yùn)行,成功打印。如下圖
完結(jié) OK?
總結(jié)
以上是生活随笔為你收集整理的iOS制作framework的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 逻辑运算符与或非(基础学习)
- 下一篇: 虚拟服务器 vmotion,VMotio