自制framework
綜合了王大仙和網(wǎng)絡上幾個人的方法芜壁,成功自制Framework
參考簡書:http://www.reibang.com/p/8fcd89bb7b0b
PS:我們需要將公開的頭文件從Project中拖入Public恐仑,至于是否需要將私有的頭文件拖入Private,我覺得直接放在Project中即可润樱,若是Private中有頭文件践啄,打包以后的framework中會多出一個Private的文件夾包含著放入Private的頭文件,不過我覺得如果是私有最好還是不要讓別人看到她紫。事實上只需要public和project兩個文件夾就夠了 我不明白為啥需要private硅堆,因為private打包出framework后也是公開的,和public是一樣的贿讹,只是名字不同(個人理解渐逃,如有不同,還請賜教)民褂。
王大仙寫的很詳細 不過多贅述茄菊。
另:王大仙總結(jié)的修改
Build Setting -> Dead Code Stripping 改為NO
Build Setting -> Mach-O Type改為 Static Library
Build Setting -> Build Active Architecture Only 改為 NO
Build Setting -> Architectures 添加armv7s架構(gòu)
Build Setting -> Other C flags? 添加-fembed-bitcode ? ?(使SDK支持bitcode)
Build Phases -> Headers 將公開的頭文件從Project中拖入Public
腳本保留一下,以后可能用得到赊堪。
注意面殖,要先build 生成一個simulator版和真機版的framework,再運行腳本哭廉,不然會報錯脊僚,找不到文件路徑。
所以 實際上我們至少需要build 3次遵绰。
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
解決導入時的路徑問題:
開發(fā)環(huán)境:xcode9 Version 9.0 (9A235)
iOS系統(tǒng):iOS11
不知道為什么辽幌,往測試工程中拖入framework的時候,buildPhrase里面的link binary with libraries總是為空,我托的時候還特意選了target椿访。如下圖乌企,這個地方必須有你的framework,才可以引入成玫。實在沒有加酵,你就手動拖進去。