Эко­сис­тему Apple недаром называ­ют «ого­рожен­ным садом»: ком­пания жес­тко кон­тро­лиру­ет, что поль­зователь может, а чего не может делать со сво­ими устрой­ства­ми. В слу­чае с iOS и iPadOS этот кон­троль дос­тига­ет абсур­дных мас­шта­бов, ког­да закон­ный вла­делец устрой­ства теря­ет воз­можность уста­нав­ливать при­ложе­ния в обход модери­руемо­го и цен­зуриру­емо­го магази­на при­ложе­ний. В этой статье мы рас­смот­рим спо­собы сня­тия это­го огра­ниче­ния, от самых прос­тых, «в один клик», до слож­ных, но надеж­ных.
 

Почему нельзя просто установить приложение

На сов­ремен­ных мобиль­ных плат­формах мож­но запус­кать толь­ко код, под­писан­ный циф­ровой под­писью. Но если в 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:

  1. Под­клю­чаем iPhone к компь­юте­ру, уста­нав­лива­ем доверен­ную связь (под­твержда­ем зап­рос «Trust this computer?» на iPhone и вво­дим код бло­киров­ки экра­на).
  2. За­пус­каем Cydia Impactor.
  3. Бро­саем на окно Cydia Impactor файл IPA уста­нав­лива­емо­го при­ложе­ния.
  4. Вво­дим логин и «пароль при­ложе­ния» от Apple ID (обя­затель­но зарегис­три­рован­ного в прог­рамме Apple для раз­работ­чиков).
  5. Ес­ли Apple ID зарегис­три­рован более чем в одной прог­рамме для раз­работ­чиков, выбира­ем нуж­ную.
  6. Под­твержда­ем зап­рос, и Cydia Impactor под­пишет IPA и передаст его на устрой­ство.
  7. Все, при­ложе­нием мож­но поль­зовать­ся!

Спо­соб кор­рек­тный. Одна­ко хотелось бы того же самого, но с исполь­зовани­ем обыч­ного Apple ID. Как ни стран­но, это воз­можно, но с рядом огра­ниче­ний.

 

Идем в серую зону: подпись пакета обычным Apple ID

Итак, ты решил под­писать пакет при­ложе­ния обыч­ным Apple ID, не зарегис­три­рован­ным в прог­рамме Apple для раз­работ­чиков. До 2019 года эта опция была хоть и не широко извес­тной, но впол­не работос­пособ­ной с уче­том некото­рых огра­ниче­ний: под­писан­ное таким обра­зом при­ложе­ние работа­ло толь­ко семь дней, а уста­новить на одно устрой­ство мож­но было не более трех под­писан­ных пер­сональ­ными сер­тифика­тами при­ложе­ний. Три года назад в Apple решили прик­рыть этот спо­соб уста­нов­ки, но сде­лали это не до кон­ца. Оставша­яся лазей­ка, впро­чем, работа­ет толь­ко на компь­юте­рах с macOS. Соот­ветс­твен­но, если у тебя есть Mac, то ты можешь поп­робовать одно из сле­дующих при­ложе­ний.

 

Nullximpactor

Nullximpactor — фак­тичес­ки аль­тер­натива Cydia Impactor, работа­ющая толь­ко на macOS, но поз­воля­ющая исполь­зовать для под­писи обыч­ные учет­ные записи.

Раз­работ­чик @nullx рекомен­дует исполь­зовать для под­писи одно­разо­вые Apple ID без двух­фактор­ной аутен­тифика­ции. В про­тив­ном слу­чае тебе при­дет­ся соз­дать в сво­ей учет­ной записи «пароль при­ложе­ния».

Дос­тоинс­тва: пос­ле началь­ной нас­трой­ки исполь­зовать дос­таточ­но прос­то.

Не­дос­татки: толь­ко macOS; тре­бует­ся началь­ная нас­трой­ка AltDeploy (инс­трук­ция); оста­ются все огра­ниче­ния пер­сональ­ной учет­ной записи (при­ложе­ние будет работать не доль­ше семи дней, а уста­новить мож­но не более трех при­ложе­ний).

Nullximpactor
Nullximpactor

Продолжение доступно только участникам

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

5 комментариев

  1. Аватар

    257оплиео

    24.05.2021 в 20:09

    Cydia impactor уже как полгода мертв! Вместо него сейчас Sideloadly!, 3uTools и AltStore. Настолько пригорело от неактуальной инфы, что я даже акк создал для комента.

    • Аватар

      uwi

      25.05.2021 в 23:30

      Есть вариант без еженедельной реактивация в АльтСторе?

    • Олег Афонин

      Олег Афонин

      01.06.2021 в 21:38

      Я пользовался Cydia Impactor не так давно (точно меньше полугода назад), использовал для подписи сертификат разработчика. Смысл использования Cydia Impactor в том, чтобы упростить процесс установки приложения на устройства по сравнению с использованием штатного Xcode (ну и из-под Windows тоже). С обычными сертификатами он действительно не работает уже года два тому.

  2. Аватар

    beck

    26.05.2021 в 15:28

    Яблочники должны страдать и платить, платить и страдать. )))

Оставить мнение