iOS專案中SDK的開發與除錯
點選上方“iOS開發”,選擇“置頂公眾號”
關鍵時刻,第一時間送達!
公司最近要開發一個SDK,不知如何下手,請教了一個有SDK開發經驗的同事,也在網上查了些資料,決定整理一下。整體上講就是在SVN上建立一個專案路徑,再用Xcode建立一個專案工程,把專案工程上傳到SVN上就可以開發了,這裡只討論專案工程的建立。
一、建立一個workspace
1、在桌面上建立一個資料夾MyTestSDK(名字自己取)
2、開啟Xcode,建立一個workspace,路徑放到資料夾MyTestSDK裡面,Xcode---File---New---Workspace
建立workspace
之後可以看到MyTestSDK資料夾裡面多了一個.xcworkspace檔案
二、建立SDK
1、開啟MyTestSDK.xcworkspace檔案,建立project
建立project
選擇Cocoa Touch Framework
建立framework
把framework新增到workspace裡面
新增framework
新增之後的效果圖
效果
三、建立Demo
1、開啟MyTestSDK.xcworkspace檔案,建立project
建立project
2、選擇Single View Application
選擇single view application
3、新增application到workspace
新增application
最終效果圖
效果圖
從上圖可以看出,上面是demo,下面是sdk,怎麼把這兩者關聯起來呢????????
四、Demo的關聯以及SDK的開發除錯
1、把SDK打包成framework
這個步驟網上有很多種教程,這裡就取其中一個,其他方法有興趣的同學可以自己研究
參考:qingmang.me/articles/5162103427194116731/
這裡建立一個MyView類,繼承於UIView,簡單的重寫了初始化方法,設定了顏色
建立一個類
設定Build Setting引數
設定引數
更改引數,在Architectures下增加armv7s,並選中。將Build Active Architecture only設定為NO
更改引數
設定Headers,將要公開的標頭檔案拖到Public下,要隱藏的放到Private或Project下,隱藏的標頭檔案不能被引用
標頭檔案
然後需要在MyTestSDK.h(必須是公開的,否則無法引用)中將所有要公開的.h引入
引入標頭檔案
建立一個Aggregare
嵌入指令碼,選中剛剛建立的Aggregare,然後選中右側的Build Phases,點選左邊的+號,選擇New Run Script Phases
下面把這段指令碼複製進去(格式不要錯,格式錯編譯不通過)
# 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}"
如圖所示:
最後編譯,command + B,編譯通過在finder中找到framework,拷貝出來
編譯
2、Demo與SDK的關聯
把打包好的framework拖到demo裡面
使用SDK,執行demo
執行的結果
這時候SDK跟Demo就關聯起來了,此時修改下面SDK中的程式碼,執行demo就是修改後的效果,然後就可以愉快的在這個工程裡面開發除錯SDK了,如果我把MyView的顏色設定為yellow,再去執行demo,看一下效果
最後的最後,把這個工程上傳到SVN就可以愉快的開發了。。。以上是我個人的理解,如有錯誤,請各位大牛批評指正,文中framework的打包方法參考網上資料,參考連結:qingmang.me/articles/5162103427194116731/
來自:http://www.jianshu.com/p/d48d9a62176f
iOS開發整理髮布,轉載請聯絡作者授權