美文网首页Python
利用Gradle+Python3自动打包Android APK上

利用Gradle+Python3自动打包Android APK上

作者: binlees | 来源:发表于2018-01-31 13:03 被阅读0次

    利用Gradle+Python3自动打包Android APK上传到蒲公英。

    面对每次都要打包一个版本发布给测试,都要手动打包签名~然后登录上传文件。这些繁琐的事情。于是就想到一句很经典的话,(人生苦短,我用Pyhton),我本身也不是熟悉Python,写的都是小玩小闹的小白,但是功能是实现的了。能自己在开发的时候用上,自己还是感到挺欣慰的。

    首页感谢蒲公英官方Api地址提供这个平台。

    开始

    第一步:

    首页需要在你工程build.gradle下面配置你打包的签名。如图下图所示,如果你不需要签名(可以忽略这一步)

    1

    在build.gradle的android{}里面配置你的App 签名,此处配置的release版本。

    2

    好,到这里你工程的配置已经完毕。接下来第二步是利用gradle打包。gradle命令。没有用过gradle命令的小伙伴可以自行去补给一下知识哦。

    第二步:

    利用gradle打包。进入打包工程目录你会找到一个gradlew的文件,你以后会它来进行打包。

    3

    利用终端进入跟这个文件同等目录,执行 ./gradlew -v,检查你的gradle配置是否可以运行。

    4

    下面列举一些Mac电脑下使用的命令,windows电脑执行命令的时候(去掉前面的./):

    ./gradlew clean        (clean project)

    ./gradlew assembleDebug     ( 打包测试版本)

    ./gradlew assembleRelease (打包正式版本)

    ./gradlew installDebug  ( 安装测试版本)

    ./gradlew installRelease  (安装正式版本)

    注:如果执行上面的命令出现了bash: ./gradlew: Permission denied的问题,说明权限有问题,这时候直接执行命令 chmod +x gradlew


    好的,到这里你已经可以利用gradle打包啦!!!打包好的apk默认路径在工程app目录下的build下的outputs下面。如下图:

    5

    第三步:

    开始写Python文件将之前打包好的文件长传到蒲公英平台。先配置好你点的Python的环境。下图是上传的代码,是不是很简单。

    python,利用file读取到本地的文件,使用requests post上传文件。

    apk_file_path:是你build生成.apk的路径,例如(/Users/Bingo/APK/Test.apk)

    key:是你蒲公英给你的key值

    6

    等待结果,到此结束啦。

    # -*- coding:UTF-8 -*-

    import os

    import os.path

    import requests

    import json

    #配置项目地址

    #配置项目地址

    #projectPath = "/home/bingo/xxx"

    #配置项目地址

    #配置项目地址

    api_key = "xxx"

    url = "https://www.pgyer.com/apiv2/app/upload"

    print("开始执行文件apk上传到蒲公英")

    os.chdir(projectPath)

    os.system('pwd')

    #防止没有权限,授权

    os.system('chmod +x gradlew')

    #build项目

    print("开始build工程...请稍等.")

    os.system('./gradlew clean')

    os.system('./gradlew assembleMagicboxDebug')

    buildPath = projectPath + "/app/build/outputs/apk/magicbox/debug"

    print(buildPath)

    #得到该文件夹下所有的文件

    dir_files=os.listdir(buildPath)

    for f in dir_files:

    print(f)

    if f.endswith('.apk'):

    print("包含apk文件")

    outFilePath = buildPath + '/' + f

    print(outFilePath)

    fileHas = os.path.isfile(outFilePath)

    if fileHas:

    print("build生成的文件存在.")

    print("开始执行文件apk上传到蒲公英,请耐心等待~~")

    apkFile = {'file':open(outFilePath,'rb')}

    param = {"_api_key":api_key,

    "buildInstallType":'2',

    "buildPassword":'123465',

    "buildUpdateDescription":''}

    req = requests.post(url, files=apkFile, data=param, verify=False)

    #res = req.content

    res = req.text

    print(res)

    try:

    print("开始执行返回解析的数据")

    result = json.loads(res)

    print("===================================")

    print("===================================")

    print(result)

    code = result['code']

    except Exception as e:

    print(e)

    print("sorry data param error")

    else:

    print("解析数据成功")

    if(code == 0):

    print("上传文件成功啦~")

    else:

    print("对不起,上传文件失败")

    finally:

    print("脚本执行完毕")

    else:

    print("文件不存在~~~")

    相关文章

      网友评论

        本文标题:利用Gradle+Python3自动打包Android APK上

        本文链接:https://www.haomeiwen.com/subject/scjkzxtx.html