iOS SDK開發常用命令

lipo

SDK開發中最常用的指令。

1. 查看庫包含的架構信息

lipo -info  /framework路徑/xxx.framework
cd framework所在的目錄
lipo -info xxx.framework

2. 合併多個架構

將模擬器x864、i386 和 真機 armv7架構、真機 arm64架構 合併到一起。

lipo -create 庫1 庫2 -output  合併庫

這個一般不用,命令比較麻煩。

如果需要將不同的幾個沒關係的庫打包成一個庫(蘋果最多支持6合1),這是一種合併方式,但是項目裏不常用,沒必要。

如果是打包一個庫,合併模擬器合真機的架構,最好是在Xcode裏添加腳本,再打包出合併的庫。將各架構的庫打出來再合併太麻煩了。

在項目的Build Phases中,新建一個Run Script,添加如下腳本:

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

這段腳本是網上找的。

3. 拆分庫

lipo 待拆分庫 -thin 要被拆分的庫 -output 新庫

這個一般不用。

上線前去除模擬器的架構,可以使用這個方式,但是最好別用,太麻煩。再Xcode中添加腳本,打包上線直接會去掉模擬器架構。

file

判斷framework是動態庫還是靜態庫

file /framework路徑/xxx.framework

顯示“Mach-O 64-bit dynamically linked shared library arm64”爲動態庫。

顯示“current ar archive random library” 或“current ar archive ”。爲靜態庫。

otool

1. 查看庫包含的架構信息

otool -o /framework路徑/xxx.framework/xxx

2. 查看當前app或庫所使用的iOS系統的動態庫

ipa -> show in finder->Payload->xxx.app/xxx,打開可執行文件

otool -L  /路徑/xxx/Payload/xxx.app/xxx
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章