如何仅为发布变体设置signingConfigs?

时间:2018-02-09 15:09:34

标签: android android-studio gradle release

我已经设置了使用fastlane进行持续部署,处理我对发布应用程序的代码签名,令人讨厌的是,当我在我的机器上运行调试时,android工作室失败,因为它无法找到路径它们(它们被声明为env变量,如下所示)。我可以通过为env变量创建虚拟数据来解决这个问题,但是除非它正在运行一个发布版本,否则安卓工作室会忽略这段代码。

所以在我app/build.gradledefaultConfig

signingConfigs {
    release {
        storeFile file(System.getenv("MYAPP_STOREFILE"))
        storePassword System.getenv("MYAPP_STORE_PASSWORD")
        keyAlias System.getenv("MYAPP_KEY_ALIAS")
        keyPassword System.getenv("MYAPP_KEY_PASSWORD")
    }
}

我认为把它放在release之下就可以了,但没有运气:/

1 个答案:

答案 0 :(得分:1)

不是一个超级优雅的解决方案,只是用try-catch包装它?

signingConfigs {
    release {
        try {
            storeFile file(System.getenv("MYAPP_STOREFILE"))
            storePassword System.getenv("MYAPP_STORE_PASSWORD")
            keyAlias System.getenv("MYAPP_KEY_ALIAS")
            keyPassword System.getenv("MYAPP_KEY_PASSWORD")
       } catch (Exception ignored) {
            // Do stuff or just ignore
       }
    }
}

如果您不想尝试尝试,可以尝试以下方法:

signingConfigs {
    release {
        storeFile System.getenv("MYAPP_STOREFILE") ? file(System.getenv("MYAPP_STOREFILE")) : null
        storePassword System.getenv("MYAPP_STORE_PASSWORD")
        keyAlias System.getenv("MYAPP_KEY_ALIAS")
        keyPassword System.getenv("MYAPP_KEY_PASSWORD")
    }
}