Что делать, если мобильный клиент 1С на iOS выдает ошибку "Тип не определен (CallbackDescription)" и не устанавливается?

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

При разработке и обновлении мобильных приложений на платформе 1С для iOS можно столкнуться с двумя взаимосвязанными проблемами: приложение либо не запускается после установки, выдавая ошибку времени выполнения, либо вообще не устанавливается на устройство. Рассмотрим типичную ситуацию: после обновления конфигурации и мобильной платформы приложение для Android работает исправно, а на iOS возникает ошибка "Тип не определен (CallbackDescription)", а попытки собрать приложение на более новых версиях платформы приводят к невозможности его установки.

Проанализируем причины этих проблем и разберем по шагам, как их можно решить, основываясь на опыте коллег.

Причина №1: Ошибка "Тип не определен (CallbackDescription)"

Первая часть проблемы — это ошибка, возникающая в коде. В рассматриваемом случае она появилась после обновления конфигурации и мобильной платформы до версии, требующей режим совместимости 8.3.21. Ошибка указывает на модуль StandardSubsystemsClient, что говорит о проблеме не в прикладном, а в библиотечном коде.

В чем заключается проблема?

Основная причина кроется в особенностях локализации и версионности системных объектов платформы 1С. Объект, на который ссылается ошибка, — CallbackDescription — является англоязычным псевдонимом (алиасом) для стандартного русскоязычного объекта ОписаниеОповещения. На платформе для Android этот псевдоним может корректно распознаваться, а в мобильном клиенте для iOS той же версии — нет. Это приводит к ситуации, когда одна и та же кодовая база успешно работает на одной ОС и падает на другой.

Как пытались исправить вручную и почему это может не сработать?

  1. Замена псевдонима: Первой логичной мыслью является замена всех вхождений CallbackDescription на его русский аналог ОписаниеОповещения в коде конфигурации. Однако здесь есть подводный камень: таких вхождений может быть несколько. Если пропустить хотя бы одно, ошибка сохранится, хоть и будет указывать на другую строку кода.
  2. Неполная совместимость: Даже после исправления всех явных вхождений, проблема может остаться, если в других частях стандартных библиотек, используемых конфигурацией, остались обращения к старому псевдониму. Это превращает ручное исправление в сложную и не всегда успешную задачу.

Таким образом, ошибка "Тип не определен (CallbackDescription)" — это яркий пример проблемы совместимости между версией конфигурации (особенно ее стандартных библиотек) и версией мобильной платформы, на которой собирается клиент для iOS.

Причина №2: Мобильное приложение не устанавливается на iOS

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

Почему это происходит?

Начиная с определенных версий, мобильная платформа 1С стала включать в себя дополнительные расширения (Extensions), такие как ScreenSharingExtension и FileSharingExtension. При ручной сборке проекта в XCode это значительно усложняет процесс.

Ручная настройка всего этого в XCode требует глубоких знаний и внимания к деталям, поэтому вероятность ошибки очень высока.

Комплексное и надежное решение: Использование сервиса сборки мобильных приложений

Обе вышеописанные проблемы эффективно решаются с помощью специализированного инструмента от 1С — сервиса сборки мобильных приложений (также известного как платформенный сборщик).

Что это такое и как работает?

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

Почему этот способ является решением?

  1. Автоматизированная и стандартизированная среда: Сервис использует всегда актуальное и правильно настроенное окружение для сборки: нужные версии macOS, XCode и утилиты командной строки. Это исключает ошибки, связанные с неправильной настройкой локального компьютера разработчика.
  2. Корректная обработка расширений: Сборщик "знает" о наличии ScreenSharingExtension, FileSharingExtension и других компонентов платформы. Он автоматически правильно конфигурирует проект XCode, применяя предоставленные вами сертификаты и профили ко всем частям приложения, включая расширения. Это гарантирует создание валидного .ipa файла, который без проблем установится на устройство.
  3. Решение проблем совместимости: Часто при сборке через сервис используются совместимые версии библиотек и компонентов, что может автоматически решить проблему с CallbackDescription, так как сборка происходит в эталонном окружении.
  4. Отсутствие необходимости в Mac: Ключевое преимущество — для сборки iOS-приложения вам больше не нужен компьютер от Apple. Всю работу выполняет сервис на своих серверах.

Итог: Пользователь, столкнувшийся с описанными проблемами, в конечном счете успешно собрал и установил приложение именно через сервис сборки. Несмотря на некоторые временные трудности с доступом к сервису (ошибки 403, которые могут возникать при нагрузке), этот путь оказался единственным рабочим и избавил от необходимости вручную править код и разбираться в тонкостях настройки XCode.

Таким образом, если вы столкнулись с ошибками выполнения на iOS, которых нет на Android, и/или с проблемами установки .ipa файла, настоятельно рекомендуется в первую очередь воспользоваться официальным сервисом сборки мобильных приложений 1С. Это сэкономит время и обеспечит гарантированно корректный результат.

← На главную