Android Зависимости загрузки Gradle в зависимости от типа сборки / среды - PullRequest
0 голосов
/ 17 апреля 2020

Можно ли загружать зависимости из репозитория на основе типов сборки при аутентификации в нем с соответствующими учетными данными (например, наши кредиты debug / dev, указывающие на SDK Reader учетной записи Square, и кредиты выпуска, указывающие на SDK Reader другой учетной записи Square, в этот случай) через тот же URL хранилища? Потому что на данный момент я не вижу никакой документации по этому вопросу.

Вот соответствующие части файла app level build.gradle:

...

final SQUARE_READER_SDK_APP_ID_DEV = 'sq0idp-T4SClu2rWV2AcYcEiHALXg'
final SQUARE_READER_SDK_APP_ID_PROD = 'sq0idp-cyEZl-H328bxzEh0E4tq5w'
final SQUARE_READER_SDK_VERSION = "1.3.6"

...

buildTypes {
    debug {
        ...

        repositories {
            maven {
                url "https://sdk.squareup.com/android"
                credentials {
                    username SQUARE_READER_SDK_APP_ID_DEV
                    // Set as a property from CI command with one of its env vars
                    password squareReaderSdkPasswordDev
                }
            }
        }

    }
    release {
        ... 

        repositories {
            maven {
                url "https://sdk.squareup.com/android"
                credentials {
                    username SQUARE_READER_SDK_APP_ID_PROD
                    // Set as a property from CI command with one of its env vars
                    password squareReaderSdkPasswordProd
                }
            }
        }
    }
}

...

dependencies { 
    ...

    debugImplementation "com.squareup.sdk.reader:reader-sdk-$SQUARE_READER_SDK_APP_ID_DEV:$SQUARE_READER_SDK_VERSION"
    releaseImplementation "com.squareup.sdk.reader:reader-sdk-$SQUARE_READER_SDK_APP_ID_PROD:$SQUARE_READER_SDK_VERSION"
    runtimeOnly "com.squareup.sdk.reader:reader-sdk-internals:$SQUARE_READER_SDK_VERSION"

    ...
}

...

Обратите внимание, что построение этого локально (через сборки Gradle и задачу ./gradlew androidDependencies) работает должным образом, , но не наш CI, как упомянуто в моем другом посте: Не удалось выполнить задачу ': app: androidDependencies' на Circle CI, но не локально

^, но он передает CI при загрузке зависимости только из одного типа сборки (то есть временно комментирует релизные кредиты, чтобы получить только отладочный, но не работает одновременно)

Кроме того, что-то подобное не возможно в Gradle? Мне просто нужен флаг отладки, который я могу использовать исключительно в файле Gradle для получения артефактов Maven на основе кредитов типа сборки при аутентификации в одном URL репо. И вот сообщение, которое я связал с командой Gradle: https://discuss.gradle.org/t/how-to-download-dependencies-from-a-repository-based-on-build-type-environment-in-gradle-file/35759:

...

repositories {
    def squareReaderSdkAppId = SQUARE_READER_SDK_APP_ID_DEV
    // Non-existent boolean debug flag, but here for informative purposes.
    if (!debug) {
        squareReaderSdkAppId = SQUARE_READER_SDK_APP_ID_PROD
    }

    def squareReaderSdkPassword = SQUARE_READER_SDK_PW_DEV
    // Non-existent boolean debug flag, but here for informative purposes.
    if (!debug) {
        squareReaderSdkPassword = SQUARE_READER_SDK_PW_PROD
    }

    google()
    maven {
        url "https://sdk.squareup.com/android"
        credentials {
            username squareReaderSdkAppId
            password squareReaderSdkPassword
        }
    }
    jcenter()
}

...
...