Skip to content

rustore-dev/flutter-rustore-update

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

16 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

flutter_rustore_update

ΠžΠ±Ρ‰Π΅Π΅

RuStore In-app updates SDK ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ вашСго прилоТСния Π½Π° устройствС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ состоянии, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡΠΌΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ исправлСниями ошибок.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ RuStore In-app updates SDK для отобраТСния процСсса обновлСния прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обСспСчиваСт Ρ„ΠΎΠ½ΠΎΠ²ΡƒΡŽ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΈ установку обновлСния с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ состояния. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ смоТСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ обновлСния.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ сцСнария

Update flow

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

Для запуска ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°, Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:

  1. applicationId - - ΠΈΠ· прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ Π² консоль RuStore, находится Π² Ρ„Π°ΠΉΠ»Π΅ build.gradle вашСго ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
  android {
     defaultConfig {
     applicationId = "ru.rustore.sdk.billingexample"
     }
  }
  1. release.keystore - подпись, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±Ρ‹Π»ΠΎ подписано ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π² консоль RuStore.

Настройка ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° прилоТСния

  1. Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π²Π°ΠΌ Π½Π°Π΄ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π² консоль 2 вСрсси прилоТСния, с Ρ€Π°Π·Π½Ρ‹ΠΌ versionCode. И Π² тСстировании ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ мСньший versionCode, Π½Π΅ΠΆΠ΅Π»ΠΈ Π΅ΡΡ‚ΡŒ Π² консоли.
  defaultConfig {
    versionCode 1
  }
  1. Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ applicationId Π² Ρ„Π°ΠΉΠ»Π΅ example/android/app/build.gradle, Π½Π° applicationId apk-Ρ„Π°ΠΉΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ Π² консоль RuStore:
android {
  defaultConfig {
    applicationId = "ru.rustore.sdk.updateexample" // Π—Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ Π² buildTypes приписываСтся .debug
  }
}
  1. Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ подпись Π½Π° подпись вашСго прилоТСния. НастройтС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ key_alias, key_password, store_password
android{
  signingConfigs {
        release {
            keyAlias keystoreProperties['keyAlias']
            keyPassword keystoreProperties['keyPassword']
            storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
            storePassword keystoreProperties['storePassword']
        }
    }
}

Условия ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ SDK

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ RuStore In-app updates SDK Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ соблюдСниС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… условий:

  • ОБ Android вСрсии 7.0 ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅.
  • На устройствС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ установлСн RuStore.
  • ВСрсия RuStoreApp Π½Π° устройствС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ.
  • ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ RuStore Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π° установка ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с push-увСдомлСниями, рСкомСндуСтся ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ-ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ

https://gitflic.ru/project/rustore/flutter-rustore-update

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚

Для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

flutter pub add flutter_rustore_update

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ строчку Π² Ρ„Π°ΠΉΠ» pubspec.yaml

dependencies:
    flutter_rustore_update: ^6.1.0

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, доступно Π»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ для вашСго прилоТСния. Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ наличия ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΉ Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ info(). ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ условия:

  • На устройствС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ установлСн RuStore.
  • ВСрсия RuStoreApp Π½Π° устройствС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ.
  • ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π² RuStore.

Π’ ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ info, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π² сСбС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ нСобходимости обновлСния.

RustoreUpdateClient.info().then((info) {
    print(info);
}).catchError((err) {
    print(err);
});

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ info содСрТит Π½Π°Π±ΠΎΡ€ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для опрСдСлСния доступности обновлСния:

  • updateAvailability - Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ обновлСния:

  • UPDATE_AILABILITY_NOT_AVAILABLE - ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ.

  • UPDATE_AILABILITY_AVAILABLE - ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ трСбуСтся Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡƒΠΆΠ΅ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ΠΎ Π½Π° устройство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

  • UPDATE_AILABILITY_IN_PROGRESS - ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡƒΠΆΠ΅ скачиваСтся ΠΈΠ»ΠΈ установка ΡƒΠΆΠ΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π°.

  • UPDATE_AILABILITY_UNKNOWN - статус ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

  • installStatus - статус установки обновлСния, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΡƒΠΆΠ΅ устанавливаСт ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π² Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ:

  • INSTALL_STATUS_DOWNLOADED - скачано.

  • INSTALL_STATUS_DOWNLOADING - скачиваСтся.

  • INSTALL_STATUS_FAILED - ошибка.

  • INSTALL_STATUS_INSTALLING - устанавливаСтся.

  • INSTALL_STATUS_PENDING - Π² ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ.

  • INSTALL_STATUS_UNKNOWN - ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Запуск скачивания обновлСния Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли ΠΏΠΎΠ»Π΅ updateAvailability содСрТит Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ UPDATE_AILABILITY_AVAILABLE.

ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ, Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ со списком ошибок ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ *Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ошибки.

Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π½ΠΈΠ΅ обновлСния

