您的位置:首页 > 移动开发 > Android开发

Android Studio签名打包的两种方式

2017-01-24 10:16 351 查看


Android Studio签名打包的两种方式

以下截图的Android Studio版本是mac 2.2.3。
1、方式1:通过Android Studio进行签名:



弹出如下界面:



选择需要签名打包的module,点击next,弹出



上图中,如果你是第一次使用签名,就单击红框部分创建一个新的签名;如果你之前有过签名的文件,就选择蓝框部分进行导入即可。由于我是第一次签名,所以选择create new:





点击ok,回到前一页面,单击next



上图中,点击"finish"之后,Gradle执行任务,等待一会,如果程序没有问题,打包好的apk会出现在module目录下。



 
 
2、方式2:通过命令行的方式进行签名:
(1)加载Key Store:
我们先删掉上面的通过第一种方式所签名的apk文件。接下来进行第二种方式来签名,即命令行的方式。
打开Project Stucture图形化界面(⌘;):





上图中,选中app这个module,然后切换到singning标签栏,紧接着点击添加,然后生成release签名信息,紧接着切换到Build Types。接着做如下操作:



上图中,切换到Build Types标签,将Signing config选择为"release",即将刚刚生成的release签名信息配置进去。
操作完成之后,我们可以看到app这个module的build.gradle文件多出了如下红框部分的代码:



然后执行菜单栏的"build-clean Project":



(2)生成realease版本的apk:
紧接着在命令行Terminal输入如下命令:(AS已经将命令行Terminal集成到了软件当中)
gradlew assembleRelease

如果运行成功,效果如下:



生成的签名好的apk在如下位置:



 
3、为什么要使用gradlew命令而不是gradle命令:
在工程目录下有一个gradle文件夹,在gradle/wrapper目录下有一个gradle-wrapper.properties文件,打开它:



上图代表着HelloWorld这个工程所依赖的gradle的版本信息。上图的红线表示,如果我们的工程中没有gradle,软件会根据这个url去下载gradle,终于知道为啥第一次打开AS时会这么慢了吧?
如果我们执行了gradlew命令,实际上是执行上面的gradle wrapper,然后找到我们已经下载好的gradle 2.2.1。如果现在有很多个工程,但是每个工程的gradle版本都不一样,我就必须要将每个版本的gradle都要配置到环境变量当中,而执行了gradlew命令,就会避免这个麻烦。
本文参考于http://www.cnblogs.com/gao-chun/p/4891275.html ,我只是修改了部分图片。

后记:
1、Gradle命令在mac电脑的配置参考http://blog.csdn.net/yfsyy/article/details/54693423 
2、在执行gradlew assembleRelease命令时,由于未配置gradlew命令,故一开始报 bash: gradlew: command not found,搜索之后尝试调用./gradlew assembleRelease(http://stackoverflow.com/questions/17028009/android-studio-build-clean),然后又报Permission
Denied,然后我调用命令chmod 777 gradlew解决。stackoverflow上有人说用chmod
+x gradlew也可以解决这个问题。原文链接:http://stackoverflow.com/questions/17668265/gradlew-permission-denied



感谢前人的分享,让我们学会更多的知识。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: