iOS Framework自動打包

2021-08-05 21:53:50 字數 3190 閱讀 7223

同事寫的更好,在此奉上;

由於ios framework打包出來是分cpu指令集的,所以需要每個cpu指令集都打包乙個framework,然後使用lipo -create命令將所有cpu指令集合併,才能形成乙個相容所有裝置和模擬器的framework。這樣的打包流程複雜而繁瑣,對於需要經常打包測試的需求來說明顯是不合適的。

使用xcodeaggregate工具中的run script自動進行不同cpu指令集打包,並自動合併所有cpu指令集

mac處理器

指令集裝置

支援裝置

arm64

真機64位

iphone6s、iphone6s plus、iphone6、iphone6 plus、iphone5s、ipad air、 ipad mini2

armv7s

真機32位

iphone5、iphone5c、ipad4(ipad with retina display)

armv7

真機32位

iphone4、iphone4s、ipad、ipad2、ipad3(the new ipad)、ipad mini、ipod touch 3g、ipod touch4

i386

模擬器32位

針對intel通用微處理器32位處理器

x86_64

模擬器64位

針對x86架構的64位處理器

# 工程名稱

# 如果工程名稱和framework的target名稱不一樣的 話,要自定義fmkname

# 例如: fmk_name = "myframework"

fmk_name=$

# 工程info.list路徑

infoplist=$/$/info.plist

# 工程version

version=$(/usr/libexec/plistbuddy -c "print cfbundleshortversionstring" $infoplist)

version=$

# 工程build

build=$(/usr/libexec/plistbuddy -c "print cfbundleversion" $infoplist)

# sdk資料夾名稱

sdkfilepath=$/$_$_$

# 檔案路徑是否存在

if [ -d "$" ]

then

rm -rf "$"

fimkdir -p "$"

# 當前時間

updatadate=`date +%f`

# 將資訊寫入檔案

updatafilename=$/version.md

touch $

echo 版本:$ >> $

echo 編譯:$ >> $

echo 更新: >> $

# sdk目錄

install_dir=$/$.framework

# working dir will be deleted after the framework creation.

wrk_dir=build

device_dir=$/release-iphoneos/$.framework

simulator_dir=$/release-iphonesimulator/$.framework

# -configuration $

# clean and building both architectures.

xcodebuild -configuration "release" -target "$" -sdk iphoneos clean build

xcodebuild -configuration "release" -target "$" -sdk iphonesimulator clean build

# cleaning the oldest.

if [ -d "$" ]

then

rm -rf "$"

fimkdir -p "$"

cp -r "$/" "$/"

# uses the lipo tool to merge both binary files (i386 + armv6/armv7) into one universal final product.

lipo -create "$/$" "$/$" -output "$/$"

rm -r "$"

open "$"

簡單版:

# sets the target folders and the finalframework product.

# 如果工程名稱和framework的target名稱不一樣的話,要自定義fmkname

# 例如: fmk_name = "myframework"

fmk_name=$

# sdk目錄

install_dir=$/products/$.framework

# working dir will be deleted after the framework creation.

wrk_dir=build

device_dir=$/release-iphoneos/$.framework

simulator_dir=$/release-iphonesimulator/$.framework

xcodebuild -configuration "release" -target "$" -sdk iphoneos clean build

xcodebuild -configuration "release" -target "$" -sdk iphonesimulator clean build

# cleaning the oldest.

if [ -d "$" ]

then

rm -rf "$"

fimkdir -p "$"

cp -r "$/" "$/"

# uses the lipo tool to merge both binary files (i386 + armv6/armv7) into one universal final product.

lipo -create "$/$" "$/$" -output "$/$"

rm -r "$"

open "$"

iOS Framework 製作教程

僅支援3.2的xcode 1.開啟xcode建立乙個 cocoa touch static library 工程,並刪除現有的target.2.右鍵project選擇新增new target,在彈出的視窗中找到cocoa 在cocoa右側視窗中選擇 loadable bundle 注意 到這步的時候...

iOS Framework 製作教程

我們使用一種變通的方法來製作 ios framework,廢話不多說,上步驟 1.開啟xcode建立乙個 cocoa touch static library 工程,並刪除現有的target.2.右鍵project選擇新增new target,在彈出的視窗中找到cocoa 在cocoa右側視窗中選擇...

用cmake生成ios framework庫

cmake ios framework 2019 5 5 如果你開發了一套c 要在android和iphone兩種手機上執行,就要在分別編譯android和iphone兩個平台下的動態庫。android開發目前是用 android studio sdk ndk iphone開發是用xcode.當你增...