zoukankan      html  css  js  c++  java
  • 关于AndroidStudio的打包数字签名以及多渠道发布

    AndroidStudio右侧Gradle里边的build(工程下的)是可以生成未签名的debug和release的apk包生成前可以先clean一下工程

    app下的build.gradle里边的

    lintOptions{
    abortOnError false
    }
    是用来取消检查错误直接打包


    buildTypes {
    //设置为true进行混淆proGuard
    release {
    minifyEnabled true
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
    }

    是用来混淆 默认是false


    //配置软件包打包的时候 准备不同的渠道
    productFlavors {
    //渠道的名称 生成不同的包
    baidu {

    applicationId  "cn.fangz.baidu"

    // 对resValue在java代码中的使用:String app_id = getResources().getString(R.string.app_id);

    resValue("string", "app_id", "50074")

    resValue("string", "app_start", "1")

    // 对manifestPlaceholders中资源的使用:在AndroidManifest.xml文件中的application节点下

    // andorid:icon="${icon}"

    //android:app_name="${app_name}"

    manifestPlaceholders = [app_name: "@string/app_name_agiledata", icon: "@drawable/ic_launcher"]

    }

    qihoo {
    minSdkVersion 10
    applicationId 'com.ceshi.updateadapter.qihoo.app'
    }
    }

    对应于不同渠道由于appid不同所以生成了不同的版本的apk文件
    还有就是可以在src下建立free paid文件夹建立不同的AndroidManifest.xml文件修改入口即可运行一个程序的不同版本如果没有的资源会去找main文件夹下的资源(类似国际化) 在Build Variants 修改运行的程序

    以上都是放在android 下

    Build菜单里生成keystore文件一般放在工程目录下 之后签名时需要选择目录就是cd../ 上级目录里选 最后在buildtype左边小栏选择release版本 ok

    apply plugin: 'com.android.application'
    
    android {
        //数字签名证书以及密钥温家的配置 可以在以后不同的渠道设置
        signingConfigs {
            mykeystore {
                keyAlias 'my_release_key'
                keyPassword '123456'
                storeFile file('../release.jks')
                storePassword '123456'
            }
        }
        compileSdkVersion 22
        buildToolsVersion "22.0.1"
        defaultConfig {
            applicationId "com.ceshi.updateadapter"
            minSdkVersion 9
            targetSdkVersion 22
            versionCode 1
            versionName "1.0"
        }
        buildTypes {
            //设置为true进行混淆proGuard
            release {
                minifyEnabled true
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
                signingConfig signingConfigs.mykeystore
            }
            debug {
            }
        }
        lintOptions {
            abortOnError false
        }
        //配置软件包打包的时候 准备不同的渠道
        productFlavors {
            //渠道的名称 生成不同的包
    

    baidu {

    applicationId  "cn.fangz.baidu"

    // 对resValue在java代码中的使用:String app_id = getResources().getString(R.string.app_id);

    resValue("string", "app_id", "50074")

    resValue("string", "app_start", "1")

    // 对manifestPlaceholders中资源的使用:在AndroidManifest.xml文件中的application节点下

    // andorid:icon="${icon}"

    //android:app_name="${app_name}"

    manifestPlaceholders = [app_name: "@string/app_name_agiledata", icon: "@drawable/ic_launcher"]

    }

    
            qihoo {
                minSdkVersion 10
                applicationId 'com.ceshi.updateadapter.qihoo.app'
            }
    
            paid{
                minSdkVersion 10
                applicationId 'com.ceshi.updateadapter.paid.app'
            }
    
           free{
                minSdkVersion 10
                applicationId 'com.ceshi.updateadapter.free.app'
            }
    
        }
    }
    
    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        testCompile 'junit:junit:4.12'
        compile 'com.android.support:appcompat-v7:22.2.0'
    //选择性对应不同渠道去与依赖不同的jar包
        paidCompile files('src/libs/ShareSDK-QQ-2.7.9.jar');
      freeCompile file('src/libs/123.jar');

    }


    最后值得一说的是 如果不同渠道所需的java文件 如同名的Activity内容逻辑不一样的话 可以建立对应于main文件夹的相应文件夹 对应于包下的同名Activity实现不同的逻辑即可


  • 相关阅读:
    读写分离之Atlas
    数组、集合和可变长参数
    史上最全的maven的pom.xml文件详解
    ArrayList集合与List与数组的区别
    ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台
    Linux下Nagios的安装与配置
    Redis在windows下安装过程
    TortoiseGit-2.0.0.0-64bit问题
    丢用lamp手动安装apache php mysql
    手把手教你小程序对接微信支付
  • 原文地址:https://www.cnblogs.com/bimingcong/p/4970229.html
Copyright © 2011-2022 走看看