关于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实现不同的逻辑即可
关于AndroidStudio的打包数字签名以及多渠道发布的更多相关文章
- C# Activex开发、打包、签名、发布 C# Activex开发、打包、签名、发布 [转]
C# Activex开发.打包.签名.发布 2013-06-22 12:01:20 浏览:3823 一.前言 最近有这样一个需求,需要在网页上面启动客户端的软件,软件之间的通信.调用,单单依靠HTML ...
- AndroidStudio项目打包成jar
AndroidStudio项目打包成jar 前言:在eclipse中我们知道如何将一个项目导出为jar包,现在普遍AndroidStuido开发,这里一步一步详加介绍AS项目打包成jar,jar和ar ...
- AndroidStudio离线打包MUI集成JPush极光推送并在java后端管理推送
1.AndroidStudio离线打包MUI 如何离线打包请参看上篇随笔<AndroidStudio离线打包MUI> 2.集成极光推送 官方文档:https://docs.jiguang. ...
- C#制作、打包、签名、发布Activex全过程
一.前言 最近有这样一个需求,需要在网页上面启动客户端的软件,软件之间的通信.调用,单单依靠HTML是无法实现了,因此必须借用Activex来实现.由于本人主要擅长C#,自然本文给出了用C#实现的范例 ...
- C# winFrom 制作、打包、签名、发布Activex全过程
注:转自园中 http://www.cnblogs.com/still-windows7/p/3148623.html 一.前言 最近有这样一个需求,需要在网页上面启动客户端的软件,软件之间的通信.调 ...
- C# Activex开发、打包、签名、发布
一.前言 最近有这样一个需求,需要在网页上面启动客户端的软件,软件之间的通信.调用,单单依靠HTML是无法实现了,因此必须借用Activex来实现.由于本人主要擅长C#,自然本文给出了用C# ...
- C#制作、打包、签名、发布Activex全过程【转】
http://www.cnblogs.com/still-windows7/p/3148623.html 一.前言 最近有这样一个需求,需要在网页上面启动客户端的软件,软件之间的通信.调用,单单依靠H ...
- AndroidStudio 混淆打包
AndroidStudio中的项目可以用compile的形式引入github上的开 源项目,可以引用module,而不一定都要用libs文件夹中添加jar包的形式.在最终realease打包时,混淆的 ...
- 整理:C#写ActiveX, 从代码到打包到签名到发布的示例
对于不懂C++和VB的我, 在工作上却遇到需要重写旧ActiveX控件的任务. 好在客户机都是Windows PC, 基本上都有.net framework 2.0, 勉强用C#实现可以满足需求 所以 ...
随机推荐
- Raft算法和Gossip协议
简单介绍下集群数据同步,集群监控用到的两种常见算法. Raft算法 raft 集群中的每个节点都可以根据集群运行的情况在三种状态间切换:follower, candidate 与 leader.lea ...
- 【385】itertools 的 product 和 chain 和 accumulate
参考:itertools模块 product 相当于返回两个集合中数据的所有组合可能 Examples from Eric Martin from itertools import product p ...
- 知识点4: 配置echarts折线图和饼图
折线图 效果图 html <template> <div id="v11-charts3"></div> </template> j ...
- Todolist功能开发
一.属性绑定和双向数据绑定: v-bind:title 或简写成 :title实现title属性绑定: v-model实现双向数据绑定(双向是指:当数据变了,input的value会改变:当input ...
- python实现排序算法一:快速排序
##快速排序算法##基本思想:分治法,将数组分为大于和小于该值的两部分数据,然后在两部分数据中进行递归排序,直到只有一个数据结束## step1: 取数组第一个元素为key值,设置两个变量,i = 0 ...
- nth-child与nth-of-type区别
示例详细理解:nth-child(n)与:nth-of-type(n)区别 childselector:nth-child(index) 1,子选择器(childselector,这里是p选择器)选中 ...
- python批量操作Linux服务器脚本,key登录(执行命令、上传、下载)(二)
-*- 2 #批量操作linux服务器(执行命令,上传,下载) 3 #!/usr/bin/python 4 import paramiko 5 import datetime ...
- FMS Dev Guide学习笔记(权限控制)
一.开发交互式的媒体应用程序 1.关于访问(权限)控制 当一个用户访问服务器的时候,默认情况下,他可以访问所有的流媒体文件和共享对象.但是你可以使用服务端ActionScript为流媒体文件和 ...
- shiro 认证思路
- python基础学习Day8 文件的基本操作
1.文件的基本操作初识 f = open('a.text', 'r', encoding='utf-8')data = f.read()print(data)f.close() 2.读 r r+b ...
