iOS開發筆記之Xcode9.2下SDK開發-生成Framework的圖解流程

zzyeeaa發表於2018-03-29

1.Workspace可以方便SDK與Demo的聯調,首先建立一個Workspace:




2.建立Framework:



選擇Cocoa Touch Framework:




加入之前建立的SDKWorkspace,點選Create:




3.建立SDKDemo:

再次新建Project,選擇Single View Application:




加入SDKWorkspace:




4.生成Framework,關聯Demo與SDK:

在SDK中建立一個類SDKView,設定BackgroundColor:



選擇Target-SDK-Build Settings, Mach-O Type設定Static Library,Dead Code Stripping設為NO:



Build Active Architecture Only設為NO:



Build Phases - Headers下將需要暴露的標頭檔案拖到Public下,不暴露的拖到Project下,注意Public下的.h檔案中import的.h檔案也需要拖到Public下:



點選Build Phases左上角+號,選擇New Run Script Phase:



新增如下程式碼:

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


如圖:



Scheme選擇SDK,裝置選擇Generic iOS Device:


Command+B編譯得到SDK.Framework,這就是我們需要的Framework:



拷貝SDK.Framework,匯入SDKDemo中:



呼叫SDK:



Scheme選擇SDKDemo,裝置選擇模擬器或者真機,Command+R走起:



除錯成功!

然後再試一試SDK中的改動能否同步到Demo中,我們修改一下BackgroundColor:



Command+R執行:


成功!

至此,整個過程就完成了,當然這只是萬里長征的第一步,接下來就可以正式開發了,我已經聞到了bug大軍的氣息。。。


最後附上專案在匯入SDK後,需要進行的一些配置:

1. General - Embedded Binaries 新增Framework;
2. Build Settings - Enable Bitcode 設為NO;
3. Build Settings - Other link flags 新增 -ObjC -all_load。


祝大家開發順利!!

相關文章