Android 签名发布 签名脚本

原创 2016年06月02日 10:20:03

请注意

签名前,请确认java环境Android环境是否配置正确

生成签名


# 生成签名 别名 [myKey] 有效期 50年, 算法 RSA 文件名 [myKey.keystore]

keytool -genkey -alias myKey -keyalg RSA -validity 17820 -keystore myKey.keystore

# 提示,其中国家代码 中国-CN

此命令试用于 jdk 1.7 及 1.7以下,如果高于请使用如下命令


# 1.8以后的jdk要求时间校准 加入 -tsa http://timestamp.digicert.com 如果出现校验时间错误,请找一个能用的tsa服务器

keytool -tsa http://timestamp.digicert.com -genkey -alias myKey -keyalg RSA -validity 17820 -keystore myKey.keystore

命令执行后有提示输入各种信息,首先是 yourStorepass 然后是签名的各种信息,确认请输入 y, 最后输入别名的aliasesPass

也就是说一个签名文件,包括 签名密码 别名 别名密码 一个文件 三个字符串

特别的,最好使用时间戳制造签名文件,这样可以在签名到期后,用户仍然可用

签名 APK


# 输入完整信息签名一个应用,注意填写[]中对应的内容

# [yourStorepass] 签名文件密码 [aliasesPass] 别名密码 [forSignAPKPath] 要签名的apk路径  [aliases] 别名

jarsigner -verbose -keystore myKey.keystore -storepass [yourStorepass] -keypass [aliasesPass] [forSignAPKPath] [aliases]

# 查看帮助

jarsingner -help

校验签名


# 查看一个路径为 [verifyApkPath]APK 是否签名

jarsigner -verify [verifyApkPath]

# 通过一个路径为 [keystorePath] 的签名文件,校验一个 路径为 [verifyApkPath]apk

jarsigner -verbose -verify -keystore [keystorePath] -certs [verifyApkPath]

查看签名文件信息


# 查看一个路径为 [keystorePath] 的签名文件的信息,需要签名的库密码

keytool -list -keystore [keystorePath]

签名脚本

OSX or Linux

创建文件 my_sign_apk.sh 内容为


#!/bin/bash

# setting default key path here

# local OPTIND

# jarsigner -verbose -verify -keystore ${keyPath} -certs ${packagePath}

DEFAULT_KEY_PATH=/Users/sinlov/opt/myShell/myKey.keystore

DEFAULT_STORE_PASS="myPass"

DEFAULT_ALIASES="myAliases"

DEFAULT_KEY_PASS="keyPass"

DEFAULT_DIGESTALG=SHA1

DEFAULT_SIGALG=MD5withRSA



sigalg=${DEFAULT_SIGALG}

digestalg=${DEFAULT_DIGESTALG}

keyPath=${DEFAULT_KEY_PATH}

storepass=${DEFAULT_STORE_PASS}

keypass=${DEFAULT_KEY_PASS}

aliases=${DEFAULT_ALIASES}

packagePath=



IS_VERIFY=false



if [ ! -n "$1" ]; then

    echo "unkonw path, please use apk path"

    exit 1

else

    while getopts "p:k:h:" arg #after param has ":" need option

    do

        case $arg in

            p)

                echo "Package path: $OPTARG"

                packagePath=$OPTARG

                ;;

            k)

                echo "Key Path: $OPTARG"

                keyPath=$OPTARG

                ;;

            h)

                echo "use -p [packagePath] -k [keyPath] -h Show help"

                exit 1

                ;;

            ?)  # other param?

                echo "unkonw argument, please use -p [packagePath] -k [keyPath]"

                exit 1

                ;;

        esac

    done

fi



#echo "sigalg: ${sigalg}"

#echo "digestalg: ${digestalg}"

#echo "keyPath: ${keyPath}"

#echo "storepass: ${storepass}"

#echo "aliases: ${aliases}"

#echo "keypass: ${keypass}"

#echo "packagePath: ${packagePath}"

jarsigner -verbose -digestalg ${digestalg} -sigalg ${sigalg} -keystore ${keyPath} -storepass ${storepass} -keypass ${keypass} ${packagePath} ${aliases}
  • 用法

# 给予运行权限

chmod +x my_sign_apk.sh

# 查看帮助

./my_sign_apk.sh -h

# 快速签名

./my_sign_apk.sh -p [apkPath]

# 指定签名文件签名

./my_sign_apk.sh -k [keyPath] -p [apkPath]

Windows

新建文件 sign.bat 内容为


@echo.============= Start Sign APK=============

@rem please set params with []

jarsigner -verbose -digestalg SHA1 -sigalg MD5withRSA -keystore [YourKeyFullPath] -storepass [storepass] -keypass [keyPass] %~nx1 [aliases]
pause
  • 用法 编辑好对应的参数,拖拽未签名的 apk 到文件 sign.bat图标即可
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

[Android Studio 权威教程]多渠道打包和一键完成(全部产品)打包并签名

好久没有更新blog了,今天给大家带来的是AS 的2种方式实现多渠道打包,并且我们还要验证是否实现了多渠道打包的功能,最后在让大家爽一下实现一键打包所有的渠道包并且给apk签名 多渠道打包 方法1...

android apk使用系统签名之windows批处理

链接:http://pan.baidu.com/s/1i3E9a6L 密码:mpei 

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

android 为什么需要签名

所有的Android应用程序都要求开发人员用一个证书进行数字签名,anroid系统不会安装没有进行签名的由于程序。     平时我们的程序可以在模拟器上安装并运行,是因为在应用程序开发期间,由于是以...

Android 签名发布 签名脚本

请注意 生成签名 签名 APK 校验签名 查看签名文件信息 签名脚本 OSX or Linux Windows 请注意签名前,请确认java环境, Android环境是否配置正确生成签名 # 生成签名...

APK签名

为什么要签名?     开发Android的人这么多,完全有可能大家都把类名,包名起成了一个同样的名字,这时候如何区分?签名这时候就是起区分作用的。     由于开发商可能通过使用相同的Packa...

Android apk签名

Android系统要求所有的应用必须被证书进行数字签名之后才能进行安装。android系统通过该证书来确认应用的作者,该证书是不需要权威机构认证的,一般情况下应用都是用开发者的自签名证书

代码签名探析

在 iOS 或 OS X 平台上进行应用开发时,你所需要使用的 API 大多设计得简洁明了。你可以轻易地实现酷炫的动画效果,便捷地进行应用发布前测试,或是用 Core Data 将数据安全的存储在...

android为App签名(为apk签名)

本文转载自:http://blog.csdn.net/jasontome/        当学习是一种快乐的时候,你就能感受到享受;当你享受的时候,你就会愿意与志同道合者分享,这也是另一种快乐,而生...

使用Android Studio对Android应用打包签名

大部分时候,开发者都会使用Androidstudio对应用进行打包签名,那么关于应用打包签名涉及到哪些步骤呢?首先你要知道什么是签名?为什么要对应用进行签名?对应用签名就相当于对外界说这款应用是我开发...

Android 打包签名 从生成keystore到完成签名 -- 转

 进入生成工具: 工具帮助: 输入指令并获得结果: 转自: http://www.cppblo...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)