如何修复 fastlane 错误:未找到用于签署配置“externalOverride”的密钥库文件“keystore.jks”。?

Roo*_*aba 6 java deployment android keystore fastlane

我是 fastlane 的新手,当我编写将应用程序部署到内部测试的命令时,它向我显示以下错误:

FAILURE:构建失败,出现异常。

  • 出了什么问题:任务 ':app:validateSigningRelease' 执行失败。

    未找到用于签署配置“externalOverride”的密钥库文件“/Users/rooh/.gradle/daemon/5.1.1/keystore.jks”。

  • 尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。使用 --scan 运行以获得完整的见解。

  • https://help.gradle.org获取更多帮助

此版本中使用了已弃用的 Gradle 功能,使其与 Gradle 6.0 不兼容。使用“--warning-mode all”来显示单个弃用警告。请参阅https://docs.gradle.org/5.1.1/userguide/command_line_interface.html#sec:command_line_warnings

似乎错误是因为密钥库的位置,我已经将密钥库放在项目的应用程序文件中,我在其他项目中这样做并且工作正常,但是在此我不知道为什么它不起作用

我也尝试更改密钥库位置,但仍然

fastfile 中的这条车道:

desc "Deploy a new internal version to the Google Play Store"
lane :internal do
gradle(task: "clean")


gradle(
  task: "assemble",
  build_type: "Release",
  print_command: false,
  properties: {
    "android.injected.signing.store.file" => "keystore.jks",
    "android.injected.signing.store.password" => "*****",
    "android.injected.signing.key.alias" => "alias",
    "android.injected.signing.key.password" => "*****"
    }

)

changelog = prompt(
text: "Changelog: ",
multi_line_end_keyword: "END"
)


supply(
  track: "internal",
  apk: lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH].to_s
)
upload_to_play_store(track: "internal")
end
Run Code Online (Sandbox Code Playgroud)

Jos*_*osh 11

正如 @Rooh Al-mahaba 所说,我必须提供完整的文件路径作为"android.injected.signing.store.file".

另外,~/没有工作;我需要明确地阐明完整的文件路径。


小智 5

信息:对于其他用户:

您可以创建多个 ENV 变量,这对 CI 很有用。

build_android_app(
      task: "assemble", 
      build_type: "Release", 
      flavor: "development",
      flags: "--stacktrace",
      print_command: false,
      properties:{
        "android.injected.signing.store.file" => ENV['KEYSTORE_PATH'],
        "android.injected.signing.store.password" => ENV['STORE_PASSWORD'],
        "android.injected.signing.key.alias" => ENV['KEY_ALIAS'],
        "android.injected.signing.key.password" => ENV['KEY_PASSWORD'],
        "org.gradle.java.home" => ENV['JAVA_HOME']
      })
Run Code Online (Sandbox Code Playgroud)

稍后您需要修改 .bash_profile 并添加 ENV 变量。