2015年7月28日 星期二

XCode6 製作Static Framework

1.New Project -> Framework & Library -> Cocoa Touch Framework

2.在專案中建立Class

3.在專案設定檔中,選擇TARGET -> Build Phases, 將步驟2新增的Class h檔加入
「Headers」區塊
4.點擊專案Target,Edit Scheme, 「Run」build Configuration 選擇「release or debug」,此設定將決定輸出的framework版本

5.Compiler裝置選擇「iOS Device」,並且進行Compiler

6.在XCode專案結構列表中找到「Products」資料夾,點擊右鍵「Show in finder」,即可看到framework實體檔案,前往此資料夾「上一頁」即可看到Debug & Release兩個版本資料夾 經過上述步驟可以產出Release or debug .framework檔案 

以下步驟為合併兩個.framework,以便開發時不需更換framework 

1.在framework專案中設定「TARGET」->「Build Setting」-->「Linking」->「Mach-O Type」改為「Static Library」(專案使用framework時可以不需加在 Embedded Binaries區塊中)

 2.在framework專案中「New Target」,選擇「Aggregate」 

3.在Aggregate Target中選擇「Build Phases」, add Script 

4.輸入下列Script

 FRAMEWORK_NAME="${PROJECT_NAME}"
SIMULATOR_LIBRARY_PATH="${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${FRAMEWORK_NAME}.framework"

 DEVICE_LIBRARY_PATH="${BUILD_DIR}/${CONFIGURATION}-iphoneos/${FRAMEWORK_NAME}.framework" 

UNIVERSAL_LIBRARY_DIR="${BUILD_DIR}/${FRAMEWORK_NAME}.framework" 

FRAMEWORK="${UNIVERSAL_LIBRARY_DIR}/${FRAMEWORK_NAME}.framework"

 rm -rf "${UNIVERSAL_LIBRARY_DIR}"

 mkdir "${UNIVERSAL_LIBRARY_DIR}"

 cp -R "${SIMULATOR_LIBRARY_PATH}/Headers" "${UNIVERSAL_LIBRARY_DIR}/Headers"

cp -R "${SIMULATOR_LIBRARY_PATH}/Modules" "${UNIVERSAL_LIBRARY_DIR}/Modules"

cp -R "${SIMULATOR_LIBRARY_PATH}/Info.plist" "${UNIVERSAL_LIBRARY_DIR}/Info.plist" 

lipo -create "${SIMULATOR_LIBRARY_PATH}/${FRAMEWORK_NAME}" "${DEVICE_LIBRARY_PATH}/${FRAMEWORK_NAME}" -output "${UNIVERSAL_LIBRARY_DIR}/${FRAMEWORK_NAME}"

 5.Run即可輸出合併的framework, 名稱為「專案名稱.framework」

沒有留言:

張貼留言