问题描述
当我们想打包一个IPA
,为自己内部测试使用,或者IPA
部署自己服务器,这时候我们使用shell脚本就方便点了。
- Xcode scheme run set release,
- device set generic iOS device,
- run done
product 文件夹下就有我们想要的东西了
编写好shell
脚本,自动化快速为我们打包
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
| #!/bin/sh
echo '\033[32m xcodebuild----------------------------start-------------------------- \033[0m'
userName='ysc' appName='Vostic' svnVersion='1.1.1' serverConfig='BeiJing'
debugMode='Release' sandbox='eynjaojbmfxqukcbinxdlfasvkpi'
savePath=/Users/${userName}/Desktop/xcodebuild
svnCheckPath=/Users/${userName}/Desktop/iOS/Vostic svnLocalPath=${svnCheckPath}/${svnVersion} svnRemotePath=svn://yeshichang@10.1.6.1/dev/issue/iOS/Vostic/2019/${svnVersion}
echo "checkout svn $svnVersion" if [ ! -d "$svnLocalPath" ]; then cd ${svnCheckPath} svn checkout ${svnRemotePath} fi
echo '\033[32m xcodebuild---------------------------build--------------------------- \033[0m'
read -p "Build version:" buildVersion
if [ -d "$svnLocalPath/$buildVersion" ]; then echo "check $buildVersion is exists!" exit 0 fi
read -p "Git version:" gitVersion
startTime=$(date +%s)
if [ ! -d "$savePath" ]; then mkdir "$savePath" fi
if [ ! -d "$savePath" ]; then echo "check $savePath is no exists!" exit 0 fi
cd ${savePath}
rm -rf *
mkdir "$savePath/$buildVersion"
cp -rf /Users/${userName}/Library/Developer/Xcode/DerivedData/${appName}-${sandbox}/Build/Products/${debugMode}-iphoneos/${appName}.app ${savePath}
cp -rf /Users/${userName}/Library/Developer/Xcode/DerivedData/${appName}-${sandbox}/Build/Products/${debugMode}-iphoneos/${appName}.app.dSYM ${savePath}/${buildVersion}
echo '\033[32m xcodebuild----------------------------ipa-------------------------- \033[0m'
mkdir Payload cp -rf ${appName}.app Payload/${appName}.app cp Icon.png ${appName}/iTunesArtwork zip -r ${appName}.ipa Payload iTunesArtwork
rm -rf Payload rm -rf ${appName}.app
packageName=iOS_${buildVersion}_$(date "+%Y%m%d")_${serverConfig}_${gitVersion:0:10} mv ${appName}.ipa ${packageName}.ipa mv ${packageName}.ipa ./${buildVersion}
echo '\033[32m xcodebuild----------------------------zip-------------------------- \033[0m'
cd ${savePath}/${buildVersion}
zip -r -m ${buildVersion}.zip ./
cd ..
if [ ! -d "$svnLocalPath/$buildVersion" ]; then mv ${buildVersion} ${svnLocalPath} fi
echo '\033[32m xcodebuild----------------------------svn-------------------------- \033[0m'
cd ${svnLocalPath}
svn cleanup svn add ${buildVersion} svn commit -m "提交iOS测试包$buildVersion" ${buildVersion}
endTime=$(date +%s) time=$(($endTime - $startTime))
minute=$(($time/60)) second=$(($time%60))
echo "\033[44;37m 总用时:${minute}分${second}秒 \033[0m" echo '\033[32m xcodebuild----------------------------end-------------------------- \033[0m'
exit 0
|