iOS自动化打包

204 阅读1分钟

6. 消息通知

打包成功的消息:

成功上传后,对应的平台一般都有webhook,消息通知机制,每个平台不一样,这里就不介绍了。

如果是钉钉的,fastlane 已有插件实现发送消息(链接)。

在执行过程中如果有失败,会调用 fastlane 文件里下面这个方法:

# 在fastlane里
error do |lane, exception|
# 这里可以把消息抛到对应的平台,
slack(message: "App successfully released!")
end

slack相关的参数参考链接

7. 证书配置

证书安装到本机,在xcode上运行没有问题,那么这里基本不会有问题,如果需要指定证书,可以使用方法 [update_code_signing_settings](<http://docs.fastlane.tools/actions/update_code_signing_settings/#update_code_signing_settings>)来更新相应的配置,这步很简单。

8. 使用fastlane

文档上介绍的使用方法:

# 使用下面的命令格式执行
# [lane-name]是在Fastfile文件里写的方法
# opt:$1 是参数,通过key:value的形式传入,在Fastfile里通过options[key]的方式获取
bundle exec fastlane [lane-name] opt:$1 --env [env_name]

比较方便的使用方法:

一串长长的命令,虽然可以让 iterm 记住,但是不是所有的人都使用它。写个 sh 脚本来简化调用,也可以避免出错:

\

| #!/bin/bash # -c: 消息渠道 1是钉钉,``# -e: 环境配置,0是develop,1是inhouse channelNames=(``"全部" "钉钉" )``envNames=(``"企业包" "开发包"``) channel=0``envType=0 if [ -n ``"$1" ] ; ``then``    ``while getopts 'c:e:' opt``    ``do``        ``case $opt ``in``            ``c)``                ``channel=$OPTARG``                ``;;``            ``a)``                ``archive=$OPTARG``                ``;;``            ``e)``                ``envType=$OPTARG``                ``;;``        ``esac``    ``done``    ``if [ $envType == 0 ] ; ``then``            ``env``=develop``    ``else``            ``env``=inhouse``    ``fi``fi echo "消息发送渠道:$channel ${channelNames[$channel]}"``echo "打包环境:$envType ${envNames[$envType]}"``echo "使用环境文件 $env" bundle ``exec fastlane archive channel:$channel --``env $``env |