【iOS開發(fā)】SDK開發(fā)初探

最近有開發(fā)SDK的需求,之前并沒有接觸到SDK的開發(fā)。這篇文章只是記錄SDK開發(fā)學(xué)習(xí)的歷程,不對(duì)之處還望多多指正!

參考文章:
iOS SDK~打包framework開發(fā)與調(diào)試
IOS SDK開發(fā)之--2.創(chuàng)建自己的SDK

一、創(chuàng)建文件夾

  1. 現(xiàn)在桌面創(chuàng)建文件夾 HXYSDKGroup


    桌面上創(chuàng)建的HXYSDKGroup文件夾.png
  2. 打開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

  1. 雙擊打開SHTestSDK.xcworkspace文件,創(chuàng)建project

  2. 選擇Cocoa Touch Framework -> Next


    選擇Cocoa Touch Framework -> Next.png
  3. 創(chuàng)建一個(gè)名為"HXYSDK"的SDK -> Next


    創(chuàng)建一個(gè)名為"HXYSDK"的SDK -> Next.png
  4. 選擇SDK文件的保存路徑 ->Create


    選擇SDK文件的保存路徑.png
  5. 創(chuàng)建成功的效果


    創(chuàng)建成功的效果.png

三、創(chuàng)建Demo

37DF0BB0-09EC-4CC2-9F74-22855AA9823F.png

367A657A-03CE-46D3-B7E2-87E50A76405D.png

9DDF0D35-5AF0-48E3-B939-EBEF26030E5A.png

C1701C50-B09C-47B0-B984-F152541CF770.png
創(chuàng)建完的效果.png

四、HXYSDKDemo的關(guān)聯(lián)以及SDK的開發(fā)調(diào)試

  1. 這里創(chuàng)建一個(gè)TestView類,繼承于UIView,簡(jiǎn)單的重寫了初始化方法,設(shè)置了顏色


    24BBE1F0-671B-4695-9DF2-94131EB41811.png
  2. 設(shè)置Build Setting參數(shù) 將Build Active Architecture only設(shè)置為NO,


    3DE1620B-B771-4E5C-8BC1-B84515FC287A.png
  3. 設(shè)置Headers,將要公開的頭文件拖到Public下,要隱藏的放到Private或Project下,隱藏的頭文件不能被引用,效果圖:


    A30C684E-AE3E-4EB1-A93C-CB9F5A7C4D6A.png
  4. 在HXYSDK.h(必須是公開的,否則無法引用)中將所有要公開的.h引入


    D6BC021C-117A-4E2A-8411-57E2A2E67447.png

五、生成FrameWork靜態(tài)庫

  1. Build Phases添加一項(xiàng)Run Script。


    添加Run Script.png
  2. 在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
  1. 點(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)]

六、使用

使用.png

OK
最后編輯于
?著作權(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)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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