作者感言
為了寫這篇文章, 我翻查了許多資料, 都沒有找到詳細點的可參考資料, 外國的文章就不用說了, 光是看雞腸就頭暈了, 所以我自己總結了一些經驗, 整理了一番, 決定分享出來, 希望大家喜歡
最後:
如果你有更好的建議或者對這篇文章有不滿的地方, 請聯絡我, 我會參考你們的意見再進行修改, 聯絡我時, 請備註Aggregate-Framework
如果覺得好的話, 希望大家也可以打賞一下~嘻嘻~祝大家學習愉快~謝謝~
簡介
之前我寫了一個關於非
Aggregate
版本的模擬器與真機靜態Framework合成教程, 但那個實在是太麻煩的, 所以我又出牆翻了一些歪果仁寫的部落格, 果然是世上無難事只怕有心人, 終於被我找到合適的Shell
指令碼了
建立靜態包工程
新建一個Workpace檔案
新建Cocoa Touch Framework工程
新增測試類
新增一個測試類
TestTwoClass
配置靜態包工程
分別生成真機與模擬器的靜態包
建立指令碼選項
配置指令碼選項
開啟
Run Script
之後, 輸入以下的指令碼, 就可以自動合成通用的Framework
庫了PS: 指令碼是我在
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複製程式碼
這裡逮到一個錯誤, 不要慌, 因為我們之前是用
Release
模式的, 只要把Aggregate
切換到Release
模式, 再執行就可以了
檢測靜態包
測試靜態包
測試的方法和模擬器與真機靜態Framework合成教程這裡面的測試方法一樣, 這樣就不多做解釋了
但是這裡還有一點需要注意一些, 由於我們剛剛在打包的時候, 是把
TestTwoClass.h
是丟到Private
裡面去的, 哪怕我們已經把標頭檔案丟到TestTwo.h
中, 然後再引用TestTwo.h
, 依舊是沒辦法去呼叫TestTwoClass
內部的任何東西, 怎麼辦呢?我們只要去改改匯入的標頭檔案就可以了, 比如:
PS: 這種方式只是我們來玩玩而已, 基本上我們都會吧
.h
檔案放到public
中
工程地址
專案地址: github.com/CainRun/Cre…
結束語
好啦, 教程到這裡就結束了, 謝謝大家的耐心觀看