调试 Jenkins 和 Android 构建的密钥库

Dro*_*kas 5 android jenkins

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

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

Chr*_*Orr 4

默认情况下,Android 构建系统使用$HOME/.android/debug.keystore.

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

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


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

这意味着,无论用户在哪台计算机上构建应用程序,都将始终使用相同的调试密钥库来签署 APK。

例如,您可以添加新signingConfigapp/build.gradle

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

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

此调试密钥库必须具有与 Android 构建系统生成的密钥别名和密码相同的密钥别名和密码,即alias androiddebugkey、password 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
Run Code Online (Sandbox Code Playgroud)