在 Apollo v3 中为不同的构建类型设置不同的架构 Android
Set different schema for different build types in Apollo v3 Android
我有 2 个 GraphQl 模式用于我的应用程序的调试和生产版本。我还有 2 种构建类型:调试和发布。显然,我想使用调试构建类型的调试模式,以及发布版本的生产模式。
According to this issue、Apollo v2 允许使用 onCompilationUnit
设置这样的配置,也许我可以这样写:
apollo {
onCompilationUnit {
graphqlSourceDirectorySet.srcDirs += "src/main/graphql"
def buildTypeName =(androidVariant as BaseVariant).buildType.name
if (buildTypeName.contains('debug')) {
graphqlSourceDirectorySet.srcDirs += "src/debug/graphql"
} else if (buildTypeName.contains('release')) {
graphqlSourceDirectorySet.srcDirs += "src/release/graphql"
}
}
}
问题是我在Apollo v3中没有找到onCompilationUnit
(在我的项目中使用)
主要问题是:如何配置gradle强制Apollo v3对不同的构建类型使用不同的架构?
我认为 Apollo v3 中的 onCompilationUnit
类似物将解决这个问题。如果 Apollo v3.
中存在,请给我推荐一个
如果有其他一些方法可以解决这个问题,欢迎您回答:)
根据GitHub issue mentioned in the question, the new way to take Android flavors into accounts is createAllAndroidVariantServices
中@BoD的回答,基本上是针对不同的build-types指定了不同的来源。因此,正如文档所述,我用我的 debug-schema 创建了 src/debug/graphql/$sourceFolder
,相应地 src/release/graphql/$sourceFolder
和 prod-schema。我还将下一个配置添加到我的 build.gradle.kts
:
apollo {
createAllAndroidVariantServices(".", "") {
if (name.contains("staging")) {
// add if you have staging build-variant, which uses the same scheme as prod
srcDir(file("src/release/graphql/"))
}
packageName.set("com.example.myapp")
}
}
我有 2 个 GraphQl 模式用于我的应用程序的调试和生产版本。我还有 2 种构建类型:调试和发布。显然,我想使用调试构建类型的调试模式,以及发布版本的生产模式。
According to this issue、Apollo v2 允许使用 onCompilationUnit
设置这样的配置,也许我可以这样写:
apollo {
onCompilationUnit {
graphqlSourceDirectorySet.srcDirs += "src/main/graphql"
def buildTypeName =(androidVariant as BaseVariant).buildType.name
if (buildTypeName.contains('debug')) {
graphqlSourceDirectorySet.srcDirs += "src/debug/graphql"
} else if (buildTypeName.contains('release')) {
graphqlSourceDirectorySet.srcDirs += "src/release/graphql"
}
}
}
问题是我在Apollo v3中没有找到onCompilationUnit
(在我的项目中使用)
主要问题是:如何配置gradle强制Apollo v3对不同的构建类型使用不同的架构?
我认为 Apollo v3 中的 onCompilationUnit
类似物将解决这个问题。如果 Apollo v3.
如果有其他一些方法可以解决这个问题,欢迎您回答:)
根据GitHub issue mentioned in the question, the new way to take Android flavors into accounts is createAllAndroidVariantServices
中@BoD的回答,基本上是针对不同的build-types指定了不同的来源。因此,正如文档所述,我用我的 debug-schema 创建了 src/debug/graphql/$sourceFolder
,相应地 src/release/graphql/$sourceFolder
和 prod-schema。我还将下一个配置添加到我的 build.gradle.kts
:
apollo {
createAllAndroidVariantServices(".", "") {
if (name.contains("staging")) {
// add if you have staging build-variant, which uses the same scheme as prod
srcDir(file("src/release/graphql/"))
}
packageName.set("com.example.myapp")
}
}