При разработке и обновлении мобильных приложений на платформе 1С для iOS можно столкнуться с двумя взаимосвязанными проблемами: приложение либо не запускается после установки, выдавая ошибку времени выполнения, либо вообще не устанавливается на устройство. Рассмотрим типичную ситуацию: после обновления конфигурации и мобильной платформы приложение для Android работает исправно, а на iOS возникает ошибка "Тип не определен (CallbackDescription)", а попытки собрать приложение на более новых версиях платформы приводят к невозможности его установки.
Проанализируем причины этих проблем и разберем по шагам, как их можно решить, основываясь на опыте коллег.
Первая часть проблемы — это ошибка, возникающая в коде. В рассматриваемом случае она появилась после обновления конфигурации и мобильной платформы до версии, требующей режим совместимости 8.3.21. Ошибка указывает на модуль StandardSubsystemsClient, что говорит о проблеме не в прикладном, а в библиотечном коде.
В чем заключается проблема?
Основная причина кроется в особенностях локализации и версионности системных объектов платформы 1С. Объект, на который ссылается ошибка, — CallbackDescription — является англоязычным псевдонимом (алиасом) для стандартного русскоязычного объекта ОписаниеОповещения. На платформе для Android этот псевдоним может корректно распознаваться, а в мобильном клиенте для iOS той же версии — нет. Это приводит к ситуации, когда одна и та же кодовая база успешно работает на одной ОС и падает на другой.
Как пытались исправить вручную и почему это может не сработать?
CallbackDescription на его русский аналог ОписаниеОповещения в коде конфигурации. Однако здесь есть подводный камень: таких вхождений может быть несколько. Если пропустить хотя бы одно, ошибка сохранится, хоть и будет указывать на другую строку кода.Таким образом, ошибка "Тип не определен (CallbackDescription)" — это яркий пример проблемы совместимости между версией конфигурации (особенно ее стандартных библиотек) и версией мобильной платформы, на которой собирается клиент для iOS.
Вторая, не менее серьезная проблема, — это невозможность установить на устройство .ipa файл, собранный с помощью XCode на более свежих версиях мобильной платформы (например, 8.3.23 и выше). Устройство выдает стандартное сообщение "программа не устанавливается, попробуйте позже", что обычно свидетельствует о проблемах с подписью или целостностью пакета приложения.
Почему это происходит?
Начиная с определенных версий, мобильная платформа 1С стала включать в себя дополнительные расширения (Extensions), такие как ScreenSharingExtension и FileSharingExtension. При ручной сборке проекта в XCode это значительно усложняет процесс.
.ipa файл будет считаться невалидным, и iOS не позволит его установить.Ручная настройка всего этого в XCode требует глубоких знаний и внимания к деталям, поэтому вероятность ошибки очень высока.
Обе вышеописанные проблемы эффективно решаются с помощью специализированного инструмента от 1С — сервиса сборки мобильных приложений (также известного как платформенный сборщик).
Что это такое и как работает?
Это облачный сервис, который автоматизирует весь процесс создания мобильных клиентов. Вы предоставляете ему исходные данные, а он возвращает готовые к установке файлы (.ipa для iOS и .apk для Android).
Почему этот способ является решением?
ScreenSharingExtension, FileSharingExtension и других компонентов платформы. Он автоматически правильно конфигурирует проект XCode, применяя предоставленные вами сертификаты и профили ко всем частям приложения, включая расширения. Это гарантирует создание валидного .ipa файла, который без проблем установится на устройство.CallbackDescription, так как сборка происходит в эталонном окружении.Итог: Пользователь, столкнувшийся с описанными проблемами, в конечном счете успешно собрал и установил приложение именно через сервис сборки. Несмотря на некоторые временные трудности с доступом к сервису (ошибки 403, которые могут возникать при нагрузке), этот путь оказался единственным рабочим и избавил от необходимости вручную править код и разбираться в тонкостях настройки XCode.
Таким образом, если вы столкнулись с ошибками выполнения на iOS, которых нет на Android, и/или с проблемами установки .ipa файла, настоятельно рекомендуется в первую очередь воспользоваться официальным сервисом сборки мобильных приложений 1С. Это сэкономит время и обеспечит гарантированно корректный результат.