如何导出一个未提取apk签名文件 工具的APK文件

According to : Build Unsigned APK with Gradle you can simply build your application with gradle.
In order to do that:
click on the drop down menu on the toolbar at the top (usually with android icon and name of your application)
select Edit configurations
click plus sign at top left corner or press alt+insert
select Gradle
choose your module as Gradle project
in Tasks: enter assemble
press play
After that you should find your apk in directory ProjectName\build\outputs\apk
版权声明:本文为博主原创,未经博主允许不得转载。android导出未签名的apk文件为什么没有res文件呢如题_百度知道安卓(12)
编辑推荐:,这是一个高质量的技术干货分享社区,web前端、Android、iOS、设计资源和产品,满足你的学习欲望。
在Android系统中,要求所有应用程序必须经过数字签名后才能安装。Android系统使用这个证书来识别应用程序的作者,并建立程序间的信任关系。 证书并不用让于用户控制可以安装哪些程序,证书也不需要授权中心来签名。在Android系统中,应用程序使用自己签名的证书是完全允许而且是很普遍的。
关于Android应用程序签名主要有以下几个重点:
Debug Key和Release Key
在调试应用程序时,Android SDK工具会自动对应用程序进行了签名。Eclipse的ADT插件和Ant编译工具都提供了两种签名模式——Debug模式和Release模式。 在开发和测试时,可以使用Debug模式。Debug模式下,编译工具使用内嵌在JDK中的Keytool工具来创建一个keystore和一个 key(包含公认的名字和密码)。在每次编译的时候,会使用这个Debug Key来为apk文件签名。由于密码是公认的所以每次编译的时候,并不需要提示你输入keystore和key密码。
当程序准备发布时,必须在Release模式下使用密钥来为apk文件签名。有以下两种方式可以做到:
1. 命令行中使用Keytool和Jarsigner。
这个方法中,首先需要编译出一个未签名的apk。然后使用Jarsigner(或类似的工具),用密钥为apk手动签名。如果没有合适的密钥,可以运行Keytool来手动生成自己的keystore/key。
2. 使用ADT导出向导。
如果使用Eclipse/ADT插件进行开发,可以使用导出向导来编译程序,生成密钥(如果需要),并为apk签名,所有这些操作都在导出向导中。一旦程序签名了,别忘了运行zipalign来为apk进行额外的优化。
关于签名策略
应用程序签名的某些方面可能会影响应用程序的开发,特别是打算一起发布多个应用程序的时候。一般来说,推荐的策略是在整个应用程序寿命内,所有的程序都用相同的证书签名。主要出于以下几点考虑:
在设计应用程序时,一定要考虑以上这些,并使用一个合适的证书来为应用程序签名。
配置签名环境
首先要保证Keytool对SDK编译工具来说是可利用的。一般可以通过设置JAVA_HOME环境变量来告诉SDK编译工具如何找到Keytool。另 外还可以添加JDK中Keytool的路径到PATH的变量里。 如果在Linux上开发,并且使用GNU编译器来编译Java,那么要确保系统是使用JDK中的Keytool,而不是gcj。如果Keytool已经在 PATH中,它有可能是对/usr/bin/keytool的符号链接。这种情况下,要检查符号链接的目标,确保它是指向JDK中的Keytool。
如果要发布应用程序,还需要Jarsigner工具。Jarsigner和Keytool都包含在JDK中。
Debug模式下签名
Android编译工具提供了Debug签名模式,使得开发和调试应用程序更加容易,而且还满足Android系统的签名要求。在使用Debug模式编译 app时,SDK工具会调用Keytool工具自动创建一个Debug的keystore和key。然后这个Debug key会自动用于apk的签名,这样就不需要手动为应用程序包签名了。
关于SDK工具使用的keystore:
如果需要可以改变Debug keystore/key的位置和名字,或者提供一个自定义的Debug keysotre/key(在Eclipse/ADT中,通过修改 Windows&Preferences&Android&Build配置实现)。但是任何自定义的Debug keystore/key必须使用和默认Debug key(上面描述的)相同的名字和密码。
注意:不能将签有Debug证书的应用程序发布给最终用户。
Eclipse用户:如果在Eclipse/ADT下开发(并且已经按照上面的描述配置了Keytool),Debug模式下签名默认是开启的。运行或是调试应用程序 时,ADT会使用Debug证书进行签名,并运行zipalign,然后安装到选择的模拟器或是已连接的设备。整个过程不需要人工干预。
Ant用户:如果使用Ant来编译apk文件,则需要在ant命令中添加debug选项来开启Debug签名模式(假设正在使用由android工具生成 build.xml文件)。运行ant debug编译程序时,编译脚本会生成一个keystore/key,并为apk进行签名。然后脚本会使用zipalign工具对apk进行对齐处理。整 个过程不需要人工干预。
Debug证书过期
Debug模式下签名用的证书自从它创建之日起,1年后就会失效。当证书失效时,会得到一个编译错误,Ant上错误如下:
Packaging bin/samples-debug.apk, and signing it with
a debug key...
Debug Certificate expired on 8/4/08 3:43 PM
在Eclipse ADT中,Android控制台上也将会看到一个类似的错误。要解决这个问题,只需删掉debug.keystore文件即可。该文件默认存储的位置在:
删除后,在下一次编译的时候,编译工具会重新生成一个新的keystore和Debug key。
Release模式下签名
应用程序准备发布给其它用户时,需要:
如果使用Eclipse ADT插件开发,可以使用导出向导来完成编译、签名和对齐等操作。整个过程中,导出向导还可以生成一个新的keystore和密钥。
关于密钥的生成
为了进行程序签名,必须有一个合适的密钥。这个密钥应有以下特征:
如果没有合适的key,则需要使用Keytool来生成一个。用Keytool生成一个key,可使用keytool命令并传入一些可选参数。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:476051次
积分:7101
积分:7101
排名:第2117名
原创:183篇
转载:314篇
评论:55条
(2)(8)(6)(2)(2)(7)(1)(20)(1)(2)(1)(7)(1)(1)(1)(2)(40)(3)(1)(9)(9)(6)(29)(2)(5)(10)(2)(4)(11)(11)(8)(6)(13)(2)(2)(2)(1)(4)(1)(8)(17)(17)(38)(4)(2)(2)(4)(6)(6)(7)(25)(1)(9)(7)(22)(4)(7)(13)(4)(7)(2)(22)(3)(8)(7)(22)(16)(1)(1)(1)2244人阅读
为Android/Ophone应用程序签名步骤:
1.确保电脑上安装了JDK,因为我们将使用JDK自带的创建和管理数字证书的工具Keytool。在命令行下输入如下命令:
keytool -genkey -v -keystore ophone.keystore -alias ophone -keyalg RSA -validity 20000
该命令中,-keystore ophone.keystore 表示生成的证书,可以加上路径(默认在用户主目录下);-alias ophone 表示证书的别名是ophone;-keyalg RSA 表示采用的RSA算法;-validity 20000表示证书的有效期是20000天。回车
========================================
输入keystore密码:[密码不显示]
再次输入新密码:[密码不显示]
您的名字与姓氏是什么?
[Unknown]:
您的组织单位名称是什么?
[Unknown]:
您的组织名称是什么?
[Unknown]:
您的组织名称是什么?
[Unknown]:
您所在的城市或区域名称是什么?
[Unknown]:
您所在的州或省份名称是什么?
[Unknown]:
该单位的两字母国家代码是什么?
[Unknown]:
CN CN=yarin, OU=yang, O=yarin, L=Chengdu, ST=Sichuan, C=CN
输入&ophonesdn.keystore&的主密码
(如果和 keystore 密码相同,按回车):
正在存储证书...
========================================
此时,我们会在互用主目录下看到ophone.keystore,即我们刚刚创建的证书。
2.给应用程序(apk)签名,在EC中,右键单击应用程序工程,如图选择
如果是Android则选择“Android Tools”......
然后选择证书的存放路径,填写相关资料,完成,即可生成被签名的apk文件。如下图所示:
如上图所示,我们可以看到也可以在这里选择”Create new keystore“来创建一个证书。输入密码,点击下一步,填写相关信息,如下图所示。
需要注意,这里的证书有效期只能填写1-1000天。图形界面,还更简单了。呵呵...
顺便找了点keytool的资料。
JDK中keytool常用命令
在用户主目录中创建一个默认文件&.keystore&,还会产生一个别名,证书中包含用户的公钥、私钥和证书
指定密钥库的名称(产生的各类信息将不在.keystore文件中)
指定密钥的算法
指定创建的证书有效期多少天
指定密钥长度
-storepass
指定密钥库的密码
指定别名条目的密码
指定证书拥有者信息 例如: &CN=sagely,OU=atr,O=szu,L=sz,ST=gd,C=cn&
显示密钥库中的证书信息
keytool -list -v -keystore sage -storepass ....
显示密钥库中的证书详细信息
将别名指定的证书导出到文件 keytool -export -alias caroot -file caroot.crt
参数指定导出到文件的文件名
删除密钥库中某条目
keytool -delete -alias sage -keystore sage
-keypasswd
修改密钥库中指定条目口令
keytool -keypasswd -alias sage -keypass .... -new .... -storepass ... -keystore sage
将已签名数字证书导入密钥库 keytool -import -alias sage -keystore sagely -file sagely.crt
导入已签名数字证书用keytool -list -v 以后可以明显发现多了认证链长度,并且把整个CA链全部打印出来。
1.证书的显示
[-v | -rfc] [-alias &alias&]
[-keystore &keystore&] [-storepass &storepass&]
[-storetype &storetype&] [-provider &provider_class_name&]
例如:keytool -list -v -alias RapaServer -keystore cacerts -storepass
keytool -list -v -keystore d2aapplet.keystore -storepass
-storetype IAIKKeystore
2.将证书导出到证书文件
例如:keytool -export -keystore monitor.keystore -alias monitor -file monitor.cer
将把证书库 monitor.keystore 中的别名为 monitor 的证书导出到 monitor.cer 证书文件中,它包含证书主体的信息及证书的公钥,不包括私钥,可以公开。
keytool -export -keystore d2aApplet.keystore -alias RapaServer -file Rapa.cert -storetype IAIKKeystore
3.将keystore导入证书中
这里向Java默认的证书 cacerts导入Rapa.cert
keytool -import -alias RapaServer -keystore cacerts -file Rapa.cert -keystore cacerts
4.证书条目的删除
keytool的命令行参数 -delete 可以删除密钥库中的条目,如: keytool -delete -alias RapaServer -keystore d2aApplet.keystore ,这条命令将 d2aApplet.keystore 中的 RapaServer 这一条证书删除了。
5.证书条目口令的修改
使用 -keypasswd 参数,如:keytool -keypasswd -alias RapaServer -keystore d2aApplet.keystore,可以以交互的方式修改 d2aApplet.keystore证书库中的条目为 RapaServer 的证书。
Keytool -keypasswd -alias RapaServer -keypass 654321 -new 123456 -storepass 888888 -keystore d2aApplet.keystore这一行命令以非交互式的方式修改库中别名为 RapaServer 的证书的密码为新密码 654321,行中的 123456 是指该条证书的原密码, 888888 是指证书库的密码。
/nknow/blog/item/dc846b383bddd86a.html
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:246420次
积分:3637
积分:3637
排名:第6268名
原创:103篇
转载:78篇
评论:29条
(4)(1)(8)(2)(2)(3)(2)(2)(8)(3)(3)(2)(6)(1)(6)(5)(11)(7)(3)(3)(4)(3)(4)(2)(5)(11)(7)(8)(8)(5)(9)(8)(4)(1)(13)(5)(9)您的举报已经提交成功,我们将尽快处理,谢谢!
在工程目录下有一个bIn文件夹,在那里面有一个*****.apk就是你这个工程的apk文件。
希望能帮助你。
大家还关注}

我要回帖

更多关于 eclipse导出签名apk 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信