Заблокируйте iPhone / iPod / iPad, чтобы на нем можно было запускать только одно приложение

Мы хотели бы заблокировать iPhone / iPod / iPad, чтобы пользователь мог запускать только одно приложение (мы разработали это приложение внутри компании). Я предполагаю, что мы обратимся к взлому, а затем заменим (?) Приложение Springboard по умолчанию.

Мы можем это сделать? Если да, то как?


РЕДАКТИРОВАТЬ: iOS 7 теперь включает полезную нагрузку «Блокировка приложений» как часть профиля конфигурации устройства. Из документов Apple:

«При установке полезной нагрузки блокировки приложения устройство блокируется для отдельного приложения до тех пор, пока полезная нагрузка не будет удалена. Кнопка« Домой »отключена, и устройство автоматически возвращается к указанному приложению после пробуждения или перезагрузки».

Подробнее об этом читайте здесь:
https://developer.apple.com/business/documentation/Configuration-Profile-Reference.pdf.


person wpearse    schedule 16.02.2011    source источник
comment
Зачем тебе это нужно? вы с большей вероятностью создадите очень недовольного пользователя, подарив ему такое сильно поврежденное устройство. К тому же в тот момент, когда у них появится веская причина (и они будут) добавить туда что-то еще (электронная почта, просмотр веб-страниц и т. Д.), Вы потратите зря свои усилия. Я бы посоветовал в конечном итоге предварительно загрузить приложение для ваших пользователей и не повредить устройство.   -  person drekka    schedule 16.02.2011
comment
«Пользователи» - это технические специалисты в нашей компании. Мы даем им устройства, чтобы помочь им выполнить очень конкретную задачу, и разработали программное обеспечение, чтобы помочь им. Это не личные устройства, это корпоративные устройства, которые в конце каждого дня будут пристыкованы к мастерской для зарядки. Мы не хотим, чтобы специалисты просматривали веб-страницы / играли в игры / музыку / общались по электронной почте и т. Д. Звучит по-нацистски, я знаю ... но так оно и есть.   -  person wpearse    schedule 16.02.2011
comment
Этот ответ может вам помочь (с помощью встроенной функции ограничений).   -  person    schedule 16.02.2011
comment
Это функция iOS 6, которую можно использовать без взлома. Это называется «управляемый доступ», см. Мой ответ ниже.   -  person brainray    schedule 18.10.2012
comment
Очень хорошо. Искал что-то подобное для своего 3GS на iOS 5. Телефон используется для звонков по скайпу только нетехническим пожилым человеком. Ограничение устройства только использованием Skype избавляет пользователя от лишних хлопот.   -  person foureight84    schedule 24.03.2014


Ответы (8)


Можно перевести iPad или iPhone в режим «Демо-магазин», чтобы кнопка «Домой» и жест «свайп до дома» были отключены. Если вы видели, что iPad в Apple Store запускает приложения для смарт-знаков, вы поймете, о чем я.

На самом деле выполнить эту работу довольно просто, все, что вам нужно сделать, это установить правильно отформатированный мобильный конфигурационный файл по воздуху с веб-сервера.

Чтобы доставить свою конфигурацию из Интернета, все, что вам нужно сделать, это направить iPhone на URL-адрес, содержащий профиль. Просто откройте ссылку на ваш файл .mobileconfig в Safari. Если у вас нет веб-пространства, вы можете просто использовать URL-адреса общедоступных папок Dropbox или включить веб-сервер Mac.

Возможно, вы также можете загрузить конфигурацию с помощью IPCU, но я этого не пробовал. Этот файл конфигурации не будет загружаться в утилите настройки iPhone, поскольку он использует ключи, о которых IPCU не знает. Вы можете комбинировать это с любыми другими профилями конфигурации предприятия, которые у вас есть.

