MyException - 我的异常网
当前位置:我的异常网» Android » AndroidStudio生成正式签字APP

AndroidStudio生成正式签字APP

www.MyException.Cn  网友分享于:2013-11-16  浏览:0次
AndroidStudio生成正式签名APP

Android系统会将所有的APK文件识别为应用程序的安装包,类似于windows系统上的exe文件。

android系统要求安装到手机的APK必须进行签名,但是我们直接使用AS在手机上进行测试的时候似乎没有经过签名操作,那是因为AS来运行程序的时候使用了一个默认的keystore文件帮助我们进行签名,那么默认的签名文件你可以点击工具栏Gradle—>项目名—>Tasks—->android

签名查看文件

双击signingReport,运行结果如图所示

运行结果

所以可以看到我的签名文件在 C:\Users\welive\.android\debug.keystore去看一下:

秘钥路径

正式签名

1.使用AndroidStudio进行生成

Build—>Gencrate Signed APK 来生成正式签名的APK

生成签名的文件

之后的操作按照提示进行:在最后一步

选择正式签名

选择 release正式版本,这样生成的APK便是正式签名下的正式版本了。在你 Folder下的路径下就可以看到。

使用Gradle进行签名

Gradle是一个非常先进的项目构建工具,在androidStudio中开发所有项目都是使用Gradle进行构建的。在之前的项目中。

想要精通Cradle,难度较大,不亚于重新学习一门语言。(Gradle是使用Groovy语言编写的),而我们目前只需要做到使用Gradle进行项目构建就好了。

使用Gradle生成带有签名的APK文件,点击app文件目录下的build.gradle文件如下:

添加加密的秘钥文件

上面这个秘钥是我自己随便创建的,如果雷同,纯属巧合。

在文件中添加一个闭包

 

signingConfigs {
        config {
            keyAlias 'wedfrend'
            keyPassword '123456'
            storeFile file('H:/wedfrend.jks')
            storePassword '123456'
        }
    }

 然后我们要对其进行应用:

 

进行应用配置

这里我将其引用两次,也就是说正式签名的 秘钥和测试签名的秘钥是一致的。

关键在:

正式编译的配置文件

release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.config
        }

 测试编译的配置文件

debug {
            signingConfig signingConfigs.config
        }

 配置完成之后我们如何生成APK,打开AS的工具栏Gradle/app/tasks/build

 

查看生成APK

双击:assembleDebug ———->测试 APK

双击:assembleRelease ———->正式APK

所以目前我们的生成APK两种方式都使用完成。

当然,对应Gradle的秘钥配置,AS提供可视化的简单操作:

项目文件—>右键—>选择Open Module settings

可以查看到这个界面:

可视化

点击Signing

添加秘钥

我添加了一个名为 config的秘钥,并填写相应的信息,这个就对用了app/build.gradle文件的signingConfigs里面的闭环。

然后在点击Buile Types:

配置文件

左边有两个可选的:debug表示测试版本应用的秘钥,然后在右边的Signing Config点击选择一个秘钥,在app/build.gradle中对应

 

debug {
            signingConfig signingConfigs.config
        }

 同样,release对应的是正式版本,对应

 

 

release {
             ···
            signingConfig signingConfigs.config
        }

 只是在这个实例中我使用的同一个秘钥而已,当然你也可以在项目中测试和正式的秘钥不同,但是在实际开发中,外界原因我们有时候还真的需要秘钥一致,比如接入微信支付的应用,你的秘钥如果测试和正式不同,那么在测试的APK中永远都是不可能成功调起微信支付的。

 


最后的啰嗦:

目前keystore的文件信息都是以明文的形式直接配置在build.gradle中,这样按道理讲不安全,android推荐是将这类敏感的数据配置在一个独立的文件里面,然后在build.gradle中读取这些数据。

我们按照这种思路再来一遍:

androidStudio项目的根目录下有一个gradle.properties文件,他是专门用来配置全局键值对数据的,那么现在我们在该文件下配置:

这里写图片描述

然后修改app/build.gradle如下:

修改文件

这样一来,在build.gradle中就无法正查看秘钥信息,对于我们 第三方版本控制的时候只需将本地的gradle.properties保存好就行,只需在内部传播就好了。

文章评论

旅行,写作,编程
旅行,写作,编程
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
一个程序员的时间管理
一个程序员的时间管理
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
漫画:程序员的工作
漫画:程序员的工作
程序员都该阅读的书
程序员都该阅读的书
 程序员的样子
程序员的样子
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
鲜为人知的编程真相
鲜为人知的编程真相
我的丈夫是个程序员
我的丈夫是个程序员
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
程序员的鄙视链
程序员的鄙视链
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
老程序员的下场
老程序员的下场
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
如何成为一名黑客
如何成为一名黑客
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
程序员和编码员之间的区别
程序员和编码员之间的区别
我是如何打败拖延症的
我是如何打败拖延症的
那些争议最大的编程观点
那些争议最大的编程观点
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
10个调试和排错的小建议
10个调试和排错的小建议
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
为什么程序员都是夜猫子
为什么程序员都是夜猫子
代码女神横空出世
代码女神横空出世
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
每天工作4小时的程序员
每天工作4小时的程序员
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
Java程序员必看电影
Java程序员必看电影
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
程序员应该关注的一些事儿
程序员应该关注的一些事儿
Google伦敦新总部 犹如星级庄园
Google伦敦新总部 犹如星级庄园
那些性感的让人尖叫的程序员
那些性感的让人尖叫的程序员
总结2014中国互联网十大段子
总结2014中国互联网十大段子
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有