纯牛奶645
纯牛奶645
  • 发布:2016-10-11 14:50
  • 更新:2016-10-11 14:50
  • 阅读:6833

在mac下对android版app进行签名

分类:HTML5+
   在Android 系统中,所有安装 到 系统的应用程序都必有一个数字证书,此数字证书用于标识应用程序的作者和在应用程序之间建立信任关系,如果一个 permission的protectionLevel为signature,那么就只有那些跟该permission所在的程序拥有同一个数字证书的应 用程序才能取得该权限。  
    Android使用Java的数字证书相关的机制来 给apk加盖数字证书,要理解android的数字证书,需要先了解以下数字证书的概念和java的数字证书机制。  
    Android系统要求每一个安装进系 统的应用程序都是经过数字证书签名的,数字证书的私钥则保存在程序开发者的手中。  
    Android将数字证书用来标识应用程序的作者和在应用程序之间建立信 任关系,不是用来决定最终用户可以安装哪些应用程序。  
    这个数字证书并不需要权威的数字证书签名机构认证,它只是用来让应用程序包自我认证的。  

下面我将详细的说一下mac电脑下如何申请数字证书:
(1)先用命令‘sudo -s’ 获得系统权限 Mac终端命令,下载java jdk
(2)java mac 安装路径,我用的是这个:/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home; 1、Mac OS自带的JDK 6:/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java。看到有朋友说OS 10.10删除了自带的JDK 6,但是我升级10.10之后还是能找到该路径,不知搜索道是否需要重新在苹果网站下载JDK 6呢?
2、Oracle的JDK 7/8 (1)用/usr/libexec/java_home命令得到的Java Home路径是:/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home,这是我之前在Oracle网站下载的jdk 8 update 20。 (2)在Java控制面板显示的路径:/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java,版本是Java 8 update 25。
(3)在cmd下支座android apk 签名时,输入命令:keytool -genkey -alias MyAndroidKey.keystore -keyalg RSA -validity 20000 -keystore MyAndroidKey.keystore,到最后提示keytool 错误: java.io.FileNotFoundException: MyAndroidKey.keystore (拒绝访问).这是因为权限问题:你的jdk目录在c盘,当前用户无写入权限。
所以要么更改jdk的保存目录,要么更改权限。方法一更改保存目录:就是讲jdk从c盘挪到其它盘。方法二更改权限:以管理员身份运行CMD。任意一种修改后,再键入keytool -genkey -alias MyAndroidKey.keystore -keyalg RSA -validity 20000 -keystore MyAndroidKey.keystore,按提示填写即可。
(4)找到本机电脑上jdk安装的目录,使用cmd命令打开命令窗口,输入cd jdk目录(替换成你的jdk的bin目录),进入到jdk的bin目录,接下来你才可以使用jdk的命令进行操作
(5)使用keytool命令,keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore
其中参数-validity为证书有效天数,这里我们写的大些10000天。还有在输入密码时没有回显(尽管输就是啦) 并且 退格,tab等都属于密码内容,这个密码在给.apk文件签名的时候需要。输入这个命令之后会提示您输入秘钥库的口令,接着是会提示你输入:姓氏,组织单位名称,组织名称,城市或区域名称,省市,国家、地区代码,密钥口令。按你自己的设置输入对应的数据就完成了
(6)生成完成之后在jdk的bin目录之下就可以找到生成的keystore文件了,android.keystore就是刚才生成的文件了,打包android应用的时候就可以直接用了,不过一台电脑生成的keystore只能用一个应用。
相关参考:http://jingyan.baidu.com/article/59703552e877f98fc00740f0.html
http://blog.csdn.net/sherrylhang/article/details/50183417
http://zhidao.baidu.com/link?url=O7B4fJC_N0QP8hDvC0DZQFrwICHo5FCHuZNLqgJqubNZ8h4QJ6zyO37z4fCeesQBaombcr6elv7Oj7uIPbCWKqy5hfLZ3zMaVmc066ZbUMO
http://bbs.360safe.com/thread-2932254-1-1.html

1 关注 分享
超人爷爷

要回复文章请先登录注册