Установка неподписанных программ на устройства с iOS 9 без Jailbreak

Дорого дня, уважаемые хабражители!

Сегодня я расскажу вам о том, как можно установить неподписанное (или плохо подписанное) приложение на устройство с iOS 9. Да, без Jailbreak. Да, бесплатно. Нужен лишь компьютер с OS X и Apple ID. Как такое возможно? Читаем под катом.

38b97d250e3d41b796ce7cf5df3277ea.png

Осторожно! Много картинок!
Как извеcтно, Apple разрешили разработчикам, не заплатившим $99 в год за возможность выкладывать приложения в AppStore, тестировать свои собственные программы на реальных устройствах с iOS 9. Раньше эта привилегия была лишь у «проплаченных» разработчиков. Ну и у тех, кто делает jailbreak.

Стало быть, теперь каждый человек, имеющий Apple ID и OS X с установленным Xcode, может стать разработчиком приложений и получить Provision Profile для своего приложения! На этом-то и основан описанный в данной статье метод. Если у тебя, читатель, есть всё вышеперечисленное, то смело иди на developer.apple.com и регистрируйся в качестве разработчика!

Теперь переходим к самому интересному. Запускаем Xcode, открываем настройки и переходим во вкладку «Accounts», где нажимаем на плюсик и вводим данные своего Apple ID. Теперь видим, что добавленный аккаунт является бесплатным участником программы для разработчиков под iOS. Замечательно! Теперь жмём «View Details...».

09c351c4285b4c989eaeddb6b7e2045b.png

Вверху видим, что у нас не создан Signing identity, нажимаем на кнопку Create.

cfbfc81576244f4cbfccc4dc68980b99.png

Теперь переходим к созданию Provision Profile. Через сайт его создать не выйдет: баг, однако! Но у нас ведь есть Xcode, так что не отчаиваемся, а создаём новый проект. Я выбрал игру, но это не имеет значения.

7de7baacd4b9443f8cb5c19cdfe90bcd.png

Bundle ID я задал ru.habr.testapp, это потом пригодится, когда я буду искать этот профайл среди других, а их у меня в системе много. Если у тебя, уважаемый читатель, это первый опыт с Xcode, то будет сильно проще найти нужный профайл.

24549cb736a84296ae8790c90dacd91c.png

Что ж, теперь заходим в настройки проекта и видим, что параметр «Team» не установлен. Установим его в наш свежедобавленный аккаунт разработчика!

d66d08ec42ca4332862b92f8a0152ef1.png

У меня тут много всякого, но у тебя, читатель, должен быть лишь один аккаунт. Его и выбирай!

757462f38a2e46dcb508db2573b22053.png

Теперь видим, что у нас беда с подписью, ведь нет Provision Profile, но Xcode героически предлагает взять исправление проблемы на себя и «исправить положение вещей». Что ж, позволим ему это сделать: жмём «Fix issue».

13beaa7f4f014861b1cc8dcc94355c2a.png

Вуаля! Теперь профайл есть, в чём легко убедиться, зайдя опять в свойство аккаунта:

039f640740fc401cbc5ee49a68354849.png

Теперь идём в терминал: ведь нам нужен сам профайл, а он запрятан в хитром месте. Переходим в папку ~/Library/MobileDevice/Provisioning Profiles/ и видим, что у нас там либо бардак (если в системе много профайлов накопилось, у меня их 50 штук), либо порядок (если ты, читатель, являешься новичком в разработке под iOS).

ad8d3bcf25cd402b909728d9c88e3e49.png

Если же есть сомнения в том, какой именно профайл нам нужен, то можно воспользоваться моим скриптом для поиска «того самого»:

c5d3b78403cc469e8566c7691d90927f.png

Как видите, bundle id я использовал для поиска профайла.

Что ж, теперь у нас есть аккаунт разработчика и провижн профайл. Что нам теперь нужно? Ах да, нужна программка для переподписания ipa-файла нашим профайлом! Можно попробовать поколдовать с консолью, а можно воспользоваться готовым GUI-решением iModSign. Качаем программу и устанавливаем в /Applications/. Теперь можем запустить её и настроить. Я уже настраивал у себя, так что скриншоты не совсем верные для первого запуска, но я думаю, что ты, читатель, не идиот, так что разберёшься.

53ed3ed687f341149517599b96cffe46.png

Первые две кнопки неактивны, ибо я уже их нажимал. По нажатию на первую устанавливаются command line tools, которые Xcode по умолчанию не ставит, по нажатию на вторую появляется окно выбора сертификата разработчика:

73caab2171c34fe8b32dce9357e33c8e.png

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

По нажатию на третью кнопку, мы можем выбрать наш найденный профайл.

5e2d31096a7a4f7f979c9b078cd62511.png

Ну вот и всё, программа настроена и готова к работе! Что бы нам такое установить?.. Ну, к примеру, BarMagnet для управления торрент-качалками. Качаем .ipa файл и перетаскиваем в iModSign.

e5d71b5b0f5342bbba5b5d149f549171.png

Готово для подписания! Жмём на «Start Job».

770e5fa492aa486890219e91419a3856.png

Заходим теперь в папку iModSigned, находящуюся на рабочем столе. Там видим уже подписанный ipa:

c7af7e6ee81d461bb8a509d4d032e992.png

Дабл-клик — и он добавлен в iTunes, и теперь мы можем его установить на девайс. Я тестировал на iPad Air 2 с установленным iOS 9.0.2, ясно дело, никакого Jailbreak для него пока ещё нет.

da0b749720d34bef97b184c5bd0ab178.png

После синхронизации и установки, которая проходит гладко, можно увидеть BarMagnet на устройстве:

9f7d330612f94f51b8c175e09448d272.png

Но он не запустится, можете поверить. А можете и проверить. Но это поправимо, просто наш девайс пока нам же не доверяет. Но мы его научим доверять, зайдя в настройки и подтвердив доверие разработчику:

52c7ffcb6ea24ab8832ffc39299987b9.png

262db84f27a047febce7cc2cf8086d92.png

У меня тут уже доверие включено, но в первый раз это выглядит немного иначе. Но опять же, ты же, читатель, не идиот? Найдёшь там нужную кнопку? Конечно, найдёшь!

Всё, можно запускать программу и радоваться возможности управления всеми своими торрентокачалками прямо с девайса!

75c7af54ebdc4110b6f1a84afe7753b4.png

Надеюсь, что ты, читатель, не будешь злоупотреблять данным методом и устанавливать игры, скачанные с торрентов. И конечно же, ты понимаешь, что всё написанное — чисто для ознакомления, а я не несу никакой ответственности за возможные последствия для девайса или ещё чего. И я не гарантирую работоспособность метода с последующими версиями iOS и Xcode. И даже с текущими!

Так что будьте осторожны. И берегите себя.

© Habrahabr.ru