玩轉 iOS 開發:Aggregate 腳本版本《模擬器與真機靜態 Framework 合成教程》

做者感言

爲了寫這篇文章, 我翻查了許多資料, 都沒有找到詳細點的可參考資料, 外國的文章就不用說了, 光是看雞腸就頭暈了, 因此我本身總結了一些經驗, 整理了一番, 決定分享出來, 但願你們喜歡html

最後: 若是你有更好的建議或者對這篇文章有不滿的地方, 請聯繫我, 我會參考大家的意見再進行修改, 聯繫我時, 請備註Aggregate-Framework若是以爲好的話, 但願你們也能夠打賞一下~嘻嘻~祝你們學習愉快~謝謝~git


簡介

以前我寫了一個關於非Aggregate版本的模擬器與真機靜態Framework合成教程, 但那個實在是太麻煩的, 因此我又出牆翻了一些歪果仁寫的博客, 果真是世上無難事只怕有心人, 終於被我找到合適的Shell腳本了github


建立靜態包工程

新建一個Workpace文件shell

0 | center | 1080x0

新建Cocoa Touch Framework工程iphone

1 | center | 1080x0

2 | center | 1080x0

3 | center | 1080x0

4 | center | 1080x0


添加測試類

添加一個測試類TestTwoClass學習

5 | center | 1080x0


配置靜態包工程

6 | center | 1080x0

7 | center | 1080x0

8 | center | 1080x0

9 | center | 1080x0

10 | center | 1080x0

11 | center | 1080x0

12 | center | 1080x0


分別生成真機與模擬器的靜態包

13 | center | 1080x0

14 | center | 1080x0


建立腳本選項

15 | center | 1080x0

16 | center | 1080x0

17 | center | 1080x0


配置腳本選項

18 | center | 1080x0

打開Run Script以後, 輸入如下的腳本, 就能夠自動合成通用的Framework庫了測試

PS: 腳本是我在Google上搜到的, 詳細是誰寫的, 我也不清楚, 很感謝這個做者提供的腳本ui

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複製代碼

19 | center | 1080x0

20 | center | 1080x0

這裏逮到一個錯誤, 不要慌, 由於咱們以前是用Release模式的, 只要把Aggregate切換到Release模式, 再運行就能夠了spa

21 | center | 1080x0

22 | center | 1080x0

23 | center | 1080x0

24 | center | 1080x0


檢測靜態包

25 | center | 1080x0

26 | center | 1080x0

27 | center | 1080x0


測試靜態包

測試的方法和模擬器與真機靜態Framework合成教程這裏面的測試方法同樣, 這樣就很少作解釋了3d

可是這裏還有一點須要注意一些, 因爲咱們剛剛在打包的時候, 是把TestTwoClass.h是丟到Private裏面去的, 哪怕咱們已經把頭文件丟到TestTwo.h中, 而後再引用TestTwo.h, 依舊是沒辦法去調用TestTwoClass內部的任何東西, 怎麼辦呢?

咱們只要去改改導入的頭文件就能夠了, 好比:

28 | center | 1080x0

PS: 這種方式只是咱們來玩玩而已, 基本上咱們都會吧.h文件放到public


工程地址

項目地址: github.com/CainRun/Cre…


結束語

好啦, 教程到這裏就結束了, 謝謝你們的耐心觀看

相關文章
相關標籤/搜索