官方文档:https://developer.android.com/tools/publishing/app-signing.html


1. 默认为debug mode,使用的签名文件在:$HOME/.android/debug.keystore


2. Release Mode 签名:

build.gradle

android {signingConfigs {releaseConfig {keyAlias 'stone'keyPassword 'mypwd'storeFile file('/Users/stone/Documents/project_AS/myapplication/stone.keystore')storePassword 'mypwd'}}        buildTypes {           release {             ...             signingConfig signingConfigs.release           }        }}

signingConfigs 即签名配置。 配置名releaseConfig{ //配置内容 }

在buildTypes中指定release时的signingConfigs对应的配置名


执行gradle 命令, $ gradleassembleRelease

编译并发布。 在build/outputs/apk/ 下能看到未签名的apk 和 已经签名的apk

如果未用签名文件,使用debug mode的debug签名。那就会生成一个debug签名的apk


3. 签名密码写在gradle中不安全:

signingConfigs { //gradle assembleReleasemyConfig {storeFile file("stone.keystore")storePassword System.console().readLine("\nKeystore password: ")keyAlias "stone"keyPassword System.console().readLine("\nKey password: ")}}

这样在命令 执行 命令时,就会被要求输入密码


4. 使用Android Studio 签名打包

菜单 Build > Generate Signed APK


5.使用Android Studio 自动签名打包

a. 打开project structure (cmd+;)

b. 选中需要构建的moudle,打开Signing,添加config

执行完成后,会在build.gradle中自动加上 signingConfigs{ config {...} }的信息

c. 打开build types > release


在signing Config中选择定义的配置

zip align enabled 默认为true, 用于启用优化Apk的操作

d. $ gradle build

会在build/outputs/apk/ 目录下输出 在build types中定义的 编译类型

如:

myapplication-debug-unaligned.apk
myapplication-debug.apk
myapplication-release-unaligned.apk
myapplication-release-unsigned.apk
myapplication-release.apk


6. 使用Android SDK 和 JDK 的命令 签名打包APK

创建签名
keytool -genkey -v -keystore stone.keystore -alias stone -keyalg RSA -keysize 2048-validity 10000 生成签名文件
为apk签名
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore stone.keystore unsigned.apk stone 不生成新文件
检测apk是否签名
jarsigner -verbose -certs -verify signed.apk
优化apk
zipalign -f -v 4 signed_unaligned.apk signed_aligned.apk



更多相关文章

  1. Android(安卓)项目优化(七):阿里巴巴Android开发手册整理总结
  2. Android零基础入门
  3. Android(安卓)项目优化(七):阿里巴巴Android开发手册整理总结
  4. Android超炫日期日历控件:TimesSquare
  5. android shape的使用
  6. Android(安卓)RadioButton与ListView的混合使用
  7. android 小知识点
  8. Shape的使用
  9. Android(Lollipop/5.0) Material Design(五) 定义阴影和裁剪View

随机推荐

  1. Android禁止ViewPager的左右滑动
  2. java/android 设计模式学习笔记(12)---组合
  3. Android(安卓)Training - 代码性能优化小
  4. App跨平台开发方案与抉择
  5. 使用android studio 版本合并遇到的问题
  6. Google送Nexus One手机啦,大家快去收邮件
  7. Android与WebView的插件管理机制
  8. Android:EditText属性大全
  9. Android(安卓)Studio项目构建时遇到的常
  10. [Ionic 2从入门到精通] 9.3 在Mac或者PC