最近有開發(fā)SDK的需求,之前并沒有接觸到SDK的開發(fā)。這篇文章只是記錄SDK開發(fā)學(xué)習(xí)的歷程,不對(duì)之處還望多多指正!
參考文章:
iOS SDK~打包framework開發(fā)與調(diào)試
IOS SDK開發(fā)之--2.創(chuàng)建自己的SDK
一、創(chuàng)建文件夾
-
現(xiàn)在桌面創(chuàng)建文件夾 HXYSDKGroup
桌面上創(chuàng)建的HXYSDKGroup文件夾.png -
打開Xcode,創(chuàng)建一個(gè)workspace 流程: Xcode ->File->New->Workspace (快捷鍵 :command +N = 創(chuàng)建項(xiàng)目)
CD408EED-7ACA-4F2C-A94D-9C7937107844.png
創(chuàng)建完Workspace后文件夾效果.png
二、創(chuàng)建SDK
雙擊打開SHTestSDK.xcworkspace文件,創(chuàng)建project
-
選擇Cocoa Touch Framework -> Next
選擇Cocoa Touch Framework -> Next.png -
創(chuàng)建一個(gè)名為"HXYSDK"的SDK -> Next
創(chuàng)建一個(gè)名為"HXYSDK"的SDK -> Next.png -
選擇SDK文件的保存路徑 ->Create
選擇SDK文件的保存路徑.png -
創(chuàng)建成功的效果
創(chuàng)建成功的效果.png
三、創(chuàng)建Demo





四、HXYSDKDemo的關(guān)聯(lián)以及SDK的開發(fā)調(diào)試
-
這里創(chuàng)建一個(gè)TestView類,繼承于UIView,簡(jiǎn)單的重寫了初始化方法,設(shè)置了顏色
24BBE1F0-671B-4695-9DF2-94131EB41811.png -
設(shè)置Build Setting參數(shù) 將Build Active Architecture only設(shè)置為NO,
3DE1620B-B771-4E5C-8BC1-B84515FC287A.png -
設(shè)置Headers,將要公開的頭文件拖到Public下,要隱藏的放到Private或Project下,隱藏的頭文件不能被引用,效果圖:
A30C684E-AE3E-4EB1-A93C-CB9F5A7C4D6A.png -
在HXYSDK.h(必須是公開的,否則無法引用)中將所有要公開的.h引入
D6BC021C-117A-4E2A-8411-57E2A2E67447.png
五、生成FrameWork靜態(tài)庫
-
Build Phases添加一項(xiàng)Run Script。
添加Run Script.png -
在Run Script添加腳本
156DB703-EAB8-48A8-90CC-DA75958F0FC6.png
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
- 點(diǎn)擊左上角的運(yùn)行按鈕,然后腳本就自動(dòng)彈出生成的Framework了。不過你要在64位和32位的編譯器上各跑一次來適配不同的設(shè)備(真機(jī)和模擬器)。
編譯報(bào)錯(cuò)了?你還需要讓編譯器提前編譯這個(gè)二進(jìn)制文件。進(jìn)入General->Embedded Binaries,將加入的Framework添加上去點(diǎn)擊加號(hào)加上去這樣就OK了(其實(shí)制作過程也只是按部就班罷了,F(xiàn)ramework的核心在于內(nèi)部結(jié)構(gòu)的設(shè)計(jì))。
[圖片上傳失敗...(image-9dc976-1529029089481)]
六、使用














