Android打包脚本和上传apk托管平台

这篇具有很好参考价值的文章主要介绍了Android打包脚本和上传apk托管平台。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

作为Android开发经常需要打包提交测试,多数情况我们都是通过Android studio手动点点进行,后来项目由于环境较多(开发,测试,预发布,发布等),手动打包就容易出错,所以后边就引起通过脚本打包提升效率和准确的需求。

内容部分
  1. 编写脚本前,需要在app目录下的build.gradle中进行相关证书配置。

    注意signingConfigs需要在用它之前声明

    // storeFile 文件放到app目录下直接写文件名即可
    signingConfigs{
         debug {
                keyAlias '别名'
                keyPassword '密码'
                storeFile file('签名文件路径')
                storePassword '密码'
            }
         release {
                keyAlias '别名'
                keyPassword '密码'
                storeFile file('签名文件路径')
                storePassword '密码'
            }
    }
    
  2. 声明完成签名信息后,在构建配置中引用,如下:

     buildTypes {
            release {
                ...省略
                signingConfig signingConfigs.release
            }
            debug {
                ...省略
                signingConfig signingConfigs.debug
            }
        }
    
  3. 然后就是配置多渠道打包的维度了,我简单配置几个,代码如下:

    //先定义变种维度
    defaultConfig{
       flavorDimensions "versionCode"
    }
    
    productFlavors{
        dev{
            dimension "version"
             // 服务端接口地址
            buildConfigField "String", "API_BASE_URL", '"http://test.com/"'
        }
       sit{
            dimension "version"
             // 服务端接口地址
            buildConfigField "String", "API_BASE_URL", '"http://test.com/"'
        }
        pub{
            dimension "version"
             // 服务端接口地址
            buildConfigField "String", "API_BASE_URL", '"http://test.com/"'
        }
    }
    

配置完成后就可以build variants 中找到你设置的多渠道打包命令了,如下图:

Android打包脚本和上传apk托管平台,android,shell,打包脚本

配置中使用不同的host,代码可以直接引用,通过BuildConfig.API_BASE_URL实现切换不同的host。

配置到这里就可以实现版本区分打包了,通过Android studio进行不同的操作,打包出不同host的包了。

shell脚本编写

脚本的时间其实就是自动化了打包的步骤,代替我们一步一步点的操作。这里使用shell脚本,贴出核心代码吧。

#通过不同的表示标识来确定执行不同的打包命令
echo "开始执行build======================"
echo "flavor ${flavor}"
# 开始构建apk
flavor="dev"
if [[ ${runEnvNumber} == 1 ]];then
 flavor="dev"
 gradlew clean assembleDevRelease
elif [[ ${runEnvNumber} == 2 ]];then
 flavor="sit"
 gradlew clean assembleSitRelease
elif [[ ${runEnvNumber} == 3 ]];then
 flavor="pub"
 gradlew clean assemblePubRelease
else
   flavor="dev"
   gradlew clean assembleDevRelease
fi

后续就是把apk包移动到指定的目录:

# 最终的apk文件
# 拷贝文件到指定目录
buildSourcePath="app/build/outputs/apk/$flavor"
apkSourcePath=$(find ${buildSourcePath} -name "*.apk")

echo "apk source path========"
echo "$apkSourcePath"
echo "apk source path========"

# 构建目录,并拷贝
rm -rf $buildPath
mkdir $buildPath
echo "====copy apk source path===="
cp $apkSourcePath $buildPath
apkPath=$(find ${buildPath} -name "*.apk")
finalPath=${apkPath}

echo "finalPath ====="
echo "$finalPath"

再后来就是上传蒲公英/fir啥的啦,这里就不赘述了。具体可以看官方的文档了。

还是贴个fir的代码吧,API比较简单:

#!/usr/bin/env bash

echo "清除登录信息"
rm -f $HOME/.fir-cli
path=$1
desc=$2
echo "上传path $path "
echo "上传描述  ${desc} "
upload() {
    echo "开始上传"
    fir publish "${path}" -c "${desc}" --force-pin-history
}

me=$(fir me|grep 'ERROR')
if [[ $me ]];then
  echo "登录"
 fir login '你的fir token'
 upload
else
 upload
fi
结尾

脚本的合理使用能够给我们节省很多时间,并且产生错误的概率很低。就这些,谢谢观看!文章来源地址https://www.toymoban.com/news/detail-698624.html

