Android Jetifier CI / CD

时间:2019-06-06 20:59:12

标签: android androidx bitrise android-jetifier

尝试在CI / CD环境中使用Jetifier,特别是对我来说,我正在使用bitrise,但真正的问题是我想自动化部署过程。在AndroidX之前,此方法运行良好,现在我需要一种通过命令行在整个应用程序中使用jetifier的方法。我已经开始使用exclude摆脱了所有可以想象的依赖,但是enableJetifier=true不会做任何事情,除非您是从Android Studio构建的。我是否错过了在过去两个星期的谷歌搜索中找不到的gradle插件?还是这是一个未解决的问题?

2 个答案:

答案 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

  

通常的解决方案(也可以是其他解决方案,如果有人有其他注释,请告诉我们!):

     
      
  1. 使用辅助存储库来存储您的机密,并使用Script步骤(例如,通过git克隆它)(如果要执行此操作,请确保可以将相同的SSH密钥用于两个存储库! 11)

  2.   
  3. 在bitrise.io 37上使用App Env Vars或Secret Env Vars-您可以在工作流编辑器(bitrise.io 37上应用程序的“工作流”选项卡)上找到这些变量。您在此处定义的变量是常规环境变量,因此您可以随意使用它们,例如通过脚本步骤,写入文件。

  4.   
  5. 使用bitrise.io 37的通用文件存储63功能,上传文件,然后使用文件下载器或ZIP资源档案下载器步骤下载。

  6.   
     

这些当然只是主要解决方案的亮点,如果您更喜欢冒险,还可以采用其他方法,例如将加密的文件存储在存储库中,将加密密钥存储在bitrise.io 37上的App Env Var或Secret Env Var中,并在构建过程中解密该文件。

还要检查:https://devcenter.bitrise.io/builds/env-vars-secret-env-vars/

答案 1 :(得分:0)

为了记录,这是我在Bitrise上启用Jetifier 的操作:

  1. 转到工作流程编辑器>“代码签名”标签
  2. 将您的gradle.properties文件上传到通用文件存储中
  3. 返回工作流程编辑器,在“ Android lint”(或“ Android build”)步骤之前插入“文件下载器”步骤
  4. 将文件下载器的源设置为您刚刚在步骤2中上传的新文件
  5. 将目的地设置为$PROJECT_LOCATION/gradle.properties
  6. 保存
  7. 构建并 享受!