ПослС подтвСрТдСния доступности обновлСния Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ скачиваниС обновлСния, Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄ этим Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»ΡŒ статуса скачивания обновлСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ listener()

RustoreUpdateClient.listener((value) {
  print("listener installStatus ${value.installStatus}");
  print("listener bytesDownloaded ${value.bytesDownloaded}");
  print("listener totalBytesToDownload ${value.totalBytesToDownload}");
  print("listener installErrorCode ${value.installErrorCode}");
 
  if (value.installStatus == INSTALL_STATUS_DOWNLOADED) {
    // Ρ‚ΡƒΡ‚ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ complete()
  }
});

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ state описываСт Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ статус скачивания обновлСния. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ содСрТит:

  • installStatus - статус установки обновлСния, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΡƒΠΆΠ΅ устанавливаСт ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π² Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ:

  • INSTALL_STATUS_DOWNLOADED - скачано.

  • INSTALL_STATUS_DOWNLOADING - скачиваСтся.

  • INSTALL_STATUS_FAILED - ошибка.

  • INSTALL_STATUS_INSTALLING - устанавливаСтся.

  • INSTALL_STATUS_PENDING - Π² ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ.

  • INSTALL_STATUS_UNKNOWN - ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

  • bytesDownloaded - количСство Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… Π±Π°ΠΉΡ‚.

  • totalBytesToDownload - ΠΎΠ±Ρ‰Π΅Π΅ количСство Π±Π°ΠΉΡ‚, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ.

  • installErrorCode - ΠΊΠΎΠ΄ ошибки Π²ΠΎ врСмя скачивания. Π”Π΅Ρ‚Π°Π»ΡŒΠ½Π΅Π΅ с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌΠΈ ошибками ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ошибки.

ΠžΡ‚Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅

Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π½ΠΈΠ΅ с UI ΠΎΡ‚ RuStore

Для запуска скачивания обновлСния прилоТСния Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ download().

RustoreUpdateClient.download().then((value) {
  print("download code ${value.code}");
}).catchError((err) {
  print("download err ${err}");
});

Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΠ» скачиваниС обновлСния, Ρ‚ΠΎ value.code = ACTIVITY_RESULT_OK, Ссли отказался, Ρ‚ΠΎ value.code = ACTIVITY_RESULT_CANCELED.

ПослС Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° статусом скачивания обновлСния Π² ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»Π΅. Если Π² ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»Π΅ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ статус INSTALL_STATUS_DOWNLOADED, Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ установки обновлСния complete(). Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΡƒΠ²Π΅Π΄ΠΎΠΌΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΎ готовности установки обновлСния.

ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ. Π”Π΅Ρ‚Π°Π»ΡŒΠ½Π΅Π΅ со списком ошибок ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ошибки.

ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅

Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π½ΠΈΠ΅ с UI ΠΎΡ‚ RuStore

Для запуска скачивания ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ обновлСния прилоТСния Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ immediate().

RustoreUpdateClient.immediate().then((value) {
  print("silent code ${value.code}");
}).catchError((err) {
  print("immediate err ${err}");
});

resultCode (Int):

  • ACTIVITY_RESULT_OK (-1) β€” ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ, ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½, Ρ‚. ΠΊ. ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ обновлСния Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ.
  • ACTIVITY_RESULT_CANCELED (0) β€” Ρ„Π»ΠΎΡƒ ΠΏΡ€Π΅Ρ€Π²Π°Π½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° ошибка. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ этого ΠΊΠΎΠ΄Π° слСдуСт Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ прилоТСния.
  • ACTIVITY_RESULT_NOT_FOUND (2) β€” RuStore Π½Π΅ установлСн, Π»ΠΈΠ±ΠΎ установлСна вСрсия, которая Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ (RuStore versionCode < 191).

throwable β€” ошибка старта сцСнария обновлСния.

ΠŸΡ€ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΡ… дСйствий Π½Π΅ трСбуСтся.

Π’ΠΈΡ…ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅

Π‘ΠΊΠ°Ρ‡ΠΈΠ²Π°Π½ΠΈΠ΅ Π±Π΅Π· UI ΠΎΡ‚ RuStore

