android - Travis 构建 - 无法从 key 环文件中检索 key ,因为它不存在

标签 android git encryption gradle travis-ci

我目前在我的开源项目中使用 Travis CI。一切顺利,直到我尝试在 travis 构建成功后将 Artifact 上传到 Maven Central 暂存存储库。

请在下面找到我遵循的步骤:

  • 添加了一个 initiate-publish.sh 脚本文件,该文件将在构建成功后发布到 Maven 中心。
  • 加密以下内容
    • 加密密码以保护我的加密文件 -> travis encrypt -r username/gitrepo ENCRYPT_PASSWORD="my password"
    • secring.gpg 文件 - openssl aes-256-cbc -in .utility/local.secring.gpg -out .utility/secring.gpg.enc -pass pass:"my password" -> 这生成了我添加到我的存储库中的 secring.gpg.enc
  • 使用以下内容修改 .travis.yml 文件
    • 安装前: openssl aes-256-cbc -pass pass:$ENCRYPTION_PASSWORD -in .utility/secring.gpg.enc -out .utility/local.secring.gpg -d

我将文件提交给触发构建的 Git。 after_success: 退出并显示错误 “无法评估任务 ':android-db-migration-library:signArchives' 的 onlyIf 谓词。

Unable to retrieve secret key from key ring file '/home/travis/build/PalomaMobile/android-db-migration/android-db-migration-library/.utility/local.secring.gpg' as it does not exist"

可以查看日志https://travis-ci.org/PalomaMobile/android-db-migration/builds/63114335

据我所知,“安装前”将解密文件并存储它,我的发布脚本可以访问它。

你能帮我理解为什么会这样吗?您可以查看我的.travis.yml 文件、发布脚本文件等。@ https://github.com/PalomaMobile/android-db-migration

最佳答案

我仔细检查了您的构建日志,您的 signArchive 任务似乎期望 key 位于

/home/travis/build/PalomaMobile/android-db-migration/android-db-migration-library/.utility/generated.secring.gpg

但实际上它位于

/home/travis/build/PalomaMobile/android-db-migration/.utility/generated.secring.gpg

所以我建议在您的 .utility/initiate-publish.sh 文件中使用 key 文件的绝对路径而不是相对路径。

希望这对您有所帮助!

关于android - Travis 构建 - 无法从 key 环文件中检索 key ,因为它不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30316403/

相关文章:

git - Git 是如何处理二进制文件的?

git 说 "fatal: confused by unstable object source data"

mysql - 在 MySQL 数据库 : Hash vs Encryption? 上存储密码

android - React native 应用程序构建失败。尝试做一个二维码阅读应用

git - 我可以在 git log 输出中转义字符吗?

java - 在 Java 中快速、简单地使用对称密码进行整数加密

java - 使用 TLS 连接通过 SMTP 发送电子邮件会加密用户名和密码吗?

android - 如何将 FlutterFire 与模拟器演示项目一起使用?

android - 如何避免在 onError 之后出现可观察的停止

android - Xamarin - Mono 和 Android 通信