日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

iOS制作framework

發(fā)布時(shí)間:2023/12/8 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS制作framework 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。