Android Studio 打一个正式签名的Apk
Posted 小阿小火苗
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Studio 打一个正式签名的Apk相关的知识,希望对你有一定的参考价值。
如何打一个带正式签名文件的app (给自己的劳动成果冠名)
1. 选择build -> generate signed bundle/apk
2. 这里有两个选择, bundle or apk, 我们选择apk
于是勾选 apk, 并点下一步
3. 来到选择证书文件的地方, 但是我们这是第一次做, 还没有证书文件, 所以选择新建一个证书
4. 弹出生成证书信息的输入界面, 本质上就是要以你的名字、所在单位、所在城市、邮编代码等来生成一个名片, 也相当于是身份证上的信息, 只要合法即可! 至于丑不丑, 除了自己之外没人关心
重要的信息只有俩: 一个是密码、另外一个是别名Alias. 别名相当于你身份证上的名字
最后选择在保存在哪一个位置 key store path, 并点击右下角OK即可生成一个签名文件
5. 如果上面的步骤你都执行无误, 你已经创建了你的签名文件! 使用这个文件, 你现在就可以给app签名了, 点击右下角的Next按钮
6. 因为android app 为了方便开发者调试, 区分了开发测试、发布上线等两种基本的渠道, 一般我们本地开发都是处于debug渠道、这种模式app会包含代码调行号等试信息, app是可以单步断点调试的, 但是显然, 我们正式包不应该包含无用的冗余信息避免增加包大小
所以, 我们都会使用release渠道的包并签名之以供销售
7. 签名版本选择V2, 更安全 8. 构建好之后, 你会在debug同级目录下,多出release目录, 里面有你想要的apk文件
你应该猜到了, 如果你只想打正式包apk文件, 并不想签名, 则执行下面的命令即可构建release渠道包
./gradlew :app:assembleRelease
同理, 构建debug包, 也叫内测包, 则为
./gradlew :app:assembleDebug
9. 当你想要再次构建签名的包时, 签名文件会默认勾选, 你只需要输入之前签名文件创建时的密码即可, 之后的步骤同上
Android Studio 使用正式签名进行调试
在Android Studio中。能够使用Gradle进行打包时自己主动签名。事实上Android Studio默认会给调试应用加上Debug签名。但有时候调一些第三方SDK时,须要正式签名才干调起来。所以接下来分享一下使用Gradle自己主动签名的方法。
一、创建签名文件
打开AS。选择Build->Generate Signed APK,选择要打包的项目,点击Next,再点击Create new...创建签名文件
填写签名文件响应信息,例如以下所看到的。Password、Key-Alias、Key-Password这三个值须要记住,然后点击OK,完毕创建。
完毕之后,在相应路径生成一个jks签名文件。假设选择手动再进行打包。就能够选择该签名文件。然后相应填入password与别名,进行签名,也能够。
二、配置Gradle自己主动打包
拷贝签名文件到主project根文件夹。打开主project的build.gradle文件。在android节点下,添加下面内容:
signingConfigs { release { storeFile file('keystore.jks') storePassword '123456' keyAlias 'yyh' keyPassword '123456' } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' signingConfig signingConfigs.release } debug { signingConfig signingConfigs.release } }storeFile file:签名文件,假设放在其它路径。须要相应改动
storePassword:password(刚才填的第一个password)
keyAlias:别名
keyPassword:别名password
然后又一次build一下project。展开右边栏Gradle选项卡。例如以下所看到的:
assembleRelease。即为正式签名。双击assembleRelease,则会開始运行命令:
运行完成能够看到BUILD SUCCESSFUL,说明正式签名打包成功了。展开project的build目录,可发现有app-release.apk。即为正式版本号。
下次直接run起来的时候,就带正式签名了。这可比手动签名省事多啦~~
当然。为了提高安全性,我们还能够把那四个属性作为变量配置在主project的gradle.propreties,然后在build.gradle引用变量就能够了。
例如以下:
这样也能起到相同的效果。
三、应用程序签名的意义
(1)保障开发人员的合法权益
在我们相应用程序进行打包签名后,即表示此应用程序是签名人或机构所开发的,对此应用程序具有全部权。
(2)预防应用程序替换
应用程序签名能够防止部分人通过使用同样的Package Name来混淆替换已经安装的程序,从而出现一些恶意篡改。APK假设使用一个key签名,公布时还有一个key签名的文件将无法安装或覆盖老的版本号。这样能够防止你已安装的应用被恶意的第三方覆盖或替换掉。
实际上就是一种标识。
(3)保证应用程序版本号的一致性
一般应用程序都会有更新,即版本号的升级。
假设应用程序的签名不一致,是无法进行更新替代的。所以应用程序的签名是保证当前应用程序顺利进行更新安装的前提。
(4)能够通过权限(permission)的方式在多个程序间共享数据和代码
Android提供了基于数字证书的权限赋予机制,应用程序能够和其它的程序共享概功能或者数据给那那些与自己拥有同样数字证书的程序。假设某个权限(permission)的protectionLevel是signature。则这个权限就仅仅能授予那些跟该权限所在的包拥有同一个数字证书的程序。还有一方面。Android系统同意拥有同一个数字签名的程序执行在一个进程中。Android程序会将他们视为同一个程序。所以开发人员能够将自己的程序分模块开发,而用户仅仅须要在须要的时候下载适当的模块。
以上是关于Android Studio 打一个正式签名的Apk的主要内容,如果未能解决你的问题,请参考以下文章