Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Android. Add possibility to use 'play-services-location' deps version from the client-side #292

Open
aamagda opened this issue Jul 23, 2024 · 0 comments

Comments

@aamagda
Copy link
Contributor

aamagda commented Jul 23, 2024

Проблема

Сейчас версия зависимости указана как +, т.е. взять последнюю доступную
implementation "com.google.android.gms:play-services-location:+"

Google периодически релизит новые версии, которые могут быть несовместимы с клиентским кодом (потребитель react-native-yamap), что приводит к внезапным фейлам сборок, тем самым замедляется тайм-ту-маркет на фиксы (либо приходится патчить с указанием нужной версии, либо незапланированно обновлять нативный код на поддержку новой версии). Неоднократно натыкались на подобные проблемы с другими react-native библиотеками, сейчас столкнулись с тем же и в react-native-yamap

Решение

Добавить возможность использовать ту версию, которую указывает и ожидает потребитель.
Пример как это сделано, например, в react-native-geolocation-service

Пример изменений

buildscript {
    repositories {
        jcenter()
        mavenCentral()
    }
}

apply plugin: 'com.android.library'
apply plugin: 'org.jetbrains.kotlin.android'

def safeExtGet(prop, fallback) {
  rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
}

def GOOGLE_PLAY_SERVICES_LOCATION_VERSION = safeExtGet('playServicesLocationVersion', '+')

android {

    defaultConfig {
        compileSdkVersion 34
        minSdkVersion 23
        targetSdkVersion 34
        versionCode 1
        versionName "1.1"
    }
    lintOptions {
        abortOnError false
    }
    kotlinOptions {
        jvmTarget = '17'
    }
}

repositories {
    mavenCentral()
}

dependencies {
    implementation 'com.google.android.gms:play-services-location:$GOOGLE_PLAY_SERVICES_LOCATION_VERSION'
    implementation 'com.facebook.react:react-native:+'
    implementation 'com.yandex.android:maps.mobile:4.6.1-full'
    implementation 'androidx.core:core-ktx:1.13.1'
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant