1畔况,創(chuàng)建workspace+SDK包
1鲸鹦,在桌面創(chuàng)建一個文件夾
image.png
2,創(chuàng)建一個workspace項目 到 文件夾--->SDKTest
image.png
3跷跪,創(chuàng)建project 選擇 Cocoa Touch FranmeWork
image.png
-
注意:要添加到剛剛創(chuàng)建的workSpace
image.png
4馋嗜,在SDK中添加業(yè)務(wù)代碼,或者測試代碼
image.png
5吵瞻,修改一些配置
-
設(shè)置Build Setting參數(shù)將Build Active Architecture only設(shè)置為NO
image.png -
Mach-o type 修改為Static Librayr
image.png -
設(shè)置Headers葛菇,將要公開的頭文件拖到Public下,要隱藏的放到Private或Project下橡羞,隱藏的頭文件不能被引用,直接拖拽到Public中
image.png
6眯停,在SDKTest.h中將所有要公開的.h文件引入
image.png
7,腳本導(dǎo)出 framwork 創(chuàng)建一個Aggregare
image.png
image.png
8卿泽,創(chuàng)建打包腳本,復(fù)制下面腳本代碼
#!/bin/sh
BIN_DIR="bin"
if [ ! -d "$BIN_DIR" ]; then
mkdir -p "$BIN_DIR"
fi
BIN_DIR_TMP="bin_tmp"
if [ ! -d "$BIN_DIR_TMP" ]; then
mkdir -p "$BIN_DIR_TMP"
fi
cp -af ${BUILT_PRODUCTS_DIR}/${TARGET_NAME}.framework/ ${BIN_DIR_TMP}/${PLATFORM_NAME}-${TARGET_NAME}.framework
cp -af ${BUILT_PRODUCTS_DIR}/${TARGET_NAME}.framework/ ${BIN_DIR}/${TARGET_NAME}.framework
lipo -create $BIN_DIR_TMP/*-${TARGET_NAME}.framework/${TARGET_NAME} -output ${BIN_DIR}/${TARGET_NAME}.framework/${TARGET_NAME}
-
創(chuàng)建腳本文件莺债,并把上面的腳本代碼粘貼進去
image.png
在實際SDK項目開發(fā)中,我們會經(jīng)常隨時打包framwork,為了讓靜態(tài)庫在模擬器和真機都可以正常的運行齐邦,就涉及到如何把一個工程生成的靜態(tài)庫打包以后生成的framework進行合并椎侠。最傳統(tǒng)的方式,通過終端的lipo -create 真機路徑 模擬器路徑 -output 真機路徑 命令措拇,但是太過于麻煩我纪,網(wǎng)上有很多腳本,下面xcodebuild.sh腳本親測可以幫助我們快速合并framwork.
9丐吓,在Build Phases 中添加 New Run Scritpt Phase,通過 sh xcodebuild.sh腳本
image.png
10浅悉, 在Build Settings下配置,刪除arm64架構(gòu)券犁,注意:只配置模擬器的選項仇冯。(Xcode12模擬器build會自動多一個arm64)
image.png
11,選擇真機command+b族操,build一次苛坚,再選擇模擬器build一次,即可得到合并后的framework
(bin_tmp文件中包含的是模擬器或真機色难,bin是合并好的framework)
image.png
12泼舱,使用SDK,測試
-
先導(dǎo)入進來
image.png -
真機和模擬器測試效果
image.png