ИЗМЕНИТЬ: @cocoanetics указал, что IPCU не требуется для удаления профиля. Однако учтите, что для того, чтобы вернуть ваше устройство в нормальное состояние, вам необходимо сделать следующее:

  1. Перезагрузить
  2. Откройте приложение настроек СНАЧАЛА - больше ничего не открывайте, иначе вам нужно будет перезагрузиться снова
  3. Настройки-> Общие-> Профили -> [ваш профиль] удалите его.
  4. Перезагрузить

ты должен вернуться к нормальной жизни.

Я включил пример списка, который отключит кнопку «Домой» и заблокирует ваше устройство в приложении.

ОСТОРОЖНО!

После установки этого профиля первое приложение, которое запускается при перезагрузке устройства, будет единственным приложением, которое будет работать, пока вы снова не перезагрузите устройство. Как сказал @Cawas это полностью отключает возможность возврата к домашнему экрану (если ваше приложение не вылетает), включая сенсорную поддержку специальных возможностей.

Обратите внимание, что после установки профиля вы должны перезагрузить устройство (выключить, включить), чтобы он вступил в силу. Чтобы удалить профиль, подключите устройство к IPCU и удалите его, а затем перезагрузите устройство. Все вернется на круги своя.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>PayloadContent</key>
    <array>
        <dict>
            <key>PayloadDescription</key>
            <string>Disables home</string>
            <key>PayloadDisplayName</key>
            <string>Home Button Lock</string>
            <key>PayloadIdentifier</key>
            <string>com.hbkill.kiosk</string>
            <key>PayloadOrganization</key>
            <string>My Org</string>
            <key>PayloadType</key>
            <string>com.apple.defaults.managed</string>
            <key>PayloadUUID</key>
            <string>B2D02E2D-BAC5-431B-8A29-4B91F71C9FC1</string>
            <key>PayloadVersion</key>
            <integer>1</integer>
            <key>PayloadContent</key>
            <array>
                <dict>
                    <key>DefaultsDomainName</key>
                    <string>com.apple.springboard</string>
                    <key>DefaultsData</key>
                    <dict>
                    <key>SBStoreDemoAppLock</key>
                    <true/>
                    </dict>
                </dict>
            </array>
        </dict>
    </array>
    <key>PayloadDescription</key>
    <string>Disables Home Button</string>
    <key>PayloadDisplayName</key>
    <string>Home Button Lock</string>
    <key>PayloadIdentifier</key>
    <string>com.hbkill</string>
    <key>PayloadOrganization</key>
    <string>My Org</string>
    <key>PayloadType</key>
    <string>Configuration</string>
    <key>PayloadUUID</key>
    <string>614D1FE3-F80D-4643-AF6B-D10C4CC8737A</string>
    <key>PayloadVersion</key>
    <integer>1</integer>
</dict>
</plist>

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

