При разработке мобильных приложений на платформе 1С программисты часто сталкиваются с ситуацией, когда проект уже сформирован в «Сборщике мобильных приложений», открыт в Xcode и даже успешно скомпилирован, но при запуске на устройстве выдается критическая ошибка: «Работа с данным приложением не поддерживается». В этой статье мы подробно разберем, почему возникает эта проблема, как обновить цифровую подпись конфигурации непосредственно в проекте Xcode, не возвращаясь в сборщик 1С, и как справиться с ограничениями бесплатных аккаунтов Apple.
Прежде чем приступать к техническим манипуляциям, проанализируем ситуацию. Ошибка «Работа с данным приложением не поддерживается» в мобильном клиенте 1С обычно не связана с сертификатами Apple (Provisioning Profiles). Она сигнализирует о несоответствии метаданных. Платформа 1С при каждом соединении сравнивает «подпись мобильного клиента», зашитую в исполняемый файл приложения, с актуальной подписью конфигурации на сервере.
Если вы существенно изменили конфигурацию в базе (добавили новые объекты, изменили состав мобильных функциональных опций) или если сборка приложения производилась из одной базы, а подключаетесь вы к другой, подписи не совпадут. Платформа посчитает приложение «устаревшим» или «чужим» и заблокирует вход. Рассмотрим, как это исправить двумя способами.
Если мы не хотим тратить время на повторный запуск «Сборщика мобильных приложений 1С», мы можем внедрить новую подпись прямо в файлы проекта Xcode. Разберем этот процесс по шагам.
Подпись мобильного клиента. Нажмем на кнопку выбора (три точки) и скопируем длинную последовательность символов в буфер обмена.1cem-config.json или внутри XML-файлов в папке Resources.signature или MobileClientSignature). Вставим скопированную ранее строку из Конфигуратора. Сохраним файл.Проанализируем ситуацию: если приложение используется только внутри компании для тестирования и вы часто меняете конфигурацию, постоянная переподпись может замедлять работу. Рассмотрим альтернативный вариант — отключение проверки подписи в самой информационной базе.
Выполним следующие действия в Конфигураторе:
После этого мобильный клиент будет игнорировать любые расхождения в подписях и позволит зайти в базу. Важно: этот метод не рекомендуется для публичных приложений в App Store из соображений безопасности, но он идеален для этапа активной разработки.
Часто разработчики используют бесплатный аккаунт Apple (Apple ID без платной подписки Developer Program). У такого подхода есть существенное ограничение: профиль обеспечения (Provisioning Profile) действует всего 7 дней. По истечении этого срока приложение просто перестает запускаться на iPhone.
Разберем, как продлить жизнь приложению, если нет возможности проплатить рабочий аккаунт прямо сейчас:
Во-первых, нам необходимо убедиться, что в настройках проекта Xcode на вкладке Signing & Capabilities установлена галочка «Automatically manage signing». Это позволяет Xcode самостоятельно взаимодействовать с серверами Apple и перевыпускать профили.
Во-вторых, когда срок в 7 дней истечет, нам не нужно пересобирать весь проект «с нуля». Достаточно выполнить следующие действия:
Xcode автоматически обнаружит, что старый профиль просрочен, запросит у Apple новый на следующие 7 дней, переподпишет бинарный файл и загрузит его в телефон поверх старого приложения. При этом все локальные данные пользователя в приложении будут сохранены.
Рассмотрим важный нюанс: начиная с Xcode 15 и последних версий iOS, после установки приложения через кабель может потребоваться ручное подтверждение доверия сертификату. Если вы видите ошибку «Untrusted Developer», пройдем по пути на устройстве:
Настройки -> Основные -> VPN и управление устройством -> [Ваш Apple ID] -> Доверять.
Также помните, что на бесплатном аккаунте существует лимит — не более 3-х установленных сторонних приложений одновременно. Если вы пытаетесь поставить четвертое, Xcode выдаст ошибку подписи без объяснения причин. В этом случае удалим одно из старых тестовых приложений и повторим процедуру Run.
Подводя итог, отметим, что связка 1С и Xcode требует понимания двух разных уровней защиты: логического (подпись 1С внутри приложения) и системного (сертификаты Apple). Правильная настройка обоих уровней позволит вам беспрепятственно заниматься отладкой мобильных решений.