Вы можете отправить приложение как совершенно бесплатное приложение в AppStore, но потребовать, чтобы пользователь выполнил вход и аутентифицировал его использование. Таким образом, любой может загрузить его, но вы можете контролировать, кто может его использовать. Apple делает все для вас, и вам не нужно беспокоиться о развертываниях Ad-Hoc или ИТ-отделах.
Затем вы создаете действительно простую систему управления конфигурацией на веб-хосте (или платформе, такой как Google AppEngine), которая управляет аутентификацией приложений.
Когда пользователь запускает бесплатное приложение, им предлагается ввести имя пользователя/пароль/что угодно. Эта информация отправляется в веб-систему управления конфигурацией и подтверждается. Если приложение получает приемлемое подтверждение из системы управления конфигурацией, оно разблокируется для использования этим пользователем.
Приложение может либо повторно аутентифицироваться каждый раз, когда оно запускается (полезно, если вам нужно много контроля), либо он может хранить файл ключа локально, указывая, что он был аутентифицирован.Если он видит локальный файл ключа при запуске приложения, он считает себя аутентифицированным и никогда не проверяет снова.
Независимо от того, используете ли вы одну учетную запись пользователя на человека или одну для всей компании, зависит от вас.
Этот стиль распространения очень полезен, если вы хотите иметь контроль над тем, кто может использовать это приложение, но хотите, чтобы легкость развертывания, предоставляемая AppStore.
Apple приняла множество приложений в AppStore, которые используют этот метод аутентификации на удаленном сервере (Skype - прекрасный пример).
Если вы отслеживаете UDID устройства на сервере конфигурации, вы также можете предварительно загрузить его, чтобы разрешить работу определенного набора устройств.
Кроме того, ничто из того, что я описал, не является специфичным для iPhone, поэтому вы можете использовать ту же систему управления конфигурациями и концепций на других платформах, таких как Android (или даже настольные компьютеры), если вы когда-либо переносите приложение или создаете другие приложения, которые нуждаются в этом в будущем.
Кроме того, поскольку действие аутентифицирующих устройств не является процессором или интенсивным использованием данных, вы, вероятно, никогда не понесете затрат, если вы построите это на Google AppEngine, поскольку вы никогда не будете использовать свободные квоты, и вы получите стабильность и масштабируемость Бэкэнд-архитектура Google.
Поскольку это конкретное развертывание для управления внутренней внутренней системой, развертывающей ее через AppStore, может показаться небезопасным, поскольку в приложении есть встроенная в собственность информация, в частности информация, которая позволяет ей подключаться к и аутентифицировать для внутренних систем.
Решение этой проблемы заключается в том, чтобы не включать эту информацию в приложение и просто иметь эту информацию как часть ответа, получаемого приложением от сервера управления конфигурацией. В основном приложение содержит логику, необходимую для выполнения своей функции, но без информации о соединении у нее нет возможности управлять какой-либо внутренней системой.
Если вы выполняете аутентификацию приложения при каждом запуске, вы можете изменить информацию о подключении на сервере конфигурации, и приложение обновится до новой информации без необходимости нового развертывания. Пользователю просто нужно перезапустить приложение. Это дает вашему клиенту гибкость в изменении внутренней конфигурации сети без аннулирования кода приложения. Вы также можете настроить эту информацию вручную в приложении, но при этом вы устанавливаете для ИТ-приложения затраты на ИТ при настройке приложения на каждом устройстве, и если вы уже собираетесь настроить систему управления конфигурацией, вы также можете ее использовать.
Для обеспечения безопасности вышеуказанного решения вы можете захотеть, чтобы система управления конфигурацией была собственной и за брандмауэром компании, так что независимо от того, кто ухватился за приложение, они не могут подключиться к системе конфигурации, если они не находятся внутри сети компании.
я разработал в доме приложение, я пытаюсь открыть выше ссылку http://devworld.apple.com/programs/ios/enterprise/--- но ее не работает, в любом случае я просто хотел подтвердить, что это возможно для небольшой компании (около 200 сотрудников) а также клиент может загрузить это собственное приложение без использования магазина приложений? спасибо – Pooja
@Pooja - небольшая компания может распространять корпоративное приложение (на самом деле у моего клиента около 50 сотрудников). Технически клиент * мог * скачать * это приложение, но вам нужно быть очень осторожным, когда дело доходит до распространения. Каждое приложение поставляется с сертификатом корпоративного распространения. Вредоносные пользователи могут извлечь этот сертификат и начать подписывать с ним свое приложение, что явно не является желаемым результатом. – Luke