gpt4 book ai didi

android - 在哪里存储用于 CirlceCi 构建的 Android KeyStore 文件?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:01:43 29 4
gpt4 key购买 nike

我正在尝试为我的 Android 应用配置持续集成构建。我为此使用 CircleCi 平台。现在我在本地存储我的应用程序 Keystore.jks 文件,但 CircleCi 需要它来签署我的应用程序。如果不将文件存储在我的 git 存储库中,我该如何实现呢?或者也许我不应该担心存储库是私有(private)的?

我的 gradle 签名配置:

signingConfigs {
if (System.getenv("CIRCLECI")) {
release {
keyAlias '****'
keyPassword '****'
storeFile file(System.getenv("******"))
storePassword '****'
}
}else{
release {
...
}
}
}

我的圈子.yml:

general:
artifacts:
- /home/ubuntu/my-app/app/build/outputs/apk/
machine:
environment:
ANDROID_HOME: /usr/local/android-sdk-linux
dependencies:
override:
- chmod +x gradlew
test:
override:
- ./gradlew assemble

我试图将 CircleCi 上的 keystore 文件保存为环境变量,但它不起作用,我的构建失败并出现异常:

> Execution failed for task ':app:validateSigningDemoRelease'.
> > Keystore file /home/ubuntu/my-app/app/ HERE_IS_THE_KEYSTORE not found for signing config 'release'.

未签名和调试构建成功完成。

如果您有其他建议,我也愿意使用任何不同的 ci 平台。

提前感谢您的每一个建议!

最佳答案

我最近为这个问题苦苦挣扎,决定最简单的解决方案是将 keystore 文件编码为 base64 并将其放入 CircleCI 的环境变量中。

这将对文件进行编码,您可以复制并粘贴该值:

openssl base64 -A -in .signing/release.jks 

然后,在 CircleCI 的 config.yml 文件中,将其解码回来:

echo $RELEASE_KEYSTORE_BASE64 | base64 -d > .signing/release.jks

关于android - 在哪里存储用于 CirlceCi 构建的 Android KeyStore 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44911547/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com