美文网首页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