【发布时间】:2014-01-15 00:01:01
【问题描述】:
通常我通过 Eclipse 使用 Android 工具 -> 导出签名的应用程序对我的应用程序进行签名。
现在,我想使用 Jenkins 自动构建和签署我的应用程序。
因此,我在 Mac Mini 上安装了 Jenkins,并使用我的密钥库凭据创建了一个文件 ant.properties。但是用 Jenkins 签署我的应用程序失败了:
BUILD FAILED
The following error occurred while executing this line:
Keystore was tampered with, or password was incorrect: Password verification failed
目前我有 2 个可能导致签名失败的问题:
1) 我的别名包含一个空格
但由于我使用“”(引号),我认为这不是问题。
2) 我的 Keystorepass 包含非 utf8 字符
这是我的 ant.properties 文件,用于与 Jenkins 签名
ant.properties:
key.store=mykey.store
key.alias="My Alias"
key.store.password=*€*
key.alias.password=***
如您所见,我有一个非 utf8 字符,我认为这会导致签名过程失败。使用 Eclipse 时,我可以复制并粘贴我的密码,一切都按预期工作。但是对于 Jenkins,它每次都失败了。
目前尝试过:
我尝试通过命令行(在 Windows 7 上)和 jarsigner 使用此行手动签署我的应用程序(注意,当我粘贴密码时,在我的 Windows 7 cmd 行上,€ 符号被替换为 ?):
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore mykey.store MyApp.apk "My Alias" -storepass *?* -keypass ***
这很有效。
但是,我的 Jenkins 安装在 mac mini 上运行,相同的命令要求我输入我的密钥库通行证。当我输入我的通行证或复制/粘贴它时,它给了我以下错误:
RuntimeException: keystore load: keystore was tampered with, or password was incorrect
奇怪
由于密码是非utf8字符,所以复制粘贴时在各个平台上的显示都不一样。例如。目前我见过以下人物:
WINDOWS TXT FILE (ORIGINAL): *€*
WINDOWS PASTE IN CMD: *?*
MACMINI OPEN ORIGINAL FILE: *Ä*
有什么建议吗?
【问题讨论】:
标签: android ant utf-8 character-encoding jenkins