person Rick    schedule 24.01.2012
comment
Важное замечание: ваш файл должен называться something.mobileconfig Я потратил около часа на то, чтобы понять это. Спасибо, что разместили Рика, это именно то, что мне нужно. - person The Dog; 16.02.2012
comment
@TheDog да, хорошее замечание. Я поясню это в ответе - person Rick; 16.02.2012
comment
Я обнаружил некоторые проблемы с удалением конфигурации. Это не отображается в IPCU. - person SlowTree; 22.02.2012
comment
@SlowTree У меня никогда не было такой проблемы. Вы не можете редактировать профиль с помощью IPCU, но вы сможете без проблем добавлять / удалять его. Вы всегда можете перезагрузить устройство, затем сразу перейти к настройкам и удалить его оттуда. - person Rick; 27.02.2012
comment
Вы также можете удалить профиль через приложение «Настройки». Нет необходимости в IPCU. - person Cocoanetics; 29.02.2012
comment
@Cocoanetics: да, но только если вы сразу перешли к настройкам (не проходите, не собирайте 200 фунтов стерлингов), иначе вы заблокируете первое открытое приложение, которое в данном случае должно быть приложением настроек. Вам нужно снова перезагрузить устройство после удаления настройки с помощью приложения настроек. - person Rick; 06.03.2012
comment
Как узнать идентификатор приложения для веб-приложения? - person patrick; 06.04.2012
comment
@patrick Я не совсем понимаю, что вы имеете в виду под идентификатором приложения. Если вы имеете в виду значение ключа PayloadUUID, то фактическое значение является произвольным, если оно уникально для устройства, на которое вы его устанавливаете. Самый простой способ - использовать инструмент командной строки OSX uuidgen. StudioIMac: ~ Рик $ uuidgen 85E0851C-AC7F-4CB2-ACBF-82B46E544043 - person Rick; 08.04.2012
comment
Ну, я не понял, как сказать, какое приложение должно запускаться первым, подумал, нужно передать идентификатор приложения. Кажется, что SBStoreDemoAppLock - это приложение, которое запускается первым, верно? Итак, как я могу изменить его, чтобы вместо этого запускалось веб-приложение (если это возможно)? Спасибо :) - person patrick; 09.04.2012
comment
Все, что делает конфигурация, - это отключает кнопку «Домой», поэтому не имеет значения, что вы начнете в первую очередь. Какое приложение запускать - решать пользователю, который контролирует устройство во время загрузки. - person Rick; 10.04.2012
comment
Рик, тебе следует добавить @Cocoanetics в свой ответ ... И конфигурация не просто отключает кнопку button. Все, что связано с возвращением домой, перестает работать, включая жесты и инструменты доступности. - person cregox; 15.05.2012
comment
@Rick, при установке возникает следующая ошибка. : (Ошибка) MC: Не удалось проанализировать данные профиля. Ошибка: NSError: Описание: Недействительный профиль США Описание: Недействительный домен профиля: MCProfileErrorDomain Код: 1000 Тип: MCFatalError Не могли бы вы мне помочь .. - person Bhushan Kawadkar; 15.05.2012
comment
@Cawas Я сказал вверху, что он также отключает жесты, не уверен, что вы имеете в виду, вы должны добавить Cocoanetics в свой ответ. - person Rick; 17.05.2012
comment
@Bhushan, возможно, последняя версия iOS убила это. Поскольку это также убило методы ярлыка домашнего экрана. Я никогда раньше не видел этой ошибки, извините. - person Rick; 17.05.2012
comment
Я отвечал на ваш комментарий, вся конфигурация отключает кнопку «Домой», не заметила, что вы упомянули жесты в ответе. Хороший! Итак, теперь вам просто не хватает инструментов доступности и комментария Cocoanetics (о том, что вам не нужен IPCU) на ваш ответ. ;) - person cregox; 18.05.2012
comment
@cawas ахх, я тебя понял. да, я разъяснил это в ответе на комментарий, но кто читает комментарии, а? Обновил для полноты. - person Rick; 18.05.2012
comment
Похоже, я читаю комментарии, даже больше, чем ответы! :П - person cregox; 18.05.2012
comment
Кто-нибудь нашел способ автоматически запускать приложение во время загрузки? - person ygbr; 04.07.2012
comment
Спасибо за отличный ответ. Один вопрос: вы говорите, что первое приложение, которое вы запустите, будет единственным приложением, которое будет запускаться, поскольку вы не можете вернуться домой. Но если это приложение запустит другое приложение (через схему URL-адресов), будет ли оно работать? - person Ghopper21; 08.02.2013
comment
@ Ghopper21 Да. Фактически, я полагался на это в производственной среде, переходя из сбойного приложения в другое приложение-пусковую установку, которое затем вызывает перезапуск исходного приложения. - person Rick; 19.02.2013
comment
Он не устанавливается в iOS 7. Ссылка на профиль конфигурации iOS 6 (developer.apple.com/library/ios/featuredarticles/) указывает полезную нагрузку блокировки приложения (PayLoadType = com.apple.app.lock). любезно поделитесь своим мнением об этом @Rick - person Durai Amuthan.H; 20.01.2014
comment
К вашему сведению: некоторые важные части профиля конфигурации - это SPRINGBOARD и SBStoreDemoAppLock. com.apple.springboard - это файл plist в iOS. SBStoreDemoAppLock - это ключ, и мы включаем его, давая истину. На самом деле SPRINGBOARD - это стандартное приложение, которое управляет домашним экраном iOS, и некоторые из его других задач - запуск и загрузка приложений и установка некоторых параметров устройства при запуске.Чтобы узнать больше о SPRINGBOARD Пожалуйста, обратитесь к en.wikipedia.org/wiki/SpringBoard Чтобы узнать основы создания профиля конфигурации Plz см. petri.co.il/iphone-configuration-utility.htm - person Durai Amuthan.H; 12.02.2014

