#author by CooFree
#脚本所在的目录必须和WorkSpace或者说工程主目录所在的目录在同一个目录层级中
#在终端中cd到项目路径下,输入sh autobuild.sh运行脚本,按照步骤输入相应的序号点击回车键即可完成打包选择(如果运行的时候出现Permission denied,请先在终端中执行chmod a+x *.sh再运行即可
#运行完成后后项目里会多了一个autoExportIpa文件夹,打开文件夹即可找到ipa包。
#配置打包方式Release或者Debug
#工程名字
Project_Name="自动化打包" #这里填的是工程名字,一般工程名都是英文,我这里是为了方便起了中文名字
#在终端中提示 根据输入的序号不同来选择是打debug包还是release包
echo "~~~~~~~~~~~~选择打包方式(输入序号)~~~~~~~~~~~~~~~"
echo " 1 Debug"
echo " 2 Release"
read parameter
sleep 0.5
method="$parameter"
if [ -n "$method" ]
then
if [ "$method" = "1" ]
then
Configuration="Debug"
elif [ "$method" = "2" ]
then
Configuration="Release"
else
#如果是其他输入,则在终端中提示参数无效并退出
echo "参数无效...."
exit 1
fi
fi
#基础主路径
BUILD_PATH=./autoExportIpa
#配置打包结果输出的路径
#AdHoc版本
AdHocPrijectOutPath=${BUILD_PATH}
ADHOCExportOptionsPlist="./auto.plist" #这里的auto.plist是和在工程目录下新建的plist文件是一样的
#这里都执行命令中是在xcworkspace工程中执行的,如果工程不是xcworkspace,可以把-workspace的内容删掉
#首先清除原来的文件夹
rm -rf ${BUILD_PATH}
#创建文件夹,路径需要一层一层创建,不然会创建失败
mkdir ${BUILD_PATH}
#编译文件
#mkdir ${CONFIGURATION_BUILD_PATH_ADHOC}
#打包输出的文件
mkdir ${AdHocPrijectOutPath}
#在终端中提示 根据输入的序号不同,打包成不同版本的ipa 因为项目中是否使用CocoaPods编译时的路径是不一样的
echo "~~~~~~~~~~~~项目中是否使用CocoaPods~~~~~~~~~~~~~~~"
echo " 1 是"
echo " 2 否"
# 读取用户在终端中输入并存到变量里
read parameter
sleep 0.5
method="$parameter"
# 判读用户是否有输入
if [ -n "$method" ]
then
if [ "$method" = "1" ]
then
#编译-------项目中使用了CocoaPods
xcodebuild archive -workspace ${Project_Name}.xcworkspace -scheme $Project_Name -configuration $Configuration -archivePath ${BUILD_PATH}/$Project_Name-adhoc.xcarchive
elif [ "$method" = "2" ]
then
#编译-------项目中未使用CocoaPods
xcodebuild archive -scheme $Project_Name -configuration $Configuration -archivePath ${BUILD_PATH}/$Project_Name-adhoc.xcarchive
else
#如果是其他输入,则在终端中提示参数无效并退出
echo "参数无效...."
exit 1
fi
fi
#打包
xcodebuild -exportArchive -archivePath ${BUILD_PATH}/$Project_Name-adhoc.xcarchive -exportOptionsPlist $ADHOCExportOptionsPlist -exportPath ${AdHocPrijectOutPath}
auto.plist内容
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>compileBitcode</key>
<false/>
<key>destination</key>
<string>export</string>
<key>iCloudContainerEnvironment</key>
<string>Production</string>
<key>method</key>
<string>development</string>
<key>provisioningProfiles</key>
<dict>
<key>bundleID名字</key>
<string>profile名字</string>
</dict>
<key>signingCertificate</key>
<string>Apple Development</string>
<key>signingStyle</key>
<string>manual</string>
<key>stripSwiftSymbols</key>
<true/>
<key>teamID</key>
<string>teamID名字</string>
<key>thinning</key>
<string><none></string>
</dict>
</plist>