Найти тему
Смартфоны

Почему небольшая ошибка Facebook нанесла ущерб некоторым из самых популярных приложений для iOS

Примерно в 6:30 вечера по восточному времени 6 мая популярные приложения для iOS от таких крупных компаний, как DoorDash, Spotify, TikTok и Venmo, неожиданно начинают падать. Виновный не долго оставался загадкой.
Разработчики в Twitter и GitHub быстро обнаружили причину проблемы с комплектом разработки программного обеспечения (SDK) от Facebook , который вплетен в работу бесчисленных мобильных приложений от крупных и малых компаний. Эта проблема, хотя и довольно быстро решаемая Facebook, иллюстрирует масштаб платформы социальной сети и то, как даже незначительные проблемы могут иметь серьезные последствия для всей индустрии мобильного программного обеспечения.
«Ранее сегодня в новую версию Facebook было включено изменение, которое вызвало сбои для некоторых пользователей в некоторых приложениях, использующих SDK Facebook iOS», - заявил вчера представитель The Facebook The Verge в своем заявлении. «Мы быстро определили проблему и решили ее. Мы извиняемся за любые неудобства." Facebook SDK - это пакет программных инструментов для разработчиков, который помогает таким мощным функциям, как вход в систему с учетной записью Facebook и предоставление общего доступа к кнопкам Facebook. Так что проблема не была уникальной для iOS; это могло произойти с Android SDK и в этом случае просто повлияло на платформу Apple.

Тем не менее, Facebook точно не сказал, в чем проблема или как новый выпуск SDK мог спровоцировать сбои. Непонятно также, почему так много приложений пострадали, даже когда пользователь, столкнувшийся с аварией, не вошел в систему с Facebook или даже когда само приложение не использовало SDK в достаточной мере и не полагалось на функции Facebook.
По словам разработчика приложений Гильерме Рэмбо, проблема заключается в том, как Facebook продает свой набор инструментов для разработчиков. «Facebook действительно подталкивает разработчиков к установке их SDK, вероятно, потому, что им нужны очень богатые данные, которые они могут собирать о пользователях этого приложения. SDK предлагается как удобство как для разработчиков, так и для маркетологов, так как его также можно использовать для отслеживания конверсий рекламы, размещаемой через Facebook », - пояснил он The Verge по электронной почте. (У Рэмбо также есть собственный анализ, размещенный на его сайте здесь .)
«Я НИКОГДА НЕ ВИДЕЛ ЧТО-ТО ТАКОГО МАСШТАБА, КОГДА SDK ВЛИЯЛ БЫ НА МНОЖЕСТВО ПРИЛОЖЕНИЙ ОДНОВРЕМЕННО».
Например, он говорит, что если вы хотите запустить рекламную кампанию для своего мобильного приложения через Facebook, единственный способ получить ценную информацию об эффективности кампании - это установить SDK компании. «Другой важной причиной является печально известный« вход с Facebook », который мы видим во многих приложениях, которые могут быть реализованы вообще без использования SDK, но, поскольку использование SDK более удобно, многие компании в конечном итоге идут по этому пути», он говорит.
Но если есть проблема с SDK, как это было вчера, тогда у него есть потенциал, чтобы снять все с него. Facebook выдвинул изменения в своем SDK на стороне сервера, что означало, что ни один разработчик не мог сказать, будет ли их приложение взаимодействовать со старой, стабильной или более новой версией. И поскольку приложение обменивается данными с SDK каждый раз, когда оно открывается пользователем, результатом была каскадная серия ошибок, которые привели к полномасштабным сбоям приложения.
«Вопрос заключается в том , что SDK ожидал ответа сервера в определенном формате, который в среду, серверы Facebook были не обеспечивая,» пишет ZDNet «s Catalin Cimpanu , который привел технический анализ ситуации на GitHub и HackerNews . «Без надлежащего ответа, Facebook SDK потерпел крах, также разрушив все приложения, которые его использовали». Похоже, что однажды разработчик почти ничего не мог сделать, чтобы восстановить службу, пока Facebook не устранил проблему.

Рэмбо говорит, что должны быть способы предотвратить это, в том числе разработчики, решившие выполнить вход через Facebook без использования SDK компании. Но другие средства защиты на уровне системы - это решения, которые Apple должна будет принять в отношении разрешений, которые она предоставляет сторонним SDK. «Сегодня это работает так: если вы устанавливаете приложение, и это приложение содержит сторонний код (такой как Facebook SDK), этот сторонний код имеет те же уровни разрешений и доступа, что и само приложение», - говорит он. ,
«Если вы даете приложению разрешение на доступ к вашему местоположению, контактам или календарю, сторонний код, который он встраивает, также может получить эту информацию. Единственный способ исправить это - реализовать некоторую форму модели песочницы, которая отделяет сторонние SDK от собственного кода приложения », - добавляет он. «Это большая проблема, но я надеюсь, что инженеры Apple работают над чем-то вроде этого».

Тем не менее, разработчики, кажется, не особенно довольны ситуацией. «Из того, что я видел, разработчики действительно разочарованы этим, особенно потому, что инженеры, которые должны иметь дело с этими типами проблем, обычно не являются теми, кто решил добавить такой SDK в приложение, над которым они работают», - Рэмбо говорит. Он добавляет, что решение об интеграции с инструментами разработчика Facebook, как правило, является нисходящим, «много раз от маркетинговых или продуктовых команд, которые видят выгоду только от использования этих типов SDK (больше данных, больше аналитики)».
Но такие сотрудники в технологических компаниях «не видят огромного количества инженерных часов, потраченных на решение проблем, которые они могут вызвать в приложении», говорит он. «Сбои, вызванные SDK в основных приложениях, не являются чем-то необычным, но я никогда не видел такого масштаба, когда SDK влиял бы на многие приложения одновременно. Я бы сказал, что это беспрецедентное событие, и оно показывает, что нужно что-то изменить, чтобы приложения интегрировали сторонний код ».

Спасибо, что дочитали до конца, ставьте лайк и подписывайтесь на канал!

До скорых встреч!