zoukankan      html  css  js  c++  java
  • jenkins 自动化打包flutter android apk

    一、部署jenkins省略

    二、部署flutter

    1.环境:

    Flutter (Channel stable, v1.12.13+hotfix.5, locale zh-Hans-CN)

    下载地址:https://storage.googleapis.com/flutter_infra/releases/stable/linux/flutter_linux_v1.12.13+hotfix.5-stable.zip

    gradle: 3.5.0

    下载地址: https://gradle.org/next-steps/?version=3.4.1&format=bin

    jdk: 1.8.0_151   (自行安装)

    Android SDK version 28.0.3

    下载地址:http://tools.android-studio.org/index.php/sdk/

    开发给定渠道如下:

            qijian {}
            yingyongbao {}
            vivo {}
            oppo {}
            baidu {}
            lenovo {}
            huawei {}
            samsung {}
            xiaomi {}
            anzhi {}
            sougou {}
            gfan {}
            uc {}
            _360 {}
            meizu {}
            mumayi {}

    2.部署

    环境部署:

    cd  /usr/local/src/

    wget https://storage.googleapis.com/flutter_infra/releases/stable/linux/flutter_linux_v1.12.13+hotfix.5-stable.tar

    tar -xf  flutter_linux_v1.12.13+hotfix.5-stable.tar  -C  /usr/local/

    wget  http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz

    mkdir /usr/local/android-home -p

    tar -xf android-sdk_r24.4.1-linux.tgz -C  /usr/local/android-home

    wget   https://gradle.org/next-steps/?version=3.4.1&format=bin

    unzip  gradle-3.5-bin.zip 

    mkdir -p /opt/gradle/ 

    mv gradle-3.5 /opt/gradle/ 

    增加 profile

    export JAVA_HOME=/usr/local/jdk1.8
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$JAVA_HOME/bin:$PATH:/usr/local/apache-maven-3.3.9/bin:/usr/local/flutter/bin
    export PATH=$JAVA_HOME/bin:$PATH


    export ANDROID_HOME=/usr/local/android-home
    export PATH=$PATH:/usr/local/android-home/android-tools/bin
    export PATH=$ANDROID_HOME/android-tools:$ANDROID_HOME/platform-tools:$PATH

    export GRADLE_HOME=/opt/gradle/gradle-3.5
    export PATH=$GRADLE_HOME/bin:$PATH

    export PUB_HOSTED_URL=https://pub.flutter-io.cn
    export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
    export PATH=/usr/local/flutter/bin:$PATH

    source  /etc/profile

    安装 Android SDK

    /usr/local/android-home/tools/bin/sdkmanager "platforms;android-28" "build-tools;28.0.3"

    flutter doctor -v

    flutter 版本信息会出现unknown 状态

    需要升级git 版本

     yum remove git

    yum install http://opensource.wandisco.com/centos/6/git/x86_64/wandisco-git-release-6-1.noarch.rpm   -y 

    git version 2.22.0

    flutter doctor -v

    会出现网络问题

    修改:

      /usr/local/flutter/packages/flutter_tools/gradle/flutter.gradle 

    再次运行 flutter doctor -v

    发现已经解决报错问题。

    jenkins上部署:

    执行shell

     代码粘贴如下:

    #下载flutter 依赖包
    flutter packages get

    #flutter 打包
    flutter build apk

    #分渠道创建目录
    rm -rf /data/tgbus_app_android/*
    mkdir /data/tgbus_app_android/{_360,anzhi,baidu,gfan,huawei,lenovo,meizu,mumayi,qijian,samsung,sougou,uc,xiaomi,yingyongbao,oppo,vivo}

    dir="/data/tgbus_app_android/"
    project=`ls /data/tgbus_app_android/`


    for i in $project;do
    scp -qpr /data/tgbus.jks $dir$i
    scp -qpr /data/jenkins/.jenkins/workspace/tgbus_app_android/build/app/outputs/apk/release/app-release.apk $dir$i
    cd $dir$i/
    #解码apk
    apktool d -f app-release.apk
    #修改渠道
    sed "s/test1/${i}/g" -i app-release/AndroidManifest.xml
    #重新打包apk
    apktool b app-release -o app-release-$i-dev.apk
    #为打包后的apk 进行签名,tgbus.jks 为开发提供的秘钥
    echo "32100000" | jarsigner -verbose -keystore tgbus.jks -signedjar app-release-$i.apk app-release-$i-dev.apk tgbus
    if [ $? -eq 0 ];then
    echo "build is ok"
    else
    echo "build is false"
    fi
    done

     

    以上命令  apktool  安装:

    右键点击此链接,另存为apktool

    下载最新版本的apktool-2,然后重命名为apktool.jar

    将apktool和apktool.jar移动到/usr/local/bin文件夹中

     

    mv apktool /usr/local/bin

    mv apktool.jar /usr/local/bin

     

    给apktool和apktool.jar添加可执行权限

    chmod +x apktool

    chmod +x apktool.jar

     

    jarsigner 签名命令:  

    cp /usr/local/jdk1.8/bin/jarsigner  /usr/local/bin

     

    至此,jenkins 自动化打包flutter android apk包完成。

  • 相关阅读:
    自己动手用Javascript写一个无刷新分页控件
    自己动手写一个通用的分页存储过程(适用于多表查询)
    Towards Accurate Multiperson Pose Estimation in the Wild 论文阅读
    统计学习方法c++实现之一 感知机
    2018百度之星开发者大赛-paddlepaddle学习(二)将数据保存为recordio文件并读取
    2018百度之星开发者大赛-paddlepaddle学习
    [转载]C#_Path类常用操作
    安装SQL2K是的文件挂起错误
    相见恨晚MySQL 多表查询
    php截取字符串,出现乱码
  • 原文地址:https://www.cnblogs.com/lixinliang/p/12625627.html
Copyright © 2011-2022 走看看