iOS創(chuàng)建靜態(tài)庫
純筆記俄认。
類似于各類SDK,只暴露bundle文件蒙揣,和Framework文件靶溜。
可以將本地文件(高內(nèi)聚,低耦合之類)文件放到pod中懒震。HERE
也可以放在Framework中罩息,實現(xiàn)模塊化,功能化个扰,不過這樣看不到源文件瓷炮,只有.h文件,自己用的時候好裝B的說递宅。
xcode: 7.3.1
bundle文件
bundle是只是包含資源文件娘香。
新建bundle
-
新建一個工程冬筒。選擇
Paste_Image.png -
將文件拖到工程中,然后點擊Run一下,bundle文件就生成了茅主。右鍵showinFinder就可以找到文件舞痰,加入到所需項目中即可使用。
Paste_Image.png - 如圖
Paste_Image.png
Framework是靜態(tài)文件
Framework在ios中可以是靜態(tài)庫也可以是動態(tài)庫诀姚。但是只有Apple官方可以創(chuàng)建响牛。
看下說明:
靜態(tài)庫:鏈接時完整地拷貝至可執(zhí)行文件中,被多次使用就有多份冗余拷貝赫段。
動態(tài)庫:鏈接時不復制呀打,程序運行時由系統(tǒng)動態(tài)加載到內(nèi)存,供程序調(diào)用糯笙,系統(tǒng)只加載一次贬丛,多個程序共用,節(jié)省內(nèi)存给涕。
說白了豺憔,就是靜態(tài)庫只有你寫的app可以用,動態(tài)庫是可以即使app在掛起的時候够庙,各個app也可以公用的文件恭应。
創(chuàng)建Framework文件
-
新建工程
Paste_Image.png -
設置狀態(tài)為
Paste_Image.png -
如何不暴露出來文件
Paste_Image.png -
會有一個問題,做出來的Framework可能沒法兼容真機和模擬器耘眨,然后做兼容昼榛。Paste_Image.png
-
然后 Paste_Image.png
Paste_Image.png
# Sets the target folders and the final framework product.
# 如果工程名稱和Framework的Target名稱不一樣的話,要自定義FMKNAME
# 例如: FMK_NAME = "MyFramework"
FMK_NAME=${PROJECT_NAME}
# Install dir will be the final output to the framework.
# The following line create it in the root folder of the current project.
INSTALL_DIR=${SRCROOT}/Products/${FMK_NAME}.framework
# Working dir will be deleted after the framework creation.
WRK_DIR=build
DEVICE_DIR=${WRK_DIR}/Release-iphoneos/${FMK_NAME}.framework
SIMULATOR_DIR=${WRK_DIR}/Release-iphonesimulator/${FMK_NAME}.framework
# -configuration ${CONFIGURATION}
# Clean and Building both architectures.
xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphoneos clean build
xcodebuild -configuration "Release" -target "${FMK_NAME}" -sdk iphonesimulator clean build
# Cleaning the oldest.
if [ -d "${INSTALL_DIR}" ]
then
rm -rf "${INSTALL_DIR}"
fi
mkdir -p "${INSTALL_DIR}"
cp -R "${DEVICE_DIR}/" "${INSTALL_DIR}/"
# Uses the Lipo Tool to merge both binary files (i386 + armv6/armv7) into one Universal final product.
lipo -create "${DEVICE_DIR}/${FMK_NAME}" "${SIMULATOR_DIR}/${FMK_NAME}" -output "${INSTALL_DIR}/${FMK_NAME}"
rm -r "${WRK_DIR}"
open "${INSTALL_DIR}"
-
Run一下這個test schema剔难。成功之后會open當前的文件胆屿,F(xiàn)ramework庫就完成了。拖到工程中即可使用偶宫。
Paste_Image.png