jverkoey大牛的ios靜態(tài)庫blog
https://github.com/jverkoey/iOS-Framework
擴展閱讀
1.靜態(tài)庫:
Library vs Framework in iOS
2.資源包
http://blog.csdn.net/zhaoyya/article/details/50543881
3.自動打包
參考jverkoey的腳本
4.獨立工程例子
靜態(tài)庫.a文件合成腳本
例:(我的項目的代碼例子)
set -e
mkdir -p "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.framework/Versions/${FRAMEWORK_VERSION}/Headers"
# Link the "Current" version to "${FRAMEWORK_VERSION}"
# 簡單粗暴的理解是,創(chuàng)建快捷方式
ln -sfh ${FRAMEWORK_VERSION} "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.framework/Versions/Current"
ln -sfh Versions/Current/Headers "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.framework/Headers"
ln -sfh "Versions/Current/${PRODUCT_NAME}" "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.framework/${PRODUCT_NAME}"
# The -a ensures that the headers maintain the source modification date so that we don't constantly
# cause propagating rebuilds of files that import these headers.
# 拷貝頭文件
cp -a "${TARGET_BUILD_DIR}/${PUBLIC_HEADERS_FOLDER_PATH}/" "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.framework/Versions/${FRAMEWORK_VERSION}/Headers"
分析:
set -e
你寫的每個腳本都應該在文件開頭加上set -e,這句語句告訴bash如果任何語句的執(zhí)行結果不是true則應該退出。這樣的好處是防止錯誤像滾雪球般變大導致一個致命的錯誤干像,而這些錯誤本應該在之前就被處理掉炕贵。如果要增加可讀性骤铃,可以使用set -o errexit共缕,它的作用與set -e相同彬坏。
Unix/Linux 腳本中 “set -e” 的作用
http://blog.csdn.net/todd911/article/details/9954961
mkdir -p
如果要創(chuàng)建目錄A并創(chuàng)建目錄A的子目錄B皮胡,沒有用-p的情況下是mkdir 2次
如果用-p 可以直接創(chuàng)建2個目錄 mkdir -p 目錄A/子目錄B就可以
ln -sfh
其實拆解來看就是 ln -s f h 三個命令功能
命令參數(shù):
-b 刪除意乓,覆蓋以前建立的鏈接
-d 允許超級用戶制作目錄的硬鏈接
-f 強制執(zhí)行
-i 交互模式,文件存在則提示用戶是否覆蓋
-n 把符號鏈接視為一般目錄
-s 軟鏈接(符號鏈接)
-v 顯示詳細的處理過程
(PS:這個例子是別人寫的,執(zhí)行是沒有問題的,這里的h估計是help的意思,也可能多打了.理解前面的就可以了)
# 后面的都為注釋
cp -a
Linux cp -a用法
對于cp -a最主要的用法是在保留原文件屬性的前提下復制文件惜傲。
宏
"${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.framework/Versions/${FRAMEWORK_VERSION}/Headers"
路徑地址:Users/llg/Library/Developer/Xcode/DerivedData/AcGameSDK-gghelwshltfitdgoubtwrhwblxwz/Build/Products/Debug-iphonesimulator/GamaterSDK.framework/Versions
${BUILT_PRODUCTS_DIR}
Users/llg/Library/Developer/Xcode/DerivedData/AcGameSDK-gghelwshltfitdgoubtwrhwblxwz/Build/Products/Debug-iphonesimulator/
${PRODUCT_NAME} GamaterSDK
${FRAMEWORK_VERSION} framework的版本
${TARGET_BUILD_DIR} 目標路徑
${PUBLIC_HEADERS_FOLDER_PATH} 頭文件路徑
(應該是這么個意思)