准备看的ios专题iOS开发知识小集

iOS 一键打包上传Automator+shell

2018-07-09  本文已影响88人  sdupidBoby

1. shell

文件夹buildScript

我这里在工程(demo)根目录下新建了一个buildScript文件夹用来存放

文件夹autoBuild

这个文件会在执行脚本后自动生成,用来存放

1.1 xcodebuild:

查看功能参数介绍命令: man xcodebuild
查看targets,scheme命令: xcodebuild -list

基本配置:(由于我把脚本放在了项目根目录下,这里只需要改一下scheme)

BuildConfiguration=Release # 打包Release or Debug
SCHEMENAME=demo      # 项目scheme名 这里为demo
SOURCEPATH=$PWD    # 项目路径

DATE=`date +%Y%m%d_%H%m`
# 打包目标路径
IPAPATH=$SOURCEPATH/autoBuild/$DATE
IPANAME=$SCHEMENAME_$DATE.ipa
clean:
#  clean
xcodebuild clean \
-workspace $SOURCEPATH/$SCHEMENAME.xcworkspace \
-scheme ${SCHEMENAME} \
-configuration ${BuildConfiguration}
if [[ $? != 0 ]]; then
    exit
fi
archive:

这里是xcode9.3,不再使用xcrun了.

# archive
xcodebuild archive \
-workspace $SOURCEPATH/$SCHEMENAME.xcworkspace \
-scheme ${SCHEMENAME} \
-configuration $BuildConfiguration \
-archivePath $IPAPATH/${SCHEMENAME}.xcarchive

if [ -e $IPAPATH ]; then
    echo "build OK"
else
    echo "build fail"
    exit 1
fi
-exportArchive:
# 导出 ipa包
xcodebuild -exportArchive \
-archivePath $IPAPATH/${SCHEMENAME}.xcarchive \
-exportPath ${IPAPATH}/${SCHEMENAME} \
-exportOptionsPlist ${SOURCEPATH}/buildScript/AppStoreExportOptions.plist

if [ -e ${IPAPATH}/${SCHEMENAME} ]; then
    osascript -e 'display notification "打包成功!" with title "${IPAPATH}/${SCHEMENAME}"'
    echo "Archive OK"
    open ${IPAPATH}/${SCHEMENAME}
else
    echo "Archive fail"
fi

打包成功后,执行osascript推送通知到mac桌面上,然后用finder打开ipa路径

1.2 validate + upload :

使用altool发布到itunes connect中
altoolPath="/Applications/Xcode.app/Contents/Applications/Application Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Versions/A/Support/altool"
appleid=xxx@.163.com
applepassword=xxx

#validate
"$altoolPath" --validate-app \
-f "${IPAPATH}/${SCHEMENAME}/${IPANAME}"\
-u "$appleid"\
-p "$applepassword"\
-t ios \
osascript -e 'display notification "Release To AppStore" with title "Validate Complete!"'

#upload
"$altoolPath" --upload-app \
-f "${IPAPATH}/${SCHEMENAME}/${IPANAME}" \
-u "$appleid" -p "$applepassword" \
-t ios \
--output-format xml
osascript -e 'display notification "Release To AppStore" with title "Upload Complete!"'

如需上传ipa到其他平台,如fir,蒲公英,在这里添加上传脚本就行

2. Automator

iOS 上有Workflow,Mac有Automator。
这里Automator + shell甚至都不用,用终端敲命令,直接一键完成


csdn参考链接
  1. command + s保存Workflow
  2. 最后打开Xcode查看是否有这个 service



总结:

在学习shell的过程中,准备写点东西练习,于是接触到打包工具xcodebuild,altool上传,fir等,继而接触到Mac的Automator 和 iOS中的Workflow。
所以很多不熟练的知识点都应该亲自去实现一遍,这样会有很多触类旁通的机会。

本文Workflow,shell的github链接

Automator官方链接
altool官方链接

上一篇 下一篇

猜你喜欢

热点阅读