Для Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° обновлСния рСкомСндуСтся Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ свой интСрфСйс.

Для запуска скачивания Ρ‚ΠΈΡ…ΠΎΠ³ΠΎ обновлСния прилоТСния Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ silent().

RustoreUpdateClient.silent().then((value) {
  print("silent code ${value.code}");
}).catchError((err) {
  print("silent err ${err}");
});

ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ then с code = ACTIVITY_RESULT_OK Π±ΡƒΠ΄Π΅Ρ‚ зарСгистрирована Π·Π°Π΄Π°Ρ‡Π° Π½Π° скачиваниС обновлСния.

Π’ Π΄Π°Π½Π½ΠΎΠΌ сцСнарии ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ then с ACTIVITY_RESULT_OK, Π»ΠΈΠ±ΠΎ catchError.

ПослС Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° статусом скачивания обновлСния Π² ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»Π΅.

ПослС получСния статуса INSTALL_STATUS_DOWNLOADED Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ установки обновлСния. РСкомСндуСтся ΡƒΠ²Π΅Π΄ΠΎΠΌΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΎ готовности обновлСния ΠΊ установкС.

Установка обновлСния

Π“ΠΈΠ±ΠΊΠΎΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ обновлСния

ОбновлСниС с UI ΠΎΡ‚ RuStore:

ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ скачивания apk-Ρ„Π°ΠΉΠ»Π° обновлСния Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ установку обновлСния. Для запуска установки обновлСния Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ completeUpdateFlexible().

RustoreUpdateClient.completeUpdateFlexible().catchError((err) {
  print("completeUpdateFlexible err ${err}");
});

1.ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½ UI-Π΄ΠΈΠ°Π»ΠΎΠ³ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ обновлСния.

2.Π’ случаС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ обновлСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ.

ОбновлСниС происходит Ρ‡Π΅Ρ€Π΅Π· Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ инструмСнт android. Π’ случаС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ обновлСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ пСрСзапустится.

Π’ΠΈΡ…ΠΎΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ обновлСния

ОбновлСниС Π±Π΅Π· UI ΠΎΡ‚ RuStore:

ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ скачивания apk-Ρ„Π°ΠΉΠ»Π° обновлСния Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ установку обновлСния. Для запуска установки обновлСния Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ completeUpdateSilent().

RustoreUpdateClient.completeUpdateSilent().catchError((err) {
  print("completeUpdateSilent err ${err}");
});

1.UI-Π΄ΠΈΠ°Π»ΠΎΠ³ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ обновлСния Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Π½.

2.Π’ случаС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ обновлСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΎ.

ОбновлСниС происходит Ρ‡Π΅Ρ€Π΅Π· Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ инструмСнт android. Π’ случаС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ обновлСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΎ.

На этапС обновлСния ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ошибки. Π”Π΅Ρ‚Π°Π»ΡŒΠ½Π΅Π΅ с Π½ΠΈΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ошибки.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ошибки

Если Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π² ΠΎΡ‚Π²Π΅Ρ‚ onFailure, Ρ‚ΠΎ Π½Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ. ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ошибки ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΎΠΏΡ‹Ρ‚.

Бписок Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ошибок:

  • UPDATE_ERROR_DOWNLOAD - Ошибка ΠΏΡ€ΠΈ скачивании.
  • UPDATE_ERROR_BLOCKED - Установка Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Π° систСмой.
  • UPDATE_ERROR_INVALID_APK - НСкоррСктный APK обновлСния.
  • UPDATE_ERROR_CONFLICT - ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ с Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ вСрсиСй прилоТСния.
  • UPDATE_ERROR_STORAGE - НСдостаточно памяти Π½Π° устройствС.
  • UPDATE_ERROR_INCOMPATIBLE - НСсовмСстимо с устройством.
  • UPDATE_ERROR_APP_NOT_OWNED - ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΊΡƒΠΏΠ»Π΅Π½ΠΎ.
  • UPDATE_ERROR_INTERNAL_ERROR - ВнутрСнняя ошибка.
  • UPDATE_ERROR_ABORTED - ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ отказался ΠΎΡ‚ установки обновлСния.
  • UPDATE_ERROR_APK_NOT_FOUND - apk для запуска установки Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½.
  • UPDATE_ERROR_EXTERNAL_SOURCE_DENIED - Запуск обновлСния Π·Π°ΠΏΡ€Π΅Ρ‰Ρ‘Π½. НапримСр, Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ вСрнулся ΠΎΡ‚Π²Π΅Ρ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ нСдоступно, Π½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄.