iOS 码农 偷懒记录
作为一个程序猿, 我们大部分情况下不是这样
更没有这样
偶尔会这样
最期望这样
在自己眼里永远是最帅的这样
怎么保证我们时时刻刻都这么帅,那就得想办法偷懒啊,不是真的偷懒,是让电脑去帮我们干我不想去干而电脑能处理的事.下面全是iOS程序猿可能会了解到的东西,其他猿类请绕行......
做前端的你是不是遇到过测试同学过来找你,那谁谁,给我打一个测试环境的包,过一会儿,给我打一个线上环境的包,或者做后端的同学要联调自己的接口找你要一个他本地环境的包,怎么办........你还在写一个未完成的功能.......哦,别着急下边先教你解决QA的事儿........
一个iOS程序可能需要用到Xcode(必备),jenkins/Xcode server,对应APPID下的证书,最少是这些......
安装好相应的工具,Xcode需要ExportOptions.plist文件,可以用Xcode archive导出一份,放到工程根目录下边就行了
我这是jenkins目录下边看到的导出来的包和多出来的token文件,ipa_build是自己写的脚本,双击就可打包,也十分方便
自己写的本地打包脚本,添加了可执行权限,直接双击运行,然后就等着桌面上自己出来一个ipa文件
下载jenkins,我的直接在下载文件夹,你可以换地方,也可以下载PKG文件直接安装,
运行jenkins,我是用的命令行
安装完了jenkins,开始配置,既然是教你偷懒,当然能不干的就不干
这里只需要安装插件,github的或者gitlab,其他一概不用管
我的是配置完了,新安装的没有右边的工程,需要你新建
新建一个工程
进去之后只需要配置https的链接然后点下边add输入用户名密码(这种方式最省事)
如果不报错的话进行下一步,添加脚本,脚本可以自己写,也可以用网上的,但是为了偷懒,就需要轮子
可能用到下边三个轮子:
JQ,解析JSON用的shell命令行工具
fir,打包,上传
fastlane,打包,发版,上传AppStore.......可以有很多操作,功能十分强大
添加自己的打包命令,然后这一摊事儿就不用自己管了,打包完了会自动发送企业微信提醒所有人去下载新的测试包
命令行解析
1: fastlane gym --export_method ad-hoc --output_name (你自己的工程名) --clean
这一步是用fastlane清理并打包,纯粹为了省事,打包后ipa地址在工程根目录,反正是在jenkins目录下边
2: curl -F "file=@$WORKSPACE/(你自己的工程名).ipa" -F "uKey=(蒲公英的key)" -F "_api_key=(蒲公英的key)" https://www.pgyer.com/apiv1/app/upload
这一步是上传到蒲公英,Curl命令执行的操作,后边还有两处Curl发起请求的命令
或者上传fir
fir login ${fir_token}
fir me
fir publish "$WORKSPACE/(工程名).ipa"
这个就需要上传fir了
3: curl -o token.txt -s https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=(你的企业微信id)&corpsecret=(你的企业微信密匙)
这一步是为了让jenkins打包完了在企业微信通知相应的人而获取企业微信的token,curl发起一个get请 求拿到一个JSON的字符串,为了自己能看到都是啥字段,让它写入到了一个token.txt文件中.
token=$(cat token.txt |jq -r '.access_token')
这一步是用JQ解析JSON,cat命令读取token.txt,JQ解析access_token,并且生成一个名字叫token的参数
echo "这里是一个文件的内容 $token"
然后打印了一下,看看是不是我想要的..........还有最后一步
4: curl -H "Content-Type: application/json" -X POST -d '{"touser" : "","toparty" : "(需要给哪个群组的人发)","totag" : "","msgtype" : "text","agentid" : 1000003,"text" : {"content" : "i测试包'$bundle_version'版本已于'$current_data'打包成功,下载地址点击跳转蒲公英下载。"},"safe":0}' https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$token
curl发起一个Post请求发送一个群组的提醒到企业微信提醒某些人去下载最新的测试包.
企业微信相应的API在这看
最后解决一下环境问题,我在判断Debug的情况下添加了一个可选环境的页面,Release环境是看不到的
可以自己选线上生产环境或者本地某些人的自建地址等等,点击自动切换,清空登录信息缓存
终于解决了问题可以偷懒了,然鹅,会
就怕改需求啊...........
最后程序猿成了香饽饽,能让大妈看上真不容易..........
至于为啥吃香,就是下边的原因吧
抽空写了一个这个,请各位猿类疯狂的打call吧,我要去码了.........
J_Lee
校验提示文案
执手何须问年华
校验提示文案
Gravityman
校验提示文案
请叫我小左
校验提示文案
伊森-
这些符号啊,- “ . = ()是随便编的还是有规矩的啊?
校验提示文案
僵尸凡
校验提示文案
小丶幸福
校验提示文案
jammaj
校验提示文案
LesliesForever
校验提示文案
耗子老鼠喵喵喵
校验提示文案
可爱的排骨
校验提示文案
lwdaq
校验提示文案
煮刃
校验提示文案
不作不死
校验提示文案
Chaosss7
校验提示文案
野区歌神
校验提示文案
让我先冷静一下
校验提示文案
笛颂悠扬
校验提示文案
kevingame
校验提示文案
叶枫
校验提示文案
欧阳2014
校验提示文案
ChanChinCheung
校验提示文案
有红鲤鱼
校验提示文案
exsky7
校验提示文案
Ricepig
校验提示文案
花枝鼠
校验提示文案
jammaj
校验提示文案
UND3R_5H4FT
校验提示文案
小丶幸福
校验提示文案
伊森-
这些符号啊,- “ . = ()是随便编的还是有规矩的啊?
校验提示文案
lwdaq
校验提示文案
执手何须问年华
校验提示文案
darkengine
校验提示文案
IvanTse
校验提示文案
欧小文
校验提示文案
叶枫
校验提示文案
kevingame
校验提示文案
Gravityman
校验提示文案
请叫我小左
校验提示文案
僵尸凡
校验提示文案