Как исправить ошибку ITMS-90809 при публикации мобильного приложения 1С в App Store

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При попытке опубликовать мобильное приложение, разработанное на платформе 1С:Предприятие, в магазин приложений Apple App Store, разработчики часто сталкиваются с отказом и техническим сообщением: ITMS-90809: Deprecated API Usage - New apps that use UIWebView are no longer accepted. Эта ошибка означает, что Apple больше не принимает приложения, использующие устаревший компонент UIWebView, и требует обязательного перехода на WKWebView.

В этой статье мы подробно разберем, почему возникает эта проблема, как правильно обновить компоненты системы и что делать, если стандартное обновление платформы не помогло. Мы пройдем путь от анализа причин до настройки параметров безопасности iOS, чтобы ваше приложение успешно прошло модерацию.

Разберем причину ошибки: почему Apple блокирует UIWebView

Для начала проанализируем ситуацию с технической точки зрения. Компонент UIWebView долгие годы был стандартным средством отображения веб-контента (HTML, JavaScript) внутри приложений iOS. Однако он обладал рядом недостатков: низкой производительностью, высоким потреблением памяти и отсутствием поддержки современных стандартов безопасности. На смену ему пришел WKWebView, который работает в отдельном процессе и использует современные движки рендеринга.

Apple официально прекратила прием новых приложений с UIWebView еще в 2020 году. Поскольку платформа 1С использует веб-технологии для отображения некоторых элементов интерфейса и работы с данными, разработчикам на 1С критически важно использовать версии платформы, в которых выполнена миграция на новый движок.

Шаг 1: Обновление мобильной платформы и сборщика

Как отмечают участники обсуждения, решение проблемы в первую очередь заключается в переходе на актуальные версии технологического стека 1С. Выясним, какие именно версии нам необходимы. Официально поддержка WKWebView и исправление ошибки ITMS-90809 были реализованы в следующих версиях мобильной платформы:

  1. Версия 8.3.16.149 и выше.
  2. Версия 8.3.17.47 и выше.

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

Шаг 2: Очистка проекта и поиск скрытых ссылок

Иногда после обновления платформы ошибка сохраняется. Проанализируем, почему это происходит. Роботы Apple сканируют бинарный файл вашего приложения на наличие строковых упоминаний UIWebView. Если в коде или подключенных библиотеках останется хотя бы одна ссылка на этот класс, приложение будет отклонено автоматически.

Рассмотрим алгоритм действий для "глубокой" очистки проекта:

  1. Полная очистка кэша сборки: В среде Xcode обязательно выполните команду Product -> Clean Build Folder. Это удалит старые объектные файлы, которые могли содержать ссылки на старый API.
  2. Проверка внешних компонент: Если ваше приложение использует Внешние компоненты (Native Extensions), проверьте их исходный код. Если компонента написана на Objective-C или Swift и использует UIWebView для своих нужд, вам придется обновить саму компоненту или заменить ее.
  3. Поиск через Терминал: Мы можем самостоятельно проверить, в каком файле затаился устаревший код. Для этого откройте Терминал в macOS, перейдите в папку с проектом Xcode и выполните команду: grep -r "UIWebView" . Эта команда покажет все файлы, где встречается запрещенная строка. Если вы увидите упоминание в сторонних фреймворках (например, старых рекламных SDK или аналитике), их нужно обновить до версий, поддерживающих WKWebView.

Шаг 3: Решение проблем с авторизацией и сетевыми соединениями

В процессе обсуждения на форуме был поднят важный вопрос: почему после сборки под iOS приложение перестает подключаться к серверу (авторизация "мигает" и ничего не происходит), хотя на Android все работает отлично? Выясним причину, так как это напрямую связано с переходом на новые требования безопасности Apple.

При переходе на WKWebView и современные версии iOS вступают в силу жесткие правила App Transport Security (ATS). Рассмотрим основные причины отказа в авторизации:

  1. Отсутствие HTTPS: iOS блокирует соединения по незащищенному протоколу HTTP. Если ваш адрес публикации выглядит как http://myserver.com/base, авторизация не пройдет. Необходимо настроить SSL-сертификат и использовать https://.
  2. Самоподписанные сертификаты: Если вы используете бесплатный самоподписанный сертификат для тестовых целей, iOS не будет ему доверять по умолчанию. В отличие от Android, который позволяет игнорировать ошибки сертификатов, iOS просто разрывает соединение.
  3. Настройка Info.plist: Если использование HTTP или самоподписанного сертификата неизбежно, нам потребуется внести исключения в файл Info.plist проекта. Рассмотрим пример кода, который разрешает небезопасные соединения (используйте это осторожно, так как Apple может потребовать обоснование при проверке):
    
    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>
    
  4. Разрешение на работу в локальной сети: В новых версиях iOS приложение должно явно запрашивать доступ к локальной сети, если сервер 1С находится внутри офисного Wi-Fi. Проверьте настройки в Сборщике мобильных приложений, чтобы соответствующие разрешения были добавлены в манифест.

Рекомендации по успешной публикации

Подведем итоги нашего анализа. Чтобы успешно пройти проверку App Store и избежать ошибки ITMS-90809, придерживайтесь следующего плана действий:

Во-первых, используйте только актуальные релизы платформы 1С. Версии ниже 8.3.16.149 фактически стали несовместимы с требованиями Apple для публикации новых приложений. Во-вторых, всегда используйте последнюю версию Xcode, доступную для вашей версии macOS, так как Apple регулярно обновляет требования к SDK.

Проанализируем также структуру вашего приложения. Если вы используете мобильный клиент (МК), убедитесь, что веб-сервер, на котором опубликована информационная база, настроен в соответствии с требованиями TLS 1.2 или выше. Это гарантирует, что WKWebView сможет установить защищенное соединение без дополнительных манипуляций с файлами конфигурации iOS.

Соблюдение этих шагов позволит вам не только избавиться от ошибки ITMS-90809, но и повысить общую стабильность и безопасность вашего мобильного решения на базе 1С:Предприятие.

← На главную