1с сборщик мобильных приложений не установлен сертификат разработчика
Полагаю, большинству, кто сталкивался с разработкой под iOS, известно, что без сертификата разработчика невозможно тестировать и отлаживать приложение на реальном устройстве. Стоит он $99 в год. Конечно, можно обойтись встроенным симулятором, но его функционал сильно урезан. К тому же тестирование и отладка на девайсе гораздо удобнее в плане наглядности.
Но стоит ли платить эти деньги, если Вы, например, только учитесь или ваше приложение служит для личного «домашнего» использования, т.е. ваши приложения не несут никакой финансовой выгоды? Думаю, что нет.
Есть способ обойти этот запрет. Однако, он служит только для установки собственных приложений, в то время как отладка остается недоступной.
Если, несмотря на ограничения, Вы заинтересовались — добро пожаловать под кат.
ВМЕСТО НАПУТСТВИЯ
Начнем с того, что все манипуляции проводились на Macbook Pro с OS X 10.8.3 и Xcode 4.6.1 на борту, а в качестве девайса был взят iPhone 5 c iOS 6.1. Таким образом, на данный момент способ является актуальным и рабочим.
ШАГ ПЕРВЫЙ
ШАГ ВТОРОЙ
Теперь создадим собственный сертификат подписи кода.
Для этого запускаем Связка ключей -> Ассистент сертификации -> создать сертификат. Откроется окно ассистента сертификации. Вводите имя (например iOS developer) и выбираете тип сертификата «подпись кода». Не забудьте поставить галочку напротив «Заменить настройки по умолчанию».
Далее выбираем срок действия. В информации о сертификате поле «адрес e-mail» оставляем пустым. И нажимаем «продолжить», пока сертификат не будет создан.
В итоге связка ключей должна выглядеть так.
ШАГ ТРЕТИЙ
Переходим в /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform, копируем Info.plist на рабочий стол и открываем.
Заменяем значение XCiPhoneOSCodeSignContext на XCCodeSignContext. Оно встречается в файле 3 раза: DefaultProperties, RuntimeRequirements и OverrideProperties.
Копируем измененный файл обратно в /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/ и заменяем исходный, не забыв сделать его бекап.
ШАГ ЧЕТВЕРТЫЙ
Закрываем и перезапускаем Xcode. Теперь создаем новый или открываем существующий проект. В Targets выбираем Build Settings и во вкладке Code Signing выбираем созданный сертификат.
ШАГ ПЯТЫЙ
Наконец можно собрать приложение (Product -> Build). И в папке Products появится заветная сборка.
ШАГ ШЕСТОЙ
Выбираем нашу сборку и правым кликом «показать в Finder». Создаем папку Payload и копируем
[название приложения].app в эту папку (по умолчанию все файлы сохраняется по пути
/Users/[имя пользователя]/Library/Developer/Xcode/DerivedData/[название приложения]/Build/Products/Debug-iphoneos/).
ШАГ СЕДЬМОЙ
Архивируем и полученный Payload.zip переименовываем в [название приложения].ipa и получаем приложение, готовое к установке.
Такое приложение можно установить через iTunes либо скинуть на устройство и установить например, через AppCake.
UPD.: Спасибо за альтернативный, а главное автоматический вариант kjuby. Для этого нужно скачать утилиту jailcoder и следуя инструкциям добавить 2 сертификата, пропатчить Хcode и пропатчить проект. После чего, будет доступен режим тестирования и отладки.
Ошибка при создании ключа разработчика .
Мобильная платформа 8.3.10.51.
Компоненты установлены . Скачивались по ссылкам из сборщика мобильного приложения. Android SDK ставил скачиванием Android Studio .
Еще - в путях к компонентам- как я указал на прикрепленной картинке по кнопке SDK_Manager вызывается исполняемый файл с таким названием.
Но сейчас такого файла нет, в SDK переделали на пакетные файлы. Сам Android SDK Manager я запустил через Android Studio.
Получается , что Сборщик мобильных приложений он для более ранних версий SDK?
Может , кто-нибудь в курсе этих изменений?
Не хватает пробелов после storepass и keypass и dname
Нужно переделать так:
После того как это исправите получите так же ошибку "Ошибка получения хеша SHA1 ключа разработчика. Код возврата:"
Добавить пробелл после storepass
Потом ты с большой вероятностью столкнешься с ошибкой вида:
BUILD FAILED
E:\temp\4d958e77-85ed-4eb1-9556-52acdc23d77b\build.xml:50: Cannot find E:\sdk\tools\ant\build.xml imported from E:\temp\4d958e77-85ed-4eb1-9556-52acdc23d77b\build.xml
и будешь долго матерясь искать решение
ключ разработчика не создан код возврата 1
Писать всё на Англ
(0) столкнулся с той же проблемой на версии 8.3.21.16 (нумерация вроде как в какой-то момент сменилась с 2.0.хх.хх на 8.3.хх.хх) и там в коде все так же без пробелов:
и эта ошибка прошла - ключ создался
Кстати перед тем как это сделать я проверил отладчиком на что ругается (как советовали в нескольких местах).
Начал я изучать со статьи Собираем и запускаем приложение на Android (.apk файл) и там было описано на примере сборщика приложений версии 2.0.10.72 (он же 8.3.15.86), и там ошибка вылетает такая:
Потом поставил самую свежую на данный момент версию сборщика приложений 8.3.21.16 (тут версия 2.0.хх.хх уже не используется) и там ошибка была другой:
в итоге я полез и нашел на что она ругается в общем модуле FileSystemServiceв функции IsJDKDirectory:
Собственно тут видно что проблема реально в отсутствии файла jar.exe.
Конечно очень БОЛЬШОЙ вопрос как получается что он отсутствует и почему копирование java.exe помогает решить проблему - ведь это другое файл но походу суть у них одинаковая, и странно что в 1С никак эту проблему не решили (могли бы проверять наличие java.exe и пользоваться им) а ведь я устанавливал все самое свежее чтобы не было проблем с совместимостью
[info] Версия ОС : Windows x86-64, version 6.1 Service Pack 1 (Build 7601)
[info] Версия 1С:Предприятия : 8.3.10.2168 Windows x86-64
[info] Версия сборщика : 2.0.5.24
[info] Версия мобильной платформы : 8.3.10.51
[info] Графическая информация :
[info] Аудиоинформация :
[info] Android API Level : 25
[WARN] Информация о звуковых файлах отсутствует
[WARN] Ключ для работы с картами Google не задан в настройках. Работа с картами будет невозможна
[WARN] Необходимый элемент НЕ обнаружен
[info] Начинается сборка
Buildfile: F:\Mobile\tmp\03307c81-840d-49f0-a2b3-438742b06822\build.xml
BUILD FAILED
F:\Mobile\tmp\03307c81-840d-49f0-a2b3-438742b06822\build.xml:50: Cannot find F:\Mobile\Android\sdk\tools\ant\build.xml imported from F:\Mobile\tmp\03307c81-840d-49f0-a2b3-438742b06822\build.xml
Total time: 0 seconds
Мобильное приложение. Сборка *.apk файла
Добрый вечер. Читал много инфы по поводу сборки. Прочитал интересную вещь, что есть конфигурация и.
Экран загрузки, мобильное приложение iOS/Android
Здравствуйте! Подскажите, экран загрузки приложения, хочу сделать анимацию (gif, apng, mng) при.
Как сделать так, чтобы мобильное приложение автоматически подстраивалось под размер экрана?
В Android Studio мы же под определенную диагональ создаём приложение (один эмулятор).. Как при.
сборка под android
Собственно, если у меня есть приложение, написанное с помощью qt creator, можно ли его как-нибудь.
mxs89, да кто же знает то.
Сравнивай что не так у тебя
Добавлено через 20 минут
С ИТСа (для инфо)
25.5.2.2. Для ОС Android
Для разработки мобильного приложения для ОС Android необходимо выполнить следующие требования:
● Проверить, что нужные компоненты установлены, можно с помощью утилиты SDK Manager.exe, которая находится в каталоге, в который был установлен Android SDK.
Для нормальной работы с платформой разработчика необходимо установить Android SDK Platform-tools (пример на рис.471). Версия инструмента можно посмотреть в колонке Rev. На рисунке будет выполнена установка версии 22, что удовлетворяет требованиям (версия не ниже 14). После выбора компонент следует нажать кнопку Install X package… и согласиться с лицензионным соглашением.
● На компьютере должен быть один свободный USB-порт, используемый для связи с мобильным устройством.
● Для работы необходимо мобильное устройство на Android, соответствующее системным требованиям (подробнее см. здесь).
Для установки мобильной платформы разработчика на мобильное устройство, работающее под управлением Android, необходимо выполнить следующие действия:
● В настройках мобильного устройства необходимо установить следующие флажки:
● Отладка через USB;
● Подключить мобильное устройство к компьютеру;
● С помощью интерпретатора командной строки ОС Windows выполнить команду:
Пример для ARM-платформы:
%ANDROID_SDK%\platform-tools\adb.exe install -r "\1cem-arm.apk"
Пример для x86-платформы:
%ANDROID_SDK%\platform-tools\adb.exe install -r "\1cem-x86.apk"
Где, Каталог платформы – каталог, в котором расположен соответствующий файл с мобильной платформой. Если мобильная платформа уже установлена на мобильное устройство, то данная команда выполнит ее переустановку.
● Мобильная платформа будет передана на мобильное устройство и ее иконка появится в списке установленных приложений.
● Мобильное устройство можно отключить от компьютера и далее запускать мобильную платформу нажатием на иконку «1С:Предприятие» в списке приложений мобильного устройства.
Для установки мобильной платформы разработчика можно воспользоваться командой конфигуратора Главное меню – Конфигурация – Мобильное приложение – Использование Android debug bridge – Установить мобильную платформу. В этом случае надо будет выполнить дополнительную настройку конфигуратора (подробнее см. здесь). С установку мобильной платформы можно выполнить или на физическое мобильное устройство, подключенное к компьютеру или на эмулятор устройства, созданный с помощью менеджера виртуальных устройств Android (AVD Manager.exe, входит в состав Android SDK).
Добавлено через 2 минуты
а так же сборка
25.5.7. Сборка мобильного приложения перед публикацией в магазине приложений
Мобильное приложение, предназначенное для публикации в магазине приложений, состоит из мобильной платформы и мобильного приложения и дополнительных файлов (иконок, логотипов и т. д.), «упакованные» в один контейнер. Этот файл можно установить на мобильное устройство.
Для формирования мобильного приложения предназначена специальная конфигурация (Сборщик мобильных приложений), которая входит в состав дистрибутива мобильной платформы. Конфигурация предоставляет следующие возможности:
● Хранить разные версии мобильных конфигураций. Сборщик позволяет загружать как мобильные конфигурации без внешних компонент (1cema.xml), так и мобильные конфигурации с включенными внешними компонентами (1cema.zip).
● Хранить разные пакеты графической информации (иконки и заставки).
● Хранить разные версии мобильной платформы. Сборщик мобильных приложений работает с мобильной платформой версии 8.3.4 и старше. Работа с предыдущими версиями мобильной платформы не поддерживается.
● Собирать и хранить собственно мобильные приложения.
● Сборка для ОС Android выполняется как для архитектуры ARM, так и для архитектуры x86.
● При наличии компьютера Apple, подключенного к сети, в которой развернут сборщик мобильных приложений, имеется возможность выполнять полный цикл сборки мобильного приложения для ОС iOS – с автоматически созданием пакета приложения (.ipa).
● Сборка для ОС Windows выполняется как для ОС Windows Phone, так и для ОС Windows (приложение для распространения через Windows Store).
● Выполнять публикацию собранных мобильных приложений в соответствующих магазинах приложений непосредственно из сборщика (только для iOS и Android).
В том случае, если собираемое мобильное приложение включает внешние компоненты, то будут собраны мобильные приложения только для тех мобильных ОС, для которых существуют внешние компоненты. Другими словами, если к мобильной конфигурации подключена внешняя компонента, которая собрана для ОС iOS и Android, то такое мобильное приложение не будет собрано для ОС Windows.
Результатом работы сборщика выступают следующие объекты:
1. Мобильное приложение для ОС Android (архитектура ARM);
2. Мобильное приложение для ОС Android (архитектура x86);
3. Проект мобильного приложения для сборки на компьютере Apple (.zip-файл);
4. Пакет приложения для ОС iOS (.ipa-файл). Файл с пакетом приложения формируется в том случае, если в сборщике мобильных приложений настроены параметры соединения с компьютером Mac, который может выполнять сборку пакета приложений;
5. Мобильное приложение для ОС Windows Phone (архитектура ARM, .appx-файл);
6. Мобильное приложение для ОС Windows Phone (архитектура x86, .appx-файл);
7. Мобильное приложение для магазина приложений ОС Windows (архитектура x86, .appx-файл);
8. Мобильное приложение для магазина приложений ОС Windows (архитектура x64, .appx-файл).
Для того чтобы сборщик мобильных приложений мог выполнять какие-либо действия на стороне компьютера Apple, его необходимо настроить. Для этого необходимо выполнить следующие действия:
● Установить все доступные обновления OS X;
● С помощью средств портала разработчика Apple создать и установить в связку ключей Система сертификат дистрибуции для Apple AppStore или для корпоративного распространения:
● Для этого потребуется создание личного ключа средствами связки ключей;
● Следует обратить внимание на то, что все личные ключи и сертификаты должны располагаться в связке Система;
● После создания личного ключа, на вкладке Доступ диалога свойств ключа установить настройку Разрешить всем программам получать доступ к этому объекту.
● С помощью вкладки Accounts настроек Xcode установить provisioning profile, соответствующий сертификату дистрибуции;
● В настройках Общий доступ, системных настроек компьютера Mac, необходимо разрешить режим Удаленный вход.
● Здесь же следует получить имя компьютера, которое затем указать в настройках сборщика мобильного приложения.
● Также следует убедиться, что IP-порт номер 22 (SSH) компьютера Apple доступен для компьютера, на котором функционирует серверная часть сборщика мобильных приложений.
Сборка мобильного приложения выполняется на стороне сервера. На компьютере (или компьютерах), на котором исполняется серверная часть «1С:Предприятия», должно быть установлено следующее программное обеспечение:
ВНИМАНИЕ! Сборка мобильного приложения для ОС Windows возможна только в том случае, если на компьютере, который выполняет сборку, установлена операционная система Windows 8.1 и выше.
Требования к компонентам Android Studio определяются требованиями мобильной платформы, которая используется при сборке мобильного приложения. Мобильная платформа содержит API Level, который считается рекомендуемым при использовании мобиьлных приложений, собранных с этой платформой. Именно этот API Level будет требовать и сборщик при сборке мобильного приложения. API Level определяет требования к версиям Android Tools и Android Platform Tools. Версия Android Build Tools не должна быть младше, чем используемый API Level. Однако допускается использование любой более старшей версии API Level, относительно версии, которую требует мобильная платформа. В этом случае требования к другим компонентам будут проверяться относительно той версии API Level, который будет реально использоваться при сборке.
Проверить это можно с помощью утилиты SDK Manager.exe, которая поставляется вместе с SDK. Необходимые для работы сборщика компоненты отмечены на рис.473.
Рис. 473. Настройка Android SDK для сборщика
Не рекомендуется устанавливать ознакомительные или тестовые версии требуемых компонент. После выбора необходимых компонентов следует нажать кнопку Install … packages… и согласиться с лицензионным соглашением.
Также сборщик мобильных приложений содержит встроенную документацию (справка), которая содержит описание правил работы со сборщиком, системные требования и форматы архивов, которые будут загружаться в прикладное решение.
25.6. Публикация в магазине приложений
Подготовка приложения для размещения в магазине приложений делается аналогично проверке мобильного приложения перед публикацией в магазине приложений.
25.6.1. Для ОС iOS
Перед отправкой приложения в Apple AppStore необходимо создать приложение в портале iTunes Connect и заполнить всю требуемую информацию о приложении. Затем следует нажать кнопку Ready to Upload Binary, при этом статус вашего приложения в iTunes Connect должен измениться на Waiting For Upload.
25.6.1.1. Из архива проекта
После формирования файла с архивом приложения для ОС iOS следует скопировать файл архива на компьютер Mac и выполнить следующие действия:
● Распаковать файл с проектом мобильного приложения .zip на компьютере Mac;
● Открыть проект мобильной платформы разработчика в системе Xcode (двойным щелчком мыши по файлу 1cem.xcodeproj или выбрать файл 1cem.xcodeproj с помощью команды File – Open в системе Xcode);
● С помощью команды меню Xcode Product – Edit Scheme… необходимо открыть диалог настроек текущей схемы запуска. В открывшемся диалоге:
● В свойстве Scheme выбрать значение 1cem;
● В свойстве Build configuration выбрать значение Release;
● Нажать кнопку OK.
● Создать архив приложения с помощью команды Xcode Product – Archive;
● Открыть инструмент Organizer с помощью команды меню Xcode Window – Organizer;
Предыстория
Еще во времена «1С:Предприятия» версии 8.0 (и последующих версий) существовал программный продукт «Расширение для карманных компьютеров». Расширение позволяло создавать продукты только для ОС Windows Mobile, Windows CE и т.д. Продукт обладал собственным конфигуратором, и сервером, и поддерживался вплоть до выпуска «1С:Предприятия» версии 8.3. Последняя версия расширения (8.2.9) была выпущена в октябре 2013 года, а полная поддержка прекратилась 1 января 2015 года.
Расширение имело ограниченное применение даже во времена расцвета коммуникаторов на Windows Mobile, а уход таких устройств с мобильного рынка явно не добавил популярности этому программному продукту. Устройства на iOS и Android заняли практически весь рынок мобильных устройств, и стало очевидно, что поддержка этих ОС является одним из ключевых моментов для системы, которая должна эксплуатироваться в современном мобильном мире. Также казалось очевидным, что основной подход существующей платформы «1С:Предприятие» должен использоваться и на мобильных устройствах: прикладной разработчик должен в первую очередь думать о решении прикладных задач, а во вторую — о том, какие возможности используемой ОС ему задействовать для решения этих задач. Другими словами, нужен инструмент, который изолирует прикладного разработчика от особенностей конкретных мобильных ОС и инструмента разработки.
Мобильная платформа
- она должна поддерживать современные популярные мобильные операционные системы и устройства под их управлением. В первую очередь это ОС iOS фирмы Apple и Android компании Google.
- эта система должна позволять использовать разработанные приложения в стиле, принятом на современных мобильных устройствах. В частности, интерфейс должен опираться на ручное управление (в буквальном смысле этого слова) с использованием сенсорных экранов.
- система должна обеспечивать единообразный программный интерфейс для реализации различных специфических механизмов, вне зависимости от используемой мобильной ОС.
- разработчик должен использовать тот же инструмент и те же подходы к разработке, что и при разработке приложений для «обычного» компьютера.
- прикладной разработчик должен разрабатывать прикладное решение в привычной среде разработки, по возможности используя единый код для настольной и мобильной систем.
- интерфейс прикладного решения, работающего на мобильном устройстве, должен быть аналогичен для различных платформ и в целом однозначно узнаваем.
Начиная с версии мобильной платформы 8.3.7 стала доступна и отладка приложения непосредственно на мобильном устройстве (подробнее об этом ниже).
- мобильное приложение может быть составной и неотъемлемой частью существующей информационной системы предприятия. Мобильное приложение будет предоставлять интерфейс и другие возможности (включая обмен данными), «заточенные» под возможности существующей информационной системы. В этом случае мобильное приложение очень плотно связано с «обычной» информационной системой и не может эксплуатироваться в отрыве от нее.
- мобильное приложение выполняет специфические задачи, которые практически никак не связаны с информационной системой предприятия. Существует лишь минимальный набор данных, которыми обмениваются мобильное приложение и информационная система. В этом случае, скорее всего, мобильное приложение будет выполнять обмен по некоторому стандартизированному протоколу, что делает возможным применение этого мобильного приложения в совершенно различных случаях и ситуациях.
Устройство мобильной платформы
- Собственно мобильная платформа — мобильная часть фреймворка «1С:Предприятие». Она бывает обычной (которая используется во время сборки приложения для публикации в магазине приложений) и мобильной платформой разработчика, которая используется (сюрприз) во время разработки мобильного приложения.
- Мобильная конфигурация — это конфигурация системы программ «1С:Предприятие», записанная в виде XML-файла.
- Комбинация мобильной платформы и мобильной конфигурации дает мобильное приложение.
- Сборщик мобильных приложений — специализированное прикладное решение, которое умеет сделать из мобильной платформы, конфигурации, заставок, иконок и прочих компонентов, готовый файл мобильного приложения, который можно загрузить в магазины Apple AppStore, Google Play, Windows Phone Apps / Windows Apps.
Немного о платформе разработчика
Что умеет?
Как выглядит?
Графический интерфейс мобильной платформы – отдельная тема. В 1С:Предприятии, как известно, интерфейс описывается декларативно. Это, с одной стороны, накладывает некоторые ограничения на разработку UI (например, отсутствует возможность попиксельного позиционирования), но, с другой стороны, позволяет платформе единообразно отрисовывать интерфейс на экранах разного размера, в тонком и веб-клиенте. Этого же принципа мы старались придерживаться и в мобильной платформе. Насколько хорошо нам это удалось? Попробуем разобраться.
В первых версиях мобильной платформы (до 8.3.5 включительно) графический интерфейс приложений выглядел весьма привычно для искушенных пользователей 1С; фактически он переносил знакомый по «десктопным» версиям 1С интерфейс в мобильный мир. Но с точки зрения пользователей, ранее с 1С не знакомых, интерфейс выглядел несколько архаичным.
Учтя замечания и пожелания, мы коренным образом пересмотрели свой подход к мобильному интерфейсу в версии 8.3.6. Можно сказать, что мы сделали совершенно новый мобильный интерфейс для наших приложений. Он имеет много общего с нашим интерфейсом «Такси». Модель разработки для разработчиков мобильных приложений соответствует модели разработки в «Такси». При этом мобильный интерфейс полностью соответствует принятым в мобильных приложениях подходам к дизайну и UX. Интерфейс полностью учитывает специфику мобильного мира: небольшой размер экрана (а значит, оформление графических элементов должно стать более аскетичным – без теней, градиентов), есть поддержка пальцевых жестов и т.д. Интересный факт: новый механизм платформы, отвечающий за размещение элементов в форме (layouter) оказался настолько удачным и своевременным для мобильной платформы, что был выпущен в ней раньше (в версии 8.3.6) чем в платформе для ПК (в версии 8.3.7), для которой он в первую очередь предназначался.
На картинке можно увидеть, как поменялся наш интерфейс.
Приложение «Управление небольшой фирмой» на версии мобильной платформы 8.3.5:
Оно же на версии 8.3.6:
А вот так выглядит интерфейс мобильной платформы вживую:
Сборщик — и что это за зверь?
- Загружаем версию мобильной платформы 1С, на которой будем собирать приложение
- Загружаем конфигурацию, из которой будем собирать мобильное приложение
- Создаем мобильное приложение, в котором указываем, для каких платформ (Android, iOS, Windows) надо выполнять сборку, какую конфигурацию и платформу следует использовать (в частности, указать, какой сертификат для сборки под iOS использовать в случае, если приложение работает с PUSH-уведомлениями).
- Выполняем «одним кликом» сборку мобильного приложения под все выбранные платформы
- «Другим кликом» отправляем собранные мобильные приложения в магазины приложений (если это приложение для iOS или Android). В магазины Windows Apps / Windows Phone Apps приложение нужно загружать вручную, т.к. Microsoft пока не предоставляет API для размещения приложения в магазине.
Приложения на мобильной платформе
Сама фирма «1С» выпускает на мобильной платформе ряд приложений, являющихся мобильными клиентами серверных приложений 1С (1С:Документооборот, 1С:Управление Небольшой Фирмой и т.д.). Эти приложения реализуют некоторое подмножество функциональности «обычных» клиентов. В случае мобильной версии «1С:Управление Небольшой Фирмой» функциональности достаточно для полноценного использования программы, и мы часто видели ситуацию, когда клиентам для ведения бизнеса достаточно мобильной версии приложения.
Наши партнеры используют мобильную платформу как для разработки тиражных мобильных приложений, распространяемых через магазины приложений, так и для заказных приложений, созданных по запросам конкретных клиентов. Среди тиражных приложений встречаются приложения, которые используют не 1С-ный back-end в качестве центрального хранилища данных.
Среди мобильных приложений, созданных по заказу клиентов, можно упомянуть мобильный клиент для «1С:Управления Производственным Предприятием», созданный по заказу крупного машиностроительного холдинга. Около ста сотрудников холдинга используют мобильное приложение в горячих цехах, где по соображениям техники безопасности поставить стационарные компьютеры невозможно. Встроенная камера мобильного устройства используется для чтения штрих-кодов изделий и поиска их в справочнике номенклатур, мобильное приложение позволяет понять, на каком этапе технологической цепочки находится данное изделие, отметить прохождение изделием очередной операции и т.п.
Заключение
Два ковбоя сидят в салуне.
На улице выстрелы, грохот. Скачет всадник и палит из револьвера.
— Билли, это кто?
— А, да это неуловимый Джо
— Что, его реально никто поймать не может?
— Да кому он нафиг нужен-то?!
Время от времени приходит рассылка, о недопустимости пароля «123» и он меняется на «1234», а тот, кто с «123456», тот вообще молодец. Сервер 1С зачастую совмещен с файлопомойкой, где многие более любопытные вещи лежат в формате простого текста. А еще чаще и с терминальным (это для скорости, скажет любой админ), где все делают, что хотят. Многие скажут, что эти времена ушли вместе с 3-х дюймовыми дискетами, а вот и нет.
На самом деле, очень большая доля сермяжной правды присутствует.
Если человек понимает архитектуру «1С Предприятие», то вряд ли он будет работать менеджером по продажам, скорее он будет на светлой стороне силы с соответствующим окладом и количеством задач, не позволяющим отвлекаться по мелочам.
Чтобы совершить открытие,
иногда достаточно посмотреть на привычные вещи по диагонали.
приписывается А.Энштейну
Но есть нюанс… Со времен 3-х дюймовых дискет «1С Предприятие» проделало огромный путь в своем развитии. И сейчас это могучая экосистема поддерживающая и активно внедряющая все современные технологии.
Как человек идущий с 1С как раз со времен 3-х дюймовых дискет хочу сказать, слова «могучая экосистема» это не оговорка и не лесть.
Именно с тех времен для меня и для тысяч, если не миллионов (времени, то ого-го прошло) программистов, стала тем подручным средством мгновенной разработки, которым можно в считанные дни реализовать практически любую бизнес-идею, понятное дело в разделе учета. Именно в режиме – утром деньги, вечером стулья. Для того, чтобы писать игры или управлять реал-тайм оборудованием есть более приспособленные языки. Причем сделанное решение будет приятно на вид и в середнячках по быстродействию. Так происходит и с мобильной платформой, она много не может по сравнению с нативным кодом, но добавить хранение/добавление/редактирование и отображение сущности однотипных объектов (справочник) в ней можно за 5 мин и 0 строчек кода. А на java модель MVC придется писать самому, частично еще «гугля» подходящие фреймворки. То же и для десктопных платформ.
Как бывает в таких случаях, сознание людей, обслуживающих систему и пишущих под нее, еще не понимает всех ее возможностей
Так было с появлением управляемого интерфейса, когда «1С Предприятие» стало по сути веб-приложением, когда твою базу видит и пробует на зуб практически весь интернет. То есть, человек глядящий на базу в лоб из локальной сети и смотрящий на нее чуть со стороны видят разные вещи. Я писал об этом для журнала «Хакер» в далеком 2013 году, но у некоторых воз и ныне там, простите уж за каламбур. К этому вопросу мы еще возможно вернемся.
Статья попала в раздел взлом, хотя на самом деле никакого взлома нет, просто доступ к выполнению кода на сервере стал проще. Теперь пришло время мобильной платформы «1С Предприятие». Если относиться к написанию приложений для нее также, как к программированию для локальной сети (читай обычному стилю для программистов 1С) то легко можно попасть впросак. Здесь твоя база, это не твоя крепость, а совсем наоборот, устройство, принадлежащее разным людям. С разным уровнем подготовки, однозначно с нежеланием никакого отслеживания и не связанных ограничениями трудового договора. С них подписи не смотреть как устроено твое приложение не соберешь. Это давно уже поняли программисты нативных приложений для мобильных устройств, они очень трепетно относятся к своему коду и его безопасности, придут к этому и программисты 1С, надеюсь эта публикация им поможет.
Оптимист считает, что стакан наполовину полон,
пессимист, что стакан наполовину пуст…
А реалист знает, что пока оптимист и пессимист спорили, стакану приделали ноги.
Началось все как обычно с пустяка. Некая компания на Инфостарте разместила статью с мобильным приложением covid-19.
Таким образом набор ПО для тестового стенда получился такой:
- 1С: Предприятие 8.3, учебная версия (8.3.15.1747)
- NoxPlayer 6.6.0.6
- Мобильное приложение covid-19
- Мобильное приложение Автор сообщества Инфостарт релиз 1.0.1
- Notepad++ и far manager – это по вкусу.
Структура и даже названия файлов на мобильном устройстве полностью совпадают с версией большого брата
Поэтому скопировав каталог с эмулятора или телефона на компьютер вы сможете его открыть платформой 1С Предприятие для ПК.
Полное описание и расположение служебных файлов 1С находится здесь (не говорите только, что не можете зарегистрироваться), нас же интересует сам файл СУБД — 1Cv8.1CD.
Открыть базу можно как в режиме пользователя, к этому мы еще вернемся, так и в режиме конфигуратора, где виден исходный код.
В случае мобильного приложения covid-19 он был виден, как говорится в фильме невооруженным глазом. Кроме того было видно невооруженным глазом, что разработчики на это не рассчитывали.
Пароли, токены авторизации, модуль показа рекламы, все смешалось в доме Облонских тексте кода.
Как мирный и лояльный к компании 1С человек безусловно до публикации этой статьи я поставил группу разработки мобильной платформы 1С в известность и предоставил текст и все данные, они передали его по цепочке некоей компании. Потому по поводу рекламного блока есть ответ разработчиков приложения:
Утверждение, что приложение Covid-19 собирается рекламировать мобильное приложение «Фитнес», если оно останется в статье — будет ложью.
Мы ведем разработку с помощью набора ранее созданных готовых модулей. Нами разработана собственная БСП для мобильных приложений…
При старте этой разработки несколько готовых модулей были перенесены в код.
При этом “рекламные” модули не вызываются нигде в приложении.
Набор готовых модулей конечно дело хорошее, но когда готовишь приложение, которое разместят правительственные или здравоохранительные организации неплохо код почистить. А то возьмет его правительство скажем Гондураса, а мимо пробегающий ИТ-шник найдет в нем всякое разное… Присядет посол у окошка и скажет: О чем еще думать наблюдающим статистику пандемии, конечно о фитнесе. И еще немного о параде конечно. Нет, не ту страну назвали Гондурасом.
Не буду здесь перепечатывать анекдот про самогонный аппарат, скажу только что оптимисты потянулись пожать шею разработчиков, хорошо еще пессимисты заступились за создателей приложения. –Раз оно не запустилось, значит и рекламы не видно: логично сказали они и общий спор завершился дружеской ничьей.
Подчеркну не убирая под кат — это не мобильные приложения выпущенные только фирмой 1С, а приложения на мобильной платформе 1С. Любой, чувствующий в себе силы разработчик, может как я уже сказал выше, с помощью бесплатных инструментов написать и свободно распространять мобильные приложения (только сбор от магазинов Google или Apple). Положение о лицензировании можно прочесть в первоисточнике на этом же сайте.
Порядка 15% оказались также с открытым кодом конфигурации. Это позволяло, с одной стороны оценить стиль написания, с другой посмотреть пароли или зарегистрировать полную версию приложения.
Как ни парадоксально, лучше всего оказались защищены самые старые редакции мобильной платформы. Они и не запускались и не показывали свой код.
Так мы узнаем что у 1С есть ознакомительные версии конфигураций.
Разберем режим запуска подробнее
Список баз определяется, как и в настольной версии файлом ibases.v8i. Его можно редактировать вручную. Можно указать любые каталоги, доступные с телефона (эмулятора) и спокойно работать из них, только монопольном режиме. Но если добавить «чужую» базу, не того типа как в мобильном приложении, то оно не выдаст никаких ошибок и не вылетит, как в том случае, если попробовать открыть базу одновременно двумя версиями платформы, нет. Оно деловито попыхтит, проверит что ему подсунули, и элегантным движением руки откроется пустая база «родного» типа. Все дело в уникальном ГУИД конфигурации.
На этом пока все. До баз, работающих с веб публикациями руки пока не дошли. Как, впрочем, еще до многих интересных моментов.
В заключении статьи хочется дать несколько банальных, но нестареющих советов:
- Если делаешь добро, делай это бескорыстно. Сейчас это особенно просто сделать – надо в магазине надеть маску.
- Не забывай простую истину: пока ты смотришь на кого то, кто-то смотрит на тебя.
Пиши код, на который самому приятно посмотреть и за который не будет стыдно, когда его увидят. Тем более не нужно оставлять в коде фрагментов, которые могут оставить негативное восприятие.
Поскольку язык программирования 1С двуязычный — русско-английский, то мне встречались люди которые программировали матом. Когда пользователи «доставали» программиста 1С он воплощал это в имена функций и переменных.
Читайте также: