Android Studio如何配置CURL指令一键打包apk上传至蒲公英

  • 第一步:在所需要打包的模块build.gradle文件中加入如下代码:

     android{
    buildTypes {
    //配置apk名称
    android.applicationVariants.all { variant ->
    variant.outputs.all {
    outputFileName = getApkName()
    }
    }
    }
    }
    android{ } //------------以下代码用于配置一键上传蒲公英----------------
    //获取apk路径
    def getApkFullPath() {
    return rootDir.getAbsolutePath() + "/app/build/outputs/apk/release/" + getApkName()
    } //此处可修改所打包的apk文件名
    def getApkName() {
    return "update-app-example-v${android.defaultConfig.versionName}-${releaseTime()}.apk"
    } //设定添加打包时间
    static def releaseTime() {
    return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC"))
    } //将密钥存在本地 防止泄露 local.properties 在Git的时候不会被上传
    def readProperties(key) {
    File file = rootProject.file('local.properties')
    if (file.exists()) {
    InputStream inputStream = rootProject.file('local.properties').newDataInputStream()
    Properties properties = new Properties()
    properties.load(inputStream) if (properties.containsKey(key)) {
    return properties.getProperty(key)
    }
    } } //描述log
    static def getUpdateDescription() {
    return '1.修复一些bug;\n2.提升用户体验!'
    }
    //执行打包上传任务
    task("uploadApk") {
    doLast {
    def command = "curl -F \"file=@${getApkFullPath()}\" -F \"uKey=${readProperties('pgyer.userKey')}\" -F \"_api_key=${readProperties('pgyer.apiKey')}\" -F \"buildUpdateDescription=${getUpdateDescription()}\" https://www.pgyer.com/apiv2/app/upload"
    try {
    exec {
    ExecSpec execSpec ->
    executable 'curl'
    args = ['-F', "file=@${getApkFullPath()}", '-F', "uKey=${readProperties('pgyer.userKey')}", '-F', "_api_key=${readProperties('pgyer.apiKey')}", '-F', "buildUpdateDescription=${getUpdateDescription()}", "${readProperties('pgyer.uploadurl')}"]
    }
    println "uploadApk success~"
    } catch (Exception e) {
    e.printStackTrace()
    }
    }
    } uploadApk.dependsOn("assembleRelease")
  • 第二步:在项目根目录下local.properties文件中配置如下代码:

    #蒲公英配置  apiKey和userKey替换成自己的就行
    pgyer.apiKey=711ea731f7e59d20a6279a884a2c76f8
    pgyer.userKey=61fedceea73bac2bdda4ac76kl8dbcac0
    pgyer.uploadurl=https://www.pgyer.com/apiv2/app/upload
  • 最后:一键上传即可,如图
 
 
  • 小结:以上是基本配置,如果嫌麻烦可以直接下载Studio插件 ,在Plugin页面之间搜索pgy即可

关于我

微信公众号:infree6 或者直接扫码

Android Studio如何配置CURL指令一键打包apk上传至蒲公英的更多相关文章

  1. Android Studio(十一):代码混淆及打包apk

    Android Studio相关博客: Android Studio(一):介绍.安装.配置 Android Studio(二):快捷键设置.插件安装 Android Studio(三):设置Andr ...

  2. jenkins 之 iOS 打包及上传至蒲公英

    准备条件 iMAC(要 Mac OS 系统,安卓 和 苹果 可以在同一台电脑上打包) xcode 最新版,要已安装对应的开发证书(生成一个 Ad-Hoc 类型的包就有了) brew(当前管理员账户安装 ...

  3. jenkins 之 Android 打包及上传至蒲公英

    准备条件 iMAC,非必须(如果是 安卓 和 苹果 可以在同一台电脑上打包则要 Mac OS 系统的电脑,如果是只是给安卓打包 windows 电脑也是可以的, window 下 需要把 ls 换成 ...

  4. [iOS开发] 使用Jenkins自动打包并上传至蒲公英

    设置构建触发器 Poll SCM H/2 * * * * 设置 构建脚本 # #xodebuild & jenkins 自动构建并上传至pgyer.com #2017年5月9日 # #定义一些 ...

  5. [转]Android Studio系列教程六--Gradle多渠道打包

    转自:http://www.stormzhang.com/devtools/2015/01/15/android-studio-tutorial6/ Android Studio系列教程六--Grad ...

  6. Android Studio系列教程六--Gradle多渠道打包

    Android Studio系列教程六--Gradle多渠道打包 2015 年 01 月 15 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://stormzh ...

  7. Android Studio环境下代码混淆+签名打包

    Android Studio环境下代码混淆+签名打包 作者 Mr_冯先生 关注 2016.08.21 01:10 字数 1040 阅读 734评论 5喜欢 34 注:本文使用的Android Stud ...

  8. android studio+grade配置构建

    Android 构建系统编译应用资源和源代码,然后将它们打包成可供您测试.部署.签署和分发的 APK.android Studio 使用 Gradle 这一高级构建工具包来自动化执行和管理构建流程,同 ...

  9. Android studio gradle配置完整版(转)

    Android studio gradle配置完整版https://my.oschina.net/u/1471093/blog/539075 Android studio 自定义打包apk名 - pe ...

随机推荐

  1. python基础之字符串讲解(下)

    7.swapspace 这个命令是让大小写翻转 s = 'qwerQ' s3 = s.swapcase() print(s3) 8.title 每个隔开(特殊字符或者数字)的单词首字母大写 s = ' ...

  2. Pikachu-CSRF(跨站请求伪造)

    Pikachu-CSRF(跨站请求伪造) CSRF(跨站请求伪造)概述 Cross-site request forgery 简称为“CSRF”,在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一 ...

  3. 管网平差的python程序

    在市政给水管网当中,管网平差的目的是在已知节点流量.管段长度的情况下,求得各管段流量和对应的经济管径.本科生学习阶段了解并掌握管网平差原理及方法是必不可少的环节. 在下面的程序当中,将利用哈代克罗斯法 ...

  4. 为什么delete后磁盘空间没有释放而truncate会释放?

    背景 因项目需求,需要清理一批旧数据,腾出空间给新数据,让同事负责这件事.料想会很顺利,但很快找到我,并告知在postgresql中把一张大的数据表删除掉了,查询表的size并没有改变. 我震惊了,问 ...

  5. MTDDL 美团分布式数据访问中间件(转)

    MTDDL 美团分布式数据访问中间件(转) 原文地址:MTDDL--美团点评分布式数据访问层中间件 因原文文字和图显示有问题,故整理于此,仅供参考. 业界方案 组件 简介 Atlas Qihoo 36 ...

  6. dedecmsV5.7 任意文件上传漏洞修复

    问题文件:在/include/dialog/select_soft_post.php文件 解决方法: 先找到这个文件/include/dialog/select_soft_post.php,找到大概7 ...

  7. js对象数组中的某属性值 拼接成字符串

    js对象数组中的某属性值 拼接成字符串 var objs=[ {id:1,name:'张三'}, {id:2,name:'李四'}, {id:3,name:'王五'}, {id:4,name:'赵六' ...

  8. Bandizip解压压缩软件

    上次重装系统以后,特别注意安装软件,在这里提一些比较好的 解压软件:Bandizip 这个是一个免费轻量级的软件,压缩解压速度快,没什么广告,推荐大家在官方下载 Bandizip下载网址 点击下载安装 ...

  9. Luogu P2210 Haywire 题解

    其实这题吧...有一种玄学解法 这题的要求的就是一个最小化的顺序 那么,我们就不进想到了一种显然的写法 就是random_shuffle 什么?这不是乱搞的非正解吗 然而,正如一句话说的好 一个算法, ...

  10. JavaScript的函数以及循环和判断

    1.什么是函数? 这个函数跟我们数学当中的函数不太一样,我们这个函数是一段定义好的代码,可以循环使用,(这样我们更方便). 2.函数的作用: 提升代码的可复用性,将一定代码进行预定义,需要的时候才触发 ...