創(chuàng)建OC SDK 之 framework

最近經(jīng)常會(huì)被問(wèn)到如何創(chuàng)建一個(gè)SDK,這里把步驟記錄下來(lái)。

1.首先 ?創(chuàng)建工程

2.工程創(chuàng)建好之后,就是配置一些東西了,這對(duì)SDK的通用性很重要

Build Setting -> Dead Code Stripping 改為NO

Build Setting -> Mach-O Type改為 Static Library

Build Setting -> Build Active Architecture Only 改為 NO

Build Setting -> Architectures 添加armv7s架構(gòu)

Build Setting -> Other C flags? 添加-fembed-bitcode ? ?(使SDK支持bitcode)

Build Phases -> Headers 將公開(kāi)的頭文件從Project中拖入Public


3.暴露出想要被引用的頭文件

需要暴露的頭文件都拖到public下面,不需要的都放在private或者project下面


4.好了,現(xiàn)在運(yùn)行工程,就能得到framework了


點(diǎn)擊show ?in finder 之后,得到兩個(gè)版本,一個(gè)模擬器用到的,一個(gè)真機(jī)用到的.但是一般我們都會(huì)把這兩個(gè)整合成一個(gè)framework,


5.合并真機(jī)和模擬器framework,可以用一段腳本代碼來(lái)實(shí)現(xiàn),還是上圖說(shuō)話(huà):

首先點(diǎn)擊+號(hào),添加一個(gè)Run Script,在輸入框里粘貼一段代碼:如下(腳本代碼是從這來(lái)的,感謝大神)

if [ "${ACTION}" = "build" ]

then

INSTALL_DIR=${SRCROOT}/Products/${PROJECT_NAME}.framework

DEVICE_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphoneos/${PROJECT_NAME}.framework

SIMULATOR_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphonesimulator/${PROJECT_NAME}.framework

if [ -d "${INSTALL_DIR}" ]

then

rm -rf "${INSTALL_DIR}"

fi

mkdir -p "${INSTALL_DIR}"

cp -R "${DEVICE_DIR}/" "${INSTALL_DIR}/"

#ditto "${DEVICE_DIR}/Headers" "${INSTALL_DIR}/Headers"

lipo -create "${DEVICE_DIR}/${PROJECT_NAME}" "${SIMULATOR_DIR}/${PROJECT_NAME}" -output "${INSTALL_DIR}/${PROJECT_NAME}"

#open "${DEVICE_DIR}"

#open "${SRCROOT}/Products"

fi



6.然后重現(xiàn)運(yùn)行 framework,,分別在下面三種條件下運(yùn)行一遍

(模擬器可以任選一中模擬器跑一遍)

7.然后? ,單擊Products,選擇 show in finder? ,在products目錄下,得到的就是合并后的framework,在真機(jī)模擬器上或者打包都可以用.



8,可以驗(yàn)證一下,打開(kāi)終端:輸入: lipo -info? ? 然后把生成的framework下的二進(jìn)制文件拖入終端,獲得路徑,回車(chē),得到我們想要的信息:




得到的framework支持的架構(gòu)如下:

說(shuō)明合并framework成功!

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

相關(guān)閱讀更多精彩內(nèi)容

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