Загрузка DSYM в Firebase

/path_to_project/Pods/FirebaseCrashlytics/upload-symbols -gsp /path_to_project/GoogleService-Info.plist -p ios /path_to_save/appDsyms.zip

Обновление до 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). В окне настроек уже есть заготовленные пресеты.

Удаление Gmail-писем из приложения Apple Mail для iOS

При использовании приложения Apple Mail для iOS в связке с Google-аккаунтом может возникнуть ситуация, что удалить письма нельзя, можно только заархивировать.

Проблема решается следующим образом:

  1. Settings -> Password & Accounts
  2. Выбрать из списка Gmail-аккаунт, а затем еще раз нажать уже на адрес вашей почты
  3. В окне настроек аккаунта нажать Andvanced
  4. В разделе «Move discarded massages to» выбрать «Deleted Mailbox»

Теперь вместо архивирования будет возможность сразу же удалять письма.

Обновление прошивки на Xiaomi MiPad 4

Есть в наличии планшет Xiaomi MiPad 4, с неофициальной прошивкой v10.1.1.0.ODJCNFI и разблокированным загрузчиком.

В связи с глючностью данной прошивки (часто появлялись сообщения о сбоях системных процессов) было решено установить актуальную на данный момент официальную китайскую прошивку, которая, в отличии от неофициальных, имеет встроенный режим обновления системы.

Инструкция по обновлению:

    1. Скачать последнюю версию прошивки с официального сайта (искать по фразе 4/plus). Сейчас это V10.3.2.0.ODJCNXM от 15 мая.
    2. Т.к. прошивка идет без предустановленных Google Play Services, то также скачать самодельный инсталлятор
    3. Установить на компьютер ADB (идет в составе Android SDK)
    4. Включить планшет в режиме Fastboot (для этого удерживать клавишу питания и клавишу «Уменьшение громкости»)
    5. Выполнить скрипт flash_all.sh из архива скаченной прошивки (все данные на устройстве будут удалены). Если все прошло удачно, то после обновления планшет включится
    6. Установить Google Play Services

[iOS] Не передается локаль через Promoted In-App Purchases

Недавно в приложение Кино1ТВ для iOS мы добавили поддержку фичи «Promoted In-App Purchases», анонс которой состоялся в прошлом году на WWDC 2017.

Вкратце, теперь на странице приложения в App Store можно рекламировать до 20 покупок, используемых в приложении. В нашем случае, мы добавили промо подписки, которая дает возможность смотреть фильмы и сериалы из соответствующего раздела.

Для тестирования»Promoted In-App Purchases» достаточно сформировать специальную ссылку, при нажатии на которую приложение будет перехватывать ее и выполнять необходимые действия. В нашем случае ссылка выглядит так:

itms-services://?action=purchaseIntent&bundleId=ru.1tv.kino&productIdentifier=ru.1tv.kino.subs_kino

Однако когда мы зарелизи эту фичу, обнаружилось неприятность: App Store по какой-то причине при переходе по промо не отдает локаль и валюту (эти значения мы используем для построения отчетов). Для решения проблемы пришлось перепроверять In-App еще раз самостоятельно, вместо того, чтобы доверять тому, что мне отдает App Store.

Распознавание QR-кодов в iOS 11

В iOS 11 появилась очень полезная функция — возможность распознать QR-кодов при использовании приложения «Камера». Для этого достаточно навести фокус на QR-код, после чего на экране появится уведомление «Открыть в Safari» с указанием ссылки, на которую ведет QR-код.

На данный момент в iOS 11 через «Камеру» можно распознавать лишь QR-коды, в то время как другие виды многомерных кодов (Aztec code, Micro QR code, Data Matrix) — нет. Также нельзя просканировать линейные штрих-коды (EAN, UPC и пр.).

Многие заговорили, что теперь сторонние приложения по распознаванию штрихкодов можно хоронить, и отчасти это верно. Зачем ставить лишнюю программу, которая копирует те же функции, которые уже есть «из коробки»? С другой стороны, тем, кому нужен более широкий функционал (в том числе считывание других видов кодов), все равно будут использовать сторонние решения (к примеру, как Qrafter).

Заедание кнопки включения на LG Nexus 5

Неделю назад мой LG Nexus 5 стал самопроизвольно выключаться после того, как его разблокировать. Далее происходила попытка включиться, но через несколько секунд телефон мог опять выключиться и так по кругу.

Оказывается, для Nexus 5 это одна из распространенных проблем, а виной тому проблемы с кнопкой включения, которую для решения проблемы необходимо заменить. Т.к. кнопка включения припаяна к материнской плате, но сначала ее необходимо удалить, а затем припаять новую. Сертифицированные центры по ремонту такими делами не занимаются – предложили полностью заменить материнскую плату (цена ~10 тыс. руб.), что, естественно, меня совершенно не устроило. Похоже, придется обращаться к более простым сервисным центрам.