使用指定设备发布发布应用,在使用构建Deeplink实现下载应用生成应用描述文件(例如:manifest.json5,文件名可自定义)时,需要获取描述文件签名(即sign字段),应该如何获取sign的值呢?
java -jar manifest-sign-tool-1.0.0.jar -operation sign -mode localjks -inputFile D:\old_manifest.json5 -outputFile D:\new_manifest.json5 -keystore D:\internaltest.p12 -keystorepasswd Abc123456 -keyaliaspasswd Abc123456 -privatekey internaltest
说明:
执行operation指令时,其中old_manifest.json5的sign字段无需填写,生成的new_manifest.json5会自动补充,以下为执行前后示例:
old_manifest.json5:
"sign": "描述文件签名"
new_manifest.json5:
"sign": "MEUCIEl****4AVZyWFc="
低版本的JDK会限制加密强度并产生报错,需要升级JDK到1.8.0.3*或更高版本(不包括java11的版本)。
Q:指定设备发布时提示错误码10019:描述文件验签失败,如何处理?
A:检查描述文件的签名密钥与安装包的签名密钥,确保二者保持一致。使用签名工具进行本地验证,获取签名后的描述文件(如manifest.json5),执行如下命令进行验签:
java -jar manifest-sign-tool-1.0.0.jar -operation verify -inputFile C:\xxx\manifest.json5 -keystore C:\xxx\internaltest.p12 -keystorepasswd internaltest
其中operation为操作类型,验证签名时为verify;inputFile为需要验签的manifest.json5文件路径;keystore为p12密钥文件路径;keystorepasswd为密钥文件密码。manifest-sign-tool-1.0.0.jar可通过验签工具获取。特别注意安装包有多产物和多签名密钥的情况,需确保描述文件签名时使用的签名密钥p12和安装包使用的签名密钥一致。更多内容可参考文档。