iOS-打包Framework

我們在iOS開發(fā)中經(jīng)常會(huì)導(dǎo)入一些Framework,那么今天我們就自己動(dòng)手打包一個(gè)Framework

首先我們來新建一個(gè)工程文件,選擇Cocoa Touch Framework,點(diǎn)擊Next,給文件命名(因?yàn)槭菧y試,隨便起了一個(gè)),然后Next,這樣我們就創(chuàng)建好了一個(gè)工程文件

新建工程


命名



創(chuàng)建好的文件

我們看到工程里面有兩個(gè)文件(FrameworkText.h和Info.plist),暫且不管這兩個(gè)文件,下面我們來添加要公開的類及方法。 為了測試,我簡單的添加了一個(gè)Person類和Animal類

添加類及方法

下面我們就開始生成Framework,首先我們來進(jìn)行一下相關(guān)的設(shè)置,如果你的項(xiàng)目中用到了系統(tǒng)或者第三方的框架,一定要在Link Binary With Libraries中導(dǎo)入相關(guān)Framework,第二個(gè)是Headers,一定要把想要公開的類的頭文件放到Public下面(如下圖)

需要注意配置的地方

接下來比較重要的一步,合并兩個(gè)打包好的Framework,為什么說是兩個(gè)呢,因?yàn)槲覀冊诤喜⒅坝媚M器運(yùn)行和用真機(jī)運(yùn)行是會(huì)得到兩個(gè)不同的Framework,重要的是這兩個(gè)Framework不能通用,所以要合并成一個(gè)通用的。

合并第一步
合并第二步
選擇之后會(huì)看到Run Script

展開Run Script 之后將下面的代碼復(fù)制進(jìn)去,然后點(diǎn)擊運(yùn)行即可得到我們想要的Framework

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


最終的Framework

下面我們測試一下Framework,創(chuàng)建一個(gè)新的工程把剛剛打包好的Framework拖到工程中,導(dǎo)入頭文件即可使用,我在測試的時(shí)候碰到一個(gè)問題和大家分享一下

問題

這個(gè)問題的解決方法如下圖

1
2
3

如果您遇到了別的問題,歡迎提出大家一起交流

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

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

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