Fastlane是新手,当我编写用于将应用程序部署到内部测试的命令时,它向我显示以下错误:
失败:生成失败,发生异常。
任务':app:validateSigningRelease'的执行失败。
找不到用于签名配置“externalOverride”的密钥库文件“/Users/rooh/.gradle/daemon/5.1.1/keystore.jks”。
使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获取更多日志输出。与--scan一起运行以获取完整的见解。
此构建中使用了不推荐使用的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
最佳答案
INFO:对于其他用户:
您可以创建多个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']
})
稍后,您需要修改.bash_profile并添加ENV变量。