1. 程式人生 > >iOS專案中SDK的開發與除錯

iOS專案中SDK的開發與除錯

點選上方“iOS開發”,選擇“置頂公眾號”

關鍵時刻,第一時間送達!

640?

640?wx_fmt=gif

公司最近要開發一個SDK,不知如何下手,請教了一個有SDK開發經驗的同事,也在網上查了些資料,決定整理一下。整體上講就是在SVN上建立一個專案路徑,再用Xcode建立一個專案工程,把專案工程上傳到SVN上就可以開發了,這裡只討論專案工程的建立。

一、建立一個workspace

1、在桌面上建立一個資料夾MyTestSDK(名字自己取)

2、開啟Xcode,建立一個workspace,路徑放到資料夾MyTestSDK裡面,Xcode---File---New---Workspace

640?wx_fmt=png

建立workspace

之後可以看到MyTestSDK資料夾裡面多了一個.xcworkspace檔案

640?wx_fmt=png

二、建立SDK

1、開啟MyTestSDK.xcworkspace檔案,建立project

640?wx_fmt=png

建立project

選擇Cocoa Touch Framework

640?wx_fmt=png

建立framework

把framework新增到workspace裡面

640?wx_fmt=png

新增framework

新增之後的效果圖

640?wx_fmt=png

效果

三、建立Demo

1、開啟MyTestSDK.xcworkspace檔案,建立project

640?wx_fmt=png

建立project

2、選擇Single View Application

640?wx_fmt=png

選擇single view application

3、新增application到workspace

640?wx_fmt=png

新增application

最終效果圖

640?wx_fmt=png

效果圖

從上圖可以看出,上面是demo,下面是sdk,怎麼把這兩者關聯起來呢????????

四、Demo的關聯以及SDK的開發除錯

1、把SDK打包成framework

這個步驟網上有很多種教程,這裡就取其中一個,其他方法有興趣的同學可以自己研究

參考:qingmang.me/articles/5162103427194116731/

這裡建立一個MyView類,繼承於UIView,簡單的重寫了初始化方法,設定了顏色

640?wx_fmt=png

建立一個類

設定Build Setting引數

640?wx_fmt=jpeg

設定引數

更改引數,在Architectures下增加armv7s,並選中。將Build Active Architecture only設定為NO

640?wx_fmt=png

更改引數

設定Headers,將要公開的標頭檔案拖到Public下,要隱藏的放到Private或Project下,隱藏的標頭檔案不能被引用

640?wx_fmt=png

標頭檔案

然後需要在MyTestSDK.h(必須是公開的,否則無法引用)中將所有要公開的.h引入

640?wx_fmt=png

引入標頭檔案

建立一個Aggregare

640?wx_fmt=jpeg

640?wx_fmt=png

嵌入指令碼,選中剛剛建立的Aggregare,然後選中右側的Build Phases,點選左邊的+號,選擇New Run Script Phases

640?wx_fmt=png

下面把這段指令碼複製進去(格式不要錯,格式錯編譯不通過)

# Sets the target folders and the final framework product.

# 如果工程名稱和Framework的Target名稱不一樣的話,要自定義FMKNAME

# 例如: FMK_NAME = "MyFramework"

FMK_NAME=${PROJECT_NAME}

# Install dir will be the final output to the framework.

# The following line create it in the root

folder of the current project.

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

# Working dir will be deleted after the framework creation.

WRK_DIR=build

DEVICE_DIR=${WRK_DIR}/Release-iphoneos/${FMK_NAME}.framework

SIMULATOR_DIR=${WRK_DIR}/Release-iphonesimulator/${FMK_NAME}.framework

# -configuration ${CONFIGURATION}

# Clean and Building both architectures.

xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphoneos clean build

xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphonesimulator clean build

# Cleaning the oldest.

if [ -d "${INSTALL_DIR}" ]

then

rm -rf "${INSTALL_DIR}"

fi

mkdir -p "${INSTALL_DIR}"

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

# Uses the Lipo Tool to merge both binary files (i386 + armv6/armv7) into one Universal final product.

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

rm -r "${WRK_DIR}"

open "${INSTALL_DIR}"

如圖所示:

640?wx_fmt=png

最後編譯,command + B,編譯通過在finder中找到framework,拷貝出來

640?wx_fmt=png

編譯

2、Demo與SDK的關聯

把打包好的framework拖到demo裡面

640?wx_fmt=png

使用SDK,執行demo

640?wx_fmt=png

執行的結果

640?wx_fmt=png

這時候SDK跟Demo就關聯起來了,此時修改下面SDK中的程式碼,執行demo就是修改後的效果,然後就可以愉快的在這個工程裡面開發除錯SDK了,如果我把MyView的顏色設定為yellow,再去執行demo,看一下效果

640?wx_fmt=png

最後的最後,把這個工程上傳到SVN就可以愉快的開發了。。。以上是我個人的理解,如有錯誤,請各位大牛批評指正,文中framework的打包方法參考網上資料,參考連結:qingmang.me/articles/5162103427194116731/

640?

  • 來自:http://www.jianshu.com/p/d48d9a62176f

  • iOS開發整理髮布,轉載請聯絡作者授權

640?