起因
最近一直在做微信小游戏的开发,但是因为包体限制,写了一些自动化脚本,每次都要跑一遍,刚好微信平台的云开发支持了http上传包体,以及http访问等功能,索性做成语音发布
环境
这里介绍的发布环境依靠iOS的捷径运行在Mac下编写的Shell 文件,且在同一个网段下
前期准备
Cocos 命令行工具
需要自行填写项目路径
/Applications/CocosCreator.app/Contents/MacOS/CocosCreator --path projectPath
--build "platform=wechatgame;debug=false"
微信IDE 命令行工具
这里路径需要注意,之前因为写成了win下的路径格式导致project.config.json 文件一直找不到
cli -u 1.0.0@/Users/username/demo --upload-desc 'initial release'
自动发送微信
该工具原作者已经删库了,之前看了好几个可以自动发微信消息的工具,但是都不是很适用现在的情况。
有些py工具每次运行都需要扫二维码,而且和Mac下的微信登录是冲突的
该工具支持Alfred 发送微信消息,在查看里面的py源码后发现,作者通过get 和 post请求本地服务实现发送微信消息,所以这样就很简单了
curl -d "userId=$USERID&content=$CONTENT&srvId=0" http://127.0.0.1:52700/wechat-plugin/send-message
微信云服务文件http上传
在推出这个工具前,我们放在CDN上的文件都是手动拖拽上传的… 再加上工具本身不支持文件夹拖拽上传… 极其恶心
先获得微信下发的access_token,然后调用上传的接口,这里用到了jq的解析工具,需要自行安装
tokenResponse=`curl -s "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$APPID&secret=$APPSECRET" | jq '.access_token' | tr -d '"'`
uploadAuth=`curl -s -d '{"env":"'$ENV'", "path":"'$SERVERFILEPATH'"}' "https://api.weixin.qq.com/tcb/uploadfile?access_token=$tokenResponse"`
url=`echo $uploadAuth | jq '.url' | tr -d '"'`
token=`echo $uploadAuth | jq '.token' | tr -d '"'`
authorization=`echo $uploadAuth | jq '.authorization' | tr -d '"'`
file_id=`echo $uploadAuth | jq '.file_id' | tr -d '"'`
cos_file_id=`echo $uploadAuth | jq '.cos_file_id' | tr -d '"'`
uploadRequest=`curl -v -F key=$SERVERFILEPATH -F Signature=$authorization -F x-cos-security-token=$token -F x-cos-meta-fileid=$cos_file_id -F file=@$FILEPATH $url`
echo $uploadfile
命令行工具编写
我们将整个编译过程写成一个shell文件,版本号管理我用的是自增值,每次打包都会加一,如果多人开发再增加git相关的脚本即可
iOS捷径集成
没有捷径可以去App Stroe 搜索捷径
Mac 下共享设置
需要在设置->共享中打开如下设置
不使用ip访问是因为,如果你的路由是DHCP,有可能电脑每次ip都不一致,每次都要调整捷径访问的ip
捷径编写
新建捷径,在ssh工具下填写电脑的主机名、用户及密码
需要source一下配置,我的配置都写在.zshrc中,不然会找不到PATH,然后运行上面写好的脚本即可
设置语音为发布版本