[Android] React Native приложения перестали собираться посе 4 ноября

Вчера начал собирать под Android наше мобильное приложение, написанное на React Native, и пошли ошибки — мол в одном из файлов используемой нами библиотеки react-native-reanimated проблема с импортом класса. Потратил несколько часов, откатывая изменения, очищая локальные кеши и пр. — безрезультатно.

Потом удалил папку /.gradle (занимала почти 16 ГБ) и теперь при сборке уже другая ошибка:

* What went wrong:
Execution failed for task ':app:mergeReleaseNativeLibs'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.MergeNativeLibsTask$MergeNativeLibsTaskWorkAction
> 2 files found with path 'lib/arm64-v8a/libfbjni.so' from inputs:
- [redacted]/.gradle/caches/transforms-3/2952ab139faaa4b08a71276c5fc46221/transformed/jetified-react-native-0.71.0-rc.0-release/jni/arm64-v8a/libfbjni.so
- [redacted]/.gradle/caches/transforms-3/d1c59095249a1169bea435013b70e0a9/transformed/jetified-fbjni-0.3.0/jni/arm64-v8a/libfbjni.so
If you are using jniLibs and CMake IMPORTED targets, see
https://developer.android.com/r/tools/jniLibs-vs-imported-targets

Тут бросается в газа упоминание на еще не вышедшую версию React Native «0.71.0-rc.0». Значит, проблема в том, что при сборке тянется не та версия, которая нужна, что уже влечет за собой лавину других проблем. Идем на https://github.com/facebook/react-native/issues/ и сразу видим ветку обсуждения: https://github.com/facebook/react-native/issues/35204

А тут https://github.com/facebook/react-native/issues/35210 можно найти решение и подробное разъяснение, как такая проблема произошла.

Теперь использовать оплату через Google Play стало обязательным

Мы с августа не обновляли наше мобильное приложение Кино1ТВ, но когда в декабре сделали апдейт, то получили от Google предупреждение о том, что использовать альтернативные способы оплаты запрещено (в нашем случае — банковская картой).

Запрет был и ранее, но Google относился очень лояльно к этому правилу, по факту не запрещая использовать другие способы оплаты, но в 2020 году все же сообщил о том, что после сентября 2021 разрешает использовать исключительно Google Play в качестве платежного решения в приложении (а мы этот момент упустили).

Но т.к. оплата через Google Play в приложении у нас также была (наравне с банковской картой), то мы просто скрыли кнопку оплаты картой. Теперь будем наблюдать, насколько это повлияет на конверсию.

ADB Idea

ADB Idea – плагин для Android Studio и Intellij, который добавит быстрые команды (пресеты) для работы с adb.

Поддерживаемые команды:

  • ADB Uninstall App
  • ADB Kill App
  • ADB Start App
  • ADB Restart App
  • ADB Clear App Data
  • ADB Clear App Data and Restart
  • ADB Start App With Debugger
  • ADB Restart App With Debugger
  • ADB Grant/Revoke Permissions
  • ADB Enable/Disable Wi-Fi
  • ADB Enable/Disable Mobile Data

Два способа выполнения команды:

  • Через меню Tools -> Android -> ADB Idea
  • Через поиск «ADB» в быстрых действия (macOS: CMD + SHIFT + A, Windows/Linux: CTRL + SHIFT + A)

Обновление до EMUI 11

Читаю новости, что для Huawei Mate 30 Pro уже доступно обновление до версии EMUI 11, однако при поиске через пункт меню «Обновление ПО» ничего не находится.

Оказалось, для этого нужно запустить приложение «Поддержка», и в разделе «Быстрое обслуживание» нажать на плитку «Обновление», только после этого обновление до EMUI 11 нашлось (11.0.0.152).

Важно: EMUI 11 – это не Android 11, как могло казаться. Теперь версии EMUI не синхронизированы с версией Android.

Mate 30 Pro был предоставлен нам Huawei в рамках программы поддержки разработчиков еще весной, что им большое спасибо. Не ожидал, что в качестве тестовых устройств будет рассылать флагманы (а телефон пришел так вообще в магазинной упаковке, не вскрытый).

WhatsApp — перенос истории чатов с Android на iOS

На Android уже давно использую WhatsApp, бекапы истории чатов идет на Google Drive.

Возникла необходимость перенести историю на iPhone. Ставим WhatsApp, и при первичной авторизации видим запрос на восстановление данных с… iCloud.

WTF?! А где Google Drive? Прости бро, но на iPhone мы не завезли восстановление с Google Drive. Видимо Google как бы намекает, что нечего переходить было с Android на iOS.

«Шеф, все пропало?» Ну уж нет! Начинаем рыться в сети, и находим единственный нормальный вариант – восстановить бэкап через приложение Dr.Fone от компании Wondershare. Приложение платное, стоит порядка 2,5 тыс. рублей. Да, дороговато, но расставаться с переписками я был не готов.

Сам процесс восстановления немного мудреный (через установку кастомной версии WhatsApp на Android и пр.), но важно то, что через полчаса на iPhone была уже восстановлена вся история переписки.

И вишенка на торте – удалось вернуть 2,5 тыс. рублей. Учитывая, что приложение Dr.Fone со своей задачей справилось и теперь больше не нужно, я написал разработчикам с просьбой возврата средств (да, пришлось наврать, что приложение не подошло). Через несколько дней был сделан рефанд.

[Android] Симуляция низкой скорости соединения

Во время тестирования бывает необходимым проверить поведение приложения при нестабильном Интернет-соединении, или низких скоростях.

Для того, чтобы симулировать такое на реальном устройстве Android (метод подойдет и для iOS), то можно воспользоваться возможностями прокси-сервером Charles, и его функцией «Throttle Settings…» (в меню Proxy). В окне настроек уже есть заготовленные пресеты.