##!/bin/bash -ilex
#set -u
set +v
set +xe
#set +x
#注意:腳本目錄和xxxx.xcodeproj要在同一個目錄受啥,如果放到其他目錄均牢,請自行修改腳本毅桃。
#要build的target名
TARGET_NAME=CCPiPhoneSDK
#################################
PROJECT_NAME=$TARGET_NAME
### 打包模式 Debug/Release 默認是Release
DEVELOPMENT_MODE=Release
SCRIPT_DIR=$(pwd)
PROJECT_DIR=$SCRIPT_DIR
BUILD_DIR=$SCRIPT_DIR/Build
#真機build生成的頭文件的文件夾路徑
DEVICE_DIR_INCLUDE=./${PROJECT_NAME}/Device
#真機build生成的.a文件路徑
DEVICE_DIR_A=${BUILD_DIR}/${DEVELOPMENT_MODE}-iphoneos/lib${PROJECT_NAME}.a
#模擬器build生成的.a文件路徑
SIMULATOR_DIR_A=${BUILD_DIR}/${DEVELOPMENT_MODE}-iphonesimulator/lib${PROJECT_NAME}.a
#目標文件夾路徑(也就SDK的文件:.a文件 和 頭文件)
INSTALL_DIR=${BUILD_DIR}/Products/${PROJECT_NAME}
#目標頭文件的文件夾路徑
INSTALL_DIR_Headers=${BUILD_DIR}/Products/${PROJECT_NAME}/Headers
#目標.a路徑
INSTALL_DIR_A=${BUILD_DIR}/Products/${PROJECT_NAME}/lib${PROJECT_NAME}.a
printlog () {
TIME=$(date +%F_%T)
if [ $1 == "info" ];then
echo -e "\n[$TIME][INFO] $2 \n"
elif [ $1 == "error" ];then
echo -e "\n[$TIME][ERROR] ****** $2 ******\n"
elif [ $1 == "warn" ];then
echo -e "\n[$TIME][WARN] $2 \n"
else
echo -e "\nprintlog parameter error.\n"
fi
}
check_result() {
if [ $? -eq 0 ];then
printlog info "$* 成功"
else
printlog error "$* 失敗"
exit 250
fi
}
###################################################################
info () {
printlog info "Current TarGet_Name: $TARGET_NAME"
printlog info "打包模式: $DEVELOPMENT_MODE"
printlog info "工程名稱: $PROJECT_NAME"
printlog info "腳本路徑: $SCRIPT_DIR"
printlog info "工程路徑: $PROJECT_DIR"
printlog info "Build路徑: $BUILD_DIR"
printlog info "真機build生成的頭文件的文件夾路徑: $DEVICE_DIR_INCLUDE"
printlog info "真機.a路徑: ${DEVICE_DIR_A}"
printlog info "模擬器build生成的.a文件路徑: $SIMULATOR_DIR_A"
printlog info "SDK的文件夾路徑: ${INSTALL_DIR}"
printlog info "頭文件的文件夾路徑: ${INSTALL_DIR_Headers}"
printlog info "目標.a路徑: ${INSTALL_DIR_A}"
}
###################################################################
ready() {
printlog info "編譯前準備..."
sleep 3
printlog info "判斷${BUILD_DIR}是否存在,存在即刪除."
if [ -d "${BUILD_DIR}" ]
then
rm -rf "${BUILD_DIR}"
fi
printlog info "判斷${INSTALL_DIR} 是否存在零远,存在即刪除.并重新創(chuàng)建目錄${INSTALL_DIR}"
if [ -d "${INSTALL_DIR}" ]
then
rm -rf "${INSTALL_DIR}"
fi
mkdir -p "${INSTALL_DIR}"
printlog info "準備完成."
}
compile () {
###################################################################
printlog info "編譯開始..."
#echo "======盒子已經(jīng)準備好了,開始生產(chǎn).a 并合成裝到盒子里吧======"
#build之前clean一下
xcodebuild -target ${target_Name} -configuration ${development_mode} -sdk iphonesimulator clean
xcodebuild -target ${target_Name} -configuration ${development_mode} -sdk iphoneos clean
printlog info "模擬器build"
xcodebuild -target ${TARGET_NAME} -configuration ${DEVELOPMENT_MODE} -sdk iphonesimulator #1>/dev/null
check_result "模擬器build"
printlog info "真機build"
xcodebuild -target ${TARGET_NAME} -configuration ${DEVELOPMENT_MODE} -sdk iphoneos #1>/dev/null
check_result "真機build"
printlog info "編譯完成."
sleep 3
###################################################################
printlog info "編譯后操作"
printlog info "復制頭文件到目標文件夾"
cp -R "${DEVICE_DIR_INCLUDE}" "${INSTALL_DIR_Headers}"
printlog info "合成模擬器和真機.a包"
if [ -f "${SIMULATOR_DIR_A}" ];then
lipo -create "${DEVICE_DIR_A}" "${SIMULATOR_DIR_A}" -output "${INSTALL_DIR_A}" 1>/dev/null
check_result "合成"
else
printlog info "將真機包導入目標文件"
cp -R "${DEVICE_DIR_A}" "${INSTALL_DIR}"
fi
# -f 判斷文件是否存在
if [ -f "${INSTALL_DIR_A}" ];then
printlog info "驗證合成包是否成功"
lipo -info "${INSTALL_DIR_A}"
check_result "驗證"
fi
printlog info "本次任務完成"
printlog info "打印最終文件路徑: ${INSTALL_DIR}"
printlog info "列出目錄下所有文件"
ls "${INSTALL_DIR}"
}
info
ready
compile
shell打包
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門峦睡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來翎苫,“玉大人权埠,你說我怎么就攤上這事〖宓” “怎么了弊知?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長粱快。 經(jīng)常有香客問我秩彤,道長,這世上最難降的妖魔是什么事哭? 我笑而不...
- 正文 為了忘掉前任漫雷,我火速辦了婚禮,結果婚禮上鳍咱,老公的妹妹穿的比我還像新娘降盹。我一直安慰自己,他們只是感情好谤辜,可當我...
- 文/花漫 我一把揭開白布蓄坏。 她就那樣靜靜地躺著,像睡著了一般丑念。 火紅的嫁衣襯著肌膚如雪涡戳。 梳的紋絲不亂的頭發(fā)上,一...
- 文/蒼蘭香墨 我猛地睜開眼再沧,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了尊残?” 一聲冷哼從身側響起炒瘸,我...
- 正文 年R本政府宣布贱勃,位于F島的核電站井赌,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏贵扰。R本人自食惡果不足惜仇穗,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望戚绕。 院中可真熱鬧纹坐,春花似錦、人聲如沸舞丛。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽球切。三九已至谷誓,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間吨凑,已是汗流浹背片林。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- android shell打包上傳到蒲公英痕届,如下圖 Microsoft Windows [版本 10.0.1506...
- 打包示例 示例的打包工程和腳本我都放到git上,該示例是使用的企業(yè)證書打的企業(yè)包,如何打包其他類型證書的ipa,我...
- 前言 在上一篇文章中iOS自動化打包發(fā)布(一)介紹了如何使用Fastlane進行自動打包韧献,但是筆者還是認為前期準備...
- 從事Android系統(tǒng)相關開發(fā)工作的coder肯定會是需要在Ubuntu系統(tǒng)下編譯打包工作,包括android研叫,k...
- 東西南北锤窑,征鵬萬里鳴迴。 千山溢彩嚷炉,萬水騰歡渊啰。 同學情似海,一別二十年, 執(zhí)手重聚,溫暖催夢醒绘证。 千里尋夢為探看隧膏,...