尝试在CI / CD环境中使用Jetifier,特别是对我来说,我正在使用bitrise,但真正的问题是我想自动化部署过程。在AndroidX之前,此方法运行良好,现在我需要一种通过命令行在整个应用程序中使用jetifier的方法。我已经开始使用exclude
摆脱了所有可以想象的依赖,但是enableJetifier=true
不会做任何事情,除非您是从Android Studio构建的。我是否错过了在过去两个星期的谷歌搜索中找不到的gradle插件?还是这是一个未解决的问题?
答案 0 :(得分:2)
我在詹金斯/法斯特兰遇到了同样的问题。由于出于安全原因,gradle.properties
不应位于存储库中,因此enableJetifier=true
环境变量对任务是不可见的。
解决方案是将properties
添加到gradle Fastlane任务中:
desc "Create a release build"
lane :release do
remove_apk
gradle(
task: "assembleRelease",
properties: {
"android.enableJetifier" => "true",
"android.useAndroidX" => "true"
}
)
end
我不熟悉位升,但是此链接可能有助于为位升设置settings/environment variables。
通常的解决方案(也可以是其他解决方案,如果有人有其他注释,请告诉我们!):
使用辅助存储库来存储您的机密,并使用Script步骤(例如,通过git克隆它)(如果要执行此操作,请确保可以将相同的SSH密钥用于两个存储库! 11)
在bitrise.io 37上使用App Env Vars或Secret Env Vars-您可以在工作流编辑器(bitrise.io 37上应用程序的“工作流”选项卡)上找到这些变量。您在此处定义的变量是常规环境变量,因此您可以随意使用它们,例如通过脚本步骤,写入文件。
使用bitrise.io 37的通用文件存储63功能,上传文件,然后使用文件下载器或ZIP资源档案下载器步骤下载。
这些当然只是主要解决方案的亮点,如果您更喜欢冒险,还可以采用其他方法,例如将加密的文件存储在存储库中,将加密密钥存储在bitrise.io 37上的App Env Var或Secret Env Var中,并在构建过程中解密该文件。
还要检查:https://devcenter.bitrise.io/builds/env-vars-secret-env-vars/
答案 1 :(得分:0)
为了记录,这是我在Bitrise上启用Jetifier 的操作:
gradle.properties
文件上传到通用文件存储中$PROJECT_LOCATION/gradle.properties