Это функция iOS 6, которую можно использовать без взлома. Это называется «управляемый доступ». Небольшое руководство находится здесь.

РЕДАКТИРОВАТЬ: в случае, если батарея устройства разряжается, когда она находится в руках ограниченного пользователя, пользователь может перезагрузить устройство, и оно перезагрузится без управляемого доступа. Однако, если вы решите использовать пароль для устройства, это не должно быть проблемой.

person brainray    schedule 18.10.2012

Альтернативой (правда, гораздо более простому) подходу, описанному Риком, является:

person Yang Meyer    schedule 01.03.2012

http://www.apple.com/support/ipad/enterprise/

Apple предоставляет инструменты конфигурации предприятия, которые позволяют контролировать, какие приложения разрешены и т. Д. Кажется, это делается через управление профилями. См. Ссылку для получения более подробной информации

person James Selleck    schedule 20.01.2012

Я согласен с комментарием, сделанным несколько часов назад: Настройки> Общие> Ограничения должны помочь. Если пользователь не может ничего установить, не может получить доступ к Safari или Mail, то нет причин когда-либо выходить из вашего приложения.

person Kevin Renskers    schedule 16.02.2011

Заблокируйте доступ в Интернет с устройства (MAC-фильтр на Wi-Fi может помочь). Любая другая проблема, не связанная с Интернетом (музыка, игры и т. Д.), Уже должна быть решена существующей ИТ-инфраструктурой (если ваши разработчики не воспроизводят и не слушают MP3 на работе).

person Eduardo Costa    schedule 16.02.2011

Я нашел один способ выйти из этого состояния домашней блокировки. У меня есть установка «backgrounder» через cydia, которая заставляет ваше приложение работать в фоновом режиме, если вы нажимаете кнопку «Домой» на одну секунду или более. и теперь, когда я долго нажимаю кнопку «Домой», я возвращаюсь на главный экран.

вот и все.

обратите внимание на лонгпресс.

person iWill    schedule 14.09.2012

Э-э… не был уверен, что это ответ или комментарий, но - решение, которое сейчас является частью вопроса, имеет слабую сторону - наша служба поддержки использовала это и обнаружила, что если вы «Нажмите кнопку питания, чтобы« мягко выключить » затем удерживайте кнопку «Домой» при включении и сдвиньте, чтобы разблокировать. Иногда iPad запускается на домашней странице или XXAPPLCATIONXX зависает, а затем выпадает на домашнюю страницу. В любом случае X может получить доступ к домашней странице без пароля ».

person Joe    schedule 14.01.2013
comment
Это с управляемым режимом доступа или с профилем обеспечения? - person wpearse; 18.01.2013
comment
Правильный. Как отмечает Рик в своем ответе, все, что делает профиль обеспечения, - это отключение кнопки «Домой». Кроме того, iPad всегда будет запускаться на главном экране при первом включении;) (Независимо от того, установлен ли на iPad профиль подготовки или нет.) - person wpearse; 19.01.2013