iOS 打包framework

以JPush為例:

1. 創(chuàng)建framework工程

屏幕快照 2018-01-24 下午6.23.18.png

2.拖入資源,暴露header文件,添加依賴庫

屏幕快照 2018-01-24 下午6.23.41.png
1.png

2.工程配置

2.1設(shè)置CPU架構(gòu)類型

2.png

2.2設(shè)置最低版本支持

3.png

2.3.1設(shè)置打包類型為靜態(tài)庫

6.png

2.3.2設(shè)置打包類型為靜態(tài)庫

5.png

3.添加腳本

3.1點擊工程目錄 左下邊的?按鈕即可

7.png

3.2添加依賴庫

8.png

3.3點擊?添加腳本資源,腳本內(nèi)容放入"Run Script"中即可

9.png

// 最后貼上腳本

#!/bin/sh
#要build的target名
TARGET_NAME=${PROJECT_NAME}
if [[ $1 ]]
then
TARGET_NAME=$1
fi
UNIVERSAL_OUTPUT_FOLDER="${SRCROOT}/${PROJECT_NAME}/"
#創(chuàng)建輸出目錄,并刪除之前的framework文件
mkdir -p "${UNIVERSAL_OUTPUT_FOLDER}"
rm -rf "${UNIVERSAL_OUTPUT_FOLDER}/${TARGET_NAME}.framework"
#分別編譯模擬器和真機的Framework
xcodebuild -target "${TARGET_NAME}" ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphoneos BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" clean build
xcodebuild -target "${TARGET_NAME}" ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphonesimulator BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" clean build
#拷貝framework到univer目錄
cp -R "${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${TARGET_NAME}.framework" "${UNIVERSAL_OUTPUT_FOLDER}"
#合并framework,輸出最終的framework到build目錄
lipo -create -output "${UNIVERSAL_OUTPUT_FOLDER}/${TARGET_NAME}.framework/${TARGET_NAME}" "${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${TARGET_NAME}.framework/${TARGET_NAME}" "${BUILD_DIR}/${CONFIGURATION}-iphoneos/${TARGET_NAME}.framework/${TARGET_NAME}"
#刪除編譯之后生成的無關(guān)的配置文件
dir_path="${UNIVERSAL_OUTPUT_FOLDER}/${TARGET_NAME}.framework/"
for file in ls $dir_path
do
if [[ ${file} =~ ".xcconfig" ]]
then
rm -f "${dir_path}/${file}"
fi
done
#判斷build文件夾是否存在,存在則刪除
if [ -d "${SRCROOT}/build" ]
then
rm -rf "${SRCROOT}/build"
fi
rm -rf "${BUILD_DIR}/${CONFIGURATION}-iphonesimulator" "${BUILD_DIR}/${CONFIGURATION}-iphoneos"
#打開合并后的文件夾
open "${UNIVERSAL_OUTPUT_FOLDER}"
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 制作 .framework 靜態(tài)庫的步驟: 4、把 Podfile 中所有庫注釋掉然后 pod install,然...
    卡丁車手閱讀 2,572評論 0 1
  • 最近,稍微看了一下iOS的打包framework,發(fā)現(xiàn)網(wǎng)上的教程都是比較老的,所以整合了一下,使用了xcode8....
    乾坤醉心塵閱讀 1,163評論 0 0
  • 一、概念了解1.什么是庫?庫是共享程序代碼的方式,一般分為靜態(tài)庫和動態(tài)庫。 2.靜態(tài)庫和動態(tài)庫的區(qū)別靜態(tài)庫:鏈接時...
    空白_girl閱讀 735評論 2 2
  • 我們在iOS開發(fā)中經(jīng)常會導入一些Framework,那么今天我們就自己動手打包一個Framework 首先我們來新...
    zdl閱讀 453評論 0 0
  • 清風幾許,人聲三兩。 窗明幾凈,一心清歡。
    葉之聲閱讀 306評論 0 1

友情鏈接更多精彩內(nèi)容