在cmd进入jdk的bin目录,把keystore文件和apk安装包放到bin目录下,然后执行以下命令,需要管理员权限:

jarsgner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore [keystorePath] -singnedjar [apkOut] [apkln] [alias]

例如

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore androids.keystore -signedjar mzbl36000.apk mzbl3600.apk 00000000000

jarsgner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore [keystorePath] -singnedjar [apkOut] [apkln] [alias]

ps:红色英文不填的话,默认签名算法采用“SHA256withRSA”,所以会导致360提示:”您的应用签名算法采用“SHA256withRSA”,在部分4.2一下安卓版本的手机上不能安装

详细

Android版本加固后签名 
在上传应用的时候,应用加固之后会破坏原有的签名,需要重新签名才能发布到应用市场中,如下图: 

加固后的签名步骤如下: 
1:签名之前需要Java的JDK环境以及被破坏签名的apk安装包,以及将需要用来签名的keystore文件。 
2:将未签名的apk和keystore文件拷贝到JDK安装目录下bin子目录下,通过bin目录下的jarsigner命令对未签名的apk安装包进行签名。 
通过cmd进入命令行模式: 
1、 Windows+R 
 
2、 输入如下命令进行签名: 
jarsigner -verbose –keystore 指定数字证书存储路径 
-signedjar 签名后的apk包未签名的 apk包_legu.apk 数字证书别名 
如: 
jarsigner -verbose -keystore mzjsz.keystore -signedjar zjsz_android_release-release.apk zjsz_android_release-release.apk zjsz 
以上命令的说明: 
-verbose:指定生成详细输出 
-keystore:指定数字证书存储路径 
-signedjar:该选项的三个参数为 
签名后的apk包 
未签名的apk包 
数字证书别名(后面有获取方式) 
注意数字证书别名有效期。 
注意:签名后的apk包和未签名的apk包的包名尽量不要相同,否则将会将之前的版本直接覆盖掉。 
输入正确指令之后会要求输入密钥库的密码即keystore的File Password,输入的过程中不会有任何的显示。输入完成按Enter键: 
 
接着输入密钥口令即keystore的Key Password,完成按Enter 
 
当出现下图即表示成功 
 
在bin目录下生成一个mzjsz_android.apk文件。 

获取keystore数字证书别名: 
在签名的过程中会需要获取keystore数字证书别名,具体的操作如下: 
通过命令定位在JDK的bin目录下,或者在bin文件夹中按住shift+右键,在弹出菜单项中选择在此处打开命令窗口。 
输入指令keytool -list -v -keystore keystore文件名 –storepass keystore文件密码 
例如:keytool -list -v -keystore keystoreName -storepass keystorePassword 
出现下图就表示获取成功 

APP上传应用商店加固后打包的更多相关文章

  1. app上传到App Store的快捷方法及步骤

    跳过证书的申请及配置概要文件的设置, 现在根据已有的配置概要文件及发布证书开始: 1.先在Xcode上的PROJECT和TARGETS->Build Setting->Code Signi ...

  2. Ios App上传步骤

    前言:作为一名IOS开发者,把开发出来的App上传到App Store是必须的.下面就来详细介绍下具体流程. 1.打开苹果开发者中心:https://developer.apple.com 打开后点击 ...

  3. IOS APP 上传到AppStore

    由于第一次接触要把 app 上传到 AppStore 比较棘手,很多地方不懂,研究了 大半天 终于给上传成功了,现在坐等审核吧,首先把上传到AppStore的流程 整理下 : 第一 :准备证书 (要确 ...

  4. APP上传

    原文网址: http://blog.csdn.net/ayangcool 前言:作为一名IOS开发者,把开发出来的App上传到App Store是必须的.下面就来详细介绍下具体流程. 1.打开苹果开发 ...

  5. iOS app上传错误集锦(转载)

    1.工程里增加了版本自动更新. 2.未增加判断网络状态的类Reachability. 3.问题:error itms -90049 This bundel is invalid. The bundle ...

  6. 安卓app上传到应用宝、360手机助手、小米应用商店、百度手机助手/安卓市场/91助手

    1.小米应用商店 小米开放平台网站:https://account.xiaomi.com 注册帐号教程地址:http://dev.xiaomi.com/doc/?p=90 应用提交流程:http:// ...

  7. APP上传APP Store遇到的各种问题

    内容含敏感话题或对苹果不友好的信息(如苹果婊) 使用了友盟的统计SDK,获取了IDFA但是上传填写无广告 采用友盟IDFA的sdk,并用友盟的默认淘宝页面广告,被告知和产品内容不符(最近) App在i ...

  8. app上传到app Store常见问题

    一.首先看一下提交界面出现的问题(能成功打包成.ipa) 产生问题的原因如下:由于工程中含有sub project,而sub project中有private或public的文件导致的.这样的应用往往 ...

  9. App上传到应用宝的一些问题

    问题:提示应用需要认领,怎么解决? 原因:如果app之前在其他市场上传过,再上传到应用宝,应用宝首先会从其他应用市场抓包,如果发现抓取的包和上传的app包名都是一致的,这时候提示你需要认领app. 操 ...

随机推荐

  1. 用GDB命令PO(print-object)打印UIView的视图层级

    UIView有一个私有方法: recursiveDescription 这个方法可以显示出当前视图的详细层级,可以在代码中直接调用,也可以在GDB中调用,在GDB中调用时需要借助另一个GDB命令:pr ...

  2. C++的多态例子

    1.多态的例子 题目: 某小型公司,主要有四类员工(Employee):经理(Manager).技术人员(Technician).销售经理(SalesManager)和推销员(SalesMan).现在 ...

  3. 12v继电器驱动电路

  4. 图解SQL inner join、left join、right join、full outer join、union、union all的区别

    转于:http://justcoding.iteye.com/blog/2006487 这是一篇来自Coding Horror的文章. SQL的Join语法有很多:有inner的,有outer的,有l ...

  5. Android-->Realm(数据库ORM)使用体验,lambda表达式

    Realm,为移动设备而生.替代 SQLite 和 Core Data. 非常庆幸,官方帮助文档有中文: https://realm.io/cn/docs/java/latest/ 尽管眼下最新的版本 ...

  6. 多线程-synchronized

    引言 synchronized是Java线程同步中的一个重要的概念,synchronized是独占锁(互斥锁),同时也是可重入锁(可重入锁一定程度上避免了死锁的问题,内部是关联一个计数器,加一次锁计数 ...

  7. Atitit.100% 多个子元素自适应布局属性

    Atitit.100% 多个子元素自适应布局属性 1.1. 原理1 1.2. Table布局1 1.3. Css布局1 1.4. 判断amazui加载完毕2 1.1. 原理 每个子元素平均分配,但是有 ...

  8. loongson官方PMON使用

    目录 [隐藏]  1 PMON使用介绍 1.1 进入PMON控制界面 1.2 Pmon的图形界面 1.3 Pmon的基本命令 1.3.1 Boot and Load 启动与加载内核 1.3.2 MyC ...

  9. Linux高性能server编程——I/O复用

     IO复用 I/O复用使得程序能同一时候监听多个文件描写叙述符.通常网络程序在下列情况下须要使用I/O复用技术: client程序要同一时候处理多个socket client程序要同一时候处理用户 ...

  10. linux命令之高级使用 find

    1. 想查看当前文件夹及子文件夹里有没有文件名为“abc”的文件 # find . -name abc . :表示当前目录 -name:表示要根据名称查找 2. 想查看当前文件夹及子文件夹里有没有”x ...