python 脚本实现bugly自动上传符号文件
bugly更新之后,符号文件不再支持拖拽或者选择文件的方式上传了,官方提供了一个上传的工具包,通过buglyqq-upload-symbol.jar实现上传,每次上架app都需要手动去配置相关参数和组装对应的命令行,操作起来有点麻烦,于是使用python写了个简单的脚本,每次只需要把dsym拖拽到指定文件夹 执行python upload.py -v 1.0.0
上传即可
具体操作步骤如下:
1.打开官网下载上传工具包 https://bugly.qq.com/v2/downloads,符号表工具 '3.3.4'
2.解压工具包打开使用说明我们发现整个上传过程就只有一个命令 只需要配置相关参数即可
java -jar buglyqq-upload-symbol.jar -appid <APP ID>
-appkey<APP KEY>
-bundleid <App BundleID>
-version <App Version>
-platform <App Platform>
-inputSymbol <Original Symbol File Path>
-inputMapping <mapping file>
3.编写python脚本,并放在下载的java工具包解压目录,把对应的参数配置齐全,利用 subprocess.Popen来执行命令行
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import argparse
import subprocess
APP_ID = 'xxxxxxx'
APP_KEY = 'a32d0dea-afe4-4904-9dcd-xxxxxxxxxxxxx'
VERSION = ''
BUNDLE_ID = 'com.xxxxx.xx'
PLATFORM = 'IOS'
INPORT_SYMBOL = '符号名称.app.dSYM'
def archive_upload():
cmd = 'java -jar ../buglyqq-upload-symbol.jar -appid %s -appkey %s -bundleid %s -version %s -platform %s -inputSymbol %s' % (
APP_ID, APP_KEY, BUNDLE_ID, VERSION, PLATFORM, INPORT_SYMBOL)
print('开始上传符号文件...')
process = subprocess.Popen(cmd, shell=True)
process.wait()
if process.returncode == 0:
print('符号文件上传成功')
else:
print(f'符号文件上传失败')
def prase_args(options):
global VERSION
if options.version:
VERSION = options.version
archive_upload()
else:
print('请输入版本号')
if __name__ == "__main__":
parser = argparse.ArgumentParser('bugly符号文件上传脚本')
parser.add_argument(
"-v", "--version", help="该选项用来配置上传的符号文件版本号",
metavar="1.0.0")
options = parser.parse_args()
prase_args(options)
4.在XCode中找到对应的符号文件: 符号名称.app.dSYM ,并把该文件复制到脚本同级目录
5.执行python命令输入上传的符号文件版本号
/// 可以通过-h命令来查看支持的功能
python upload.py -h
usage: bugly符号文件上传脚本 [-h] [-v 1.0.0]
optional arguments:
-h, --help show this help message and exit
-v 1.0.0, --version 1.0.0
该选项用来配置上传的符号文件版本号
/// 执行脚本发起上传 等待上传结束
python upload.py -v 1.0.0