Содержание статьи
- Почему нельзя просто установить приложение
- Официальный путь: аккаунт разработчика
- Полуофициальный путь: Cydia Impactor
- Идем в серую зону: подпись пакета обычным Apple ID
- Nullximpactor
- iOS App Signer
- AltDeploy и AltStore
- Подпись в режиме онлайн
- Альтернативные магазины приложений
- TestFlight
- Где взять пакеты приложений?
- Заключение
Почему нельзя просто установить приложение
На современных мобильных платформах можно запускать только код, подписанный цифровой подписью. Но если в Android можно залить пакет приложения, подписанный обычным цифровым сертификатом, то в iOS ситуация сложнее: пакет подписывается в момент установки, а уникальная для каждого устройства цифровая подпись разрешает запускать его лишь на том устройстве, для которого она была создана.
Добавим сюда тот факт, что цифровые подписи в одно лицо выдает (а может и отозвать!) только сама компания Apple, и получим ситуацию, в которой никакой неподписанный (точнее — подписанный «неправильной» цифровой подписью) код на устройстве выполняться не может.
Официальный путь: аккаунт разработчика
Самый простой и единственно честный путь решения этой проблемы — официальный. При желании приложения все‑таки можно устанавливать, минуя App Store, но путь этот тернист, а для обычного пользователя просто недоступен.
Один из таких способов — различные варианты корпоративной и специальной дистрибуции. Так, в случае с корпоративной дистрибуцией клиент (образовательное учреждение или крупная компания — например, транспортная) регистрирует корпоративную учетную запись, получая возможность самостоятельно подписывать пакеты приложений и рассылать их на корпоративные устройства через MDM (Mobile Device Management).
Для подписи используется специальный enterprise-сертификат, срок действия которого, как правило, ограничен одним годом, зато отсутствуют ограничения на число подписываемых им приложений. При первом запуске подписанного таким сертификатом приложения пользователю (если его устройство не было заранее настроено компанией‑владельцем) нужно будет открыть настройки и добавить сертификат в список доверенных. В этот момент устройство свяжется с сервером Apple, который и выдаст (или не выдаст; об этом — ниже) разрешение на это действие.
В чем подвох? Их сразу несколько. Во‑первых, в программе корпоративной дистрибуции могут участвовать организации, но не частные лица. Во‑вторых, участие в программе платное. Наконец, мы не выходим из‑под контроля Apple; компания по‑прежнему сохраняет контроль над тем, разрешить ли запуск приложения на конкретном устройстве. Если Apple покажется, что выданный организации enterprise-сертификат используется с нарушением лицензионного соглашения, этот сертификат будет моментально отозван и подписать с его помощью вновь устанавливаемые приложения не удастся. Подобные сертификаты регулярно «утекают» и используются различными «альтернативными магазинами приложений» для подписи приложений.
Вариация на ту же тему — специальная дистрибуция для участников программы Apple для разработчиков. Ее основное предназначение — тестирование разработчиками программ собственного производства на своих же устройствах; соответственно, для ее использования нужна учетная запись разработчика (Apple Developer Account). В рамках специальной дистрибуции возможно пакетирование: одну и ту же сборку можно подписать сразу для сотни устройств.
У этого способа есть как несомненные преимущества, так и недостатки в сравнении с методом корпоративной дистрибуции.
В достоинства запишем в первую очередь то, что приложение просто устанавливается и запускается; нет необходимости подтверждать сертификат, как нет и необходимости каждый раз для установки приложения связываться с сервером Apple. Отсюда следует возможность установить приложение на iPhone, у которого отсутствует подключение к сети, — в полностью офлайновом режиме.
Второе достоинство метода — это его доступность для обычного пользователя. Всего 99 долларов в год — и ты можешь открыть собственную учетную запись разработчика, которая позволит тебе устанавливать любые приложения на устройства числом до ста штук!
Так, а это точно «достоинство»? 99 долларов в год — это немало всего лишь за право устанавливать собственные приложения на собственный iPhone, да и сто устройств — это за целый год: удаление ранее зарегистрированного устройства из учетной записи не высвобождает один из ста слотов.
Еще один недостаток официального способа — жесткая привязка дистрибуции к среде разработки Xcode, для работы которой, в свою очередь, потребуется компьютер с macOS. Получается сложновато и дороговато, если у тебя случайно нет Mac.
Наконец, последний недостаток метода — открыть учетную запись для разработчика частному лицу непросто из‑за рогаток, установленных Apple. Об использовании одноразовых Apple ID можно забыть: Apple верифицирует данные и может отказать в регистрации без объяснения причин. Наши разработчики говорят, что неплохие шансы получить аккаунт при использовании ненового Apple ID, в котором указан реальный адрес (тот же, к которому привязана платежная карта); регистрироваться лучше с мака, а наличие истории покупок с этой же учетной записи еще повышает шансы. Несмотря на это, гарантии того, что учетную запись в программе для разработчиков зарегистрируют, нет; отказывают обычно без указания причин.
На этом официальные способы заканчиваются и начинаются полуофициальные.
Полуофициальный путь: Cydia Impactor
Полуофициальный способ — использование все той же официальной учетной записи для разработчиков, но для подписи пакета вместо Xcode будем использовать приложение Cydia Impactor. Чем это лучше Xcode? Во‑первых, проще. В Xcode нужно задавать массу полей, создавать профиль, экспортировать сертификат — квест достаточно запутанный даже для настоящих разработчиков. Cydia Impactor позволяет просто взять и залить приложение на iPhone, не требуя ничего, кроме логина и пароля от аккаунта разработчика.
Во‑вторых, в отличие от Xcode и многих альтернативных решений, Cydia Impactor доступен для множества платформ, включая macOS, Windows и Linux.
Недостаток один: требуется учетная запись Apple ID, зарегистрированная в программе Apple для разработчиков. Если такой аккаунт у тебя есть, то процедура достаточно проста, но к ней нужно подготовиться — создать в учетной записи Apple ID так называемый пароль приложения.
Итак, метод установки приложения с использованием аккаунта разработчика и Cydia Impactor:
- Подключаем iPhone к компьютеру, устанавливаем доверенную связь (подтверждаем запрос «Trust this computer?» на iPhone и вводим код блокировки экрана).
- Запускаем Cydia Impactor.
- Бросаем на окно Cydia Impactor файл IPA устанавливаемого приложения.
- Вводим логин и «пароль приложения» от Apple ID (обязательно зарегистрированного в программе Apple для разработчиков).
- Если Apple ID зарегистрирован более чем в одной программе для разработчиков, выбираем нужную.
- Подтверждаем запрос, и Cydia Impactor подпишет IPA и передаст его на устройство.
- Все, приложением можно пользоваться!
Способ корректный. Однако хотелось бы того же самого, но с использованием обычного Apple ID. Как ни странно, это возможно, но с рядом ограничений.
Идем в серую зону: подпись пакета обычным Apple ID
Итак, ты решил подписать пакет приложения обычным Apple ID, не зарегистрированным в программе Apple для разработчиков. До 2019 года эта опция была хоть и не широко известной, но вполне работоспособной с учетом некоторых ограничений: подписанное таким образом приложение работало только семь дней, а установить на одно устройство можно было не более трех подписанных персональными сертификатами приложений. Три года назад в Apple решили прикрыть этот способ установки, но сделали это не до конца. Оставшаяся лазейка, впрочем, работает только на компьютерах с macOS. Соответственно, если у тебя есть Mac, то ты можешь попробовать одно из следующих приложений.
Nullximpactor
Nullximpactor — фактически альтернатива Cydia Impactor, работающая только на macOS, но позволяющая использовать для подписи обычные учетные записи.
Разработчик @nullx рекомендует использовать для подписи одноразовые Apple ID без двухфакторной аутентификации. В противном случае тебе придется создать в своей учетной записи «пароль приложения».
Достоинства: после начальной настройки использовать достаточно просто.
Недостатки: только macOS; требуется начальная настройка AltDeploy (инструкция); остаются все ограничения персональной учетной записи (приложение будет работать не дольше семи дней, а установить можно не более трех приложений).
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»