到了这里,关于Android打包脚本和上传apk托管平台的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android APK 签名打包原理分析(一)【APK结构分析】

    最近在看AOSP Apk安装的相关源码时,发现自己对这块知识一直停留到用的层面,并未有深入的了解,例如打包的具体过程、签名的具体过程、渠道打包,最重要的,自己这几年在做系统方面的应用时,也解决过很多apk 安装的问题,修改过部分的系统源码,可是没有把这块知识

    2024年02月02日
    浏览(50)
  • Android apk文件打包自定义命名

    前言 在Android Studio中打包生成的APK和aar文件基本上都是module名称+构建类型,常见的都是 app-debug.apk 和 app-release.apk 这种样式的。 显然没有版本号等序号标识的话,管理起来会比较混乱,基于此种情况,我们可以通过修改 build.gradle 文件中的配置来修改生成包的文件名以做区分

    2024年02月13日
    浏览(53)
  • 【Android】反编译APK及重新打包

    1.下载 APK 反编译工具 首先,需要下载一个 APK 反编译工具,例如 Apktool。可以在官网(https://apktool.org/docs/install)上下载最新版本的 Apktool,也可以使用包管理器来安装。 2.反编译 APK 文件 将要修改包名的 APK 文件放到一个新建的文件夹中,然后打开终端(命令行窗口),进入

    2024年04月11日
    浏览(40)
  • Android apk 反编译后打包(含签名)

    想分析某些app源码时,遇到烦人弹框,现在想反编译看看具体实现。 用到的工具: GDA4.06 apk反编译工具 apktool apk 打包工具 jdk 环境 一、反编译分析 将apk反编译打开 找到入口代码 弹框代码如图 二、解包、打包 使用apktool解包 ps: apktool工具的用法自行百度 -o模式是指定解包后文

    2024年02月09日
    浏览(40)
  • Android反编译修改apk并重新打包

            Apktool 是反编译Apk的第三方工具,它可以反编译资源,并在修改之后重新生成Apk          注意:apktool 依赖 Java1.8。请使用 java -version 查看,是否为1.8或更高版本。 1. 使用apktool.jar反编译解包 将需要编译的apk和apktool.jar放到同一个文件夹下 在cmd终端,cd到此目录下

    2023年04月13日
    浏览(47)
  • uniapp离线打包apk - Android Studio

    ​下载 Android Studio 版本最好 4.0以上 ​下载 HBuilder X ​下载 Android离线SDK 注意:HBuilder X 和 离线SDK 版本必须一致(我的版本 3.6.2) Android SDK解压后目录: ​​​​ 以上步骤完成后,在工具栏找到Build,选中Generate Signed Bundle/APK… 在key store password 和 key password中输入密码 ****** (两

    2024年02月10日
    浏览(51)
  • vue3中 打包成apk(android)

    本文仅演示的是打包成android 版本的apk         通过打包命令将vue3项目打包成一个dist文件夹 注意:一般的打包命令为npm run build,特殊设置的修改一下打包命令       有时打包后的文件运行出现白屏问题,可能是绝对路径导致的,在vite.config.js文件中配置base:\\\'./\\\'  图一  解决

    2024年02月16日
    浏览(42)
  • Android studio 打包release版本 apk 换方式了?

     有一段时间没有搞Android,在基本操作打release包的时候竟然一直打包不成功,一直报 Generate Signed APK: APK(s) generated successfully for module \\\'CorrectionPlatform.app\\\' with 0 build variants: 但主要还不提示打包失败; 在经历一段煎熬各种搜索各种找,终于找到了另一种可以生成release包的方法。

    2023年04月09日
    浏览(38)
  • android studio 打包签名apk时报kotlin版本错误

    报错信息如下: /Users/abbb/Library/Android/sdk/caches/transforms-3/572ca993caa0789f4046529ddf3eacd2/transformed/jetified-BaseRecyclerViewAdapterHelper-4.0.1/jars/classes.jar!/META-INF/com.github.CymChad.brvah.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.8.0, expected version is 1.6.

    2024年01月25日
    浏览(47)
  • Android APK 签名打包原理分析(三)【静默安装的实现方案】

    小编目前从事的系统定制类工作,有客户提出了,需要后台“静默安装”他们的app,也就是悄无声息的安装,而且特别强调,不可以跳出任何安装引导页面,他们的app下载完成之后,后台调用公开的android install代码,系统就后台完成安装,安装完成之后,重新打开应用就可以

    2024年02月01日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包