调试Jenkins和Android版本的密钥库

时间:2015-08-31 15:21:05

标签: android jenkins

jenkins在构建android项目时使用了什么密钥库。

因为我使用Google登录。  我需要使用我在本地使用的相同调试密钥库。 为此,我覆盖了服务器上的debug.keystore。 但是我仍然无法登录,因为密钥库是不同的。

1 个答案:

答案 0 :(得分:2)

默认情况下,Android构建系统使用$HOME/.android/debug.keystore中的密钥库。

如果该文件在构建时尚不存在,则会自动生成。因此,很可能该应用程序正在您的计算机和Jenkins计算机上使用完全不同的密钥库进行签名。

您可以通过将密钥库从您的计算机复制到Jenkins计算机,再将Jenkins运行的用户$HOME目录复制到来解决此问题。

或者,您可以通过显式提供在构建应用程序的调试版本时使用的密钥库来覆盖默认的构建系统行为。

这意味着,无论用户在哪台机器上构建应用程序,都将使用相同的调试密钥库来对APK进行签名。

例如,您可以向signingConfig添加新的app/build.gradle

signingConfigs {
    debug {
        // Override the local debug keystore, so that
        // all builds have consistent certificates
        storeFile file('../debug.keystore')
    }
}

这假设您已在项目的根目录中创建并签入了调试密钥库。

此调试密钥库必须具有与Android构建系统生成的密钥别名和密码相同的密钥别名和密码,即别名androiddebugkey,密码android

您可以使用keytool生成包含以下属性的密钥:

keytool -genkey -v -keyalg RSA -keysize 2048 -validity 10000 \
  -dname 'CN=Android Debug,O=Android,C=US' -keystore debug.keystore \
  -storepass android -alias androiddebugkey -keypass android