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

Осторожно! Много картинок!
Как извеcтно, Apple разрешили разработчикам, не заплатившим $99 в год за возможность выкладывать приложения в AppStore, тестировать свои собственные программы на реальных устройствах с iOS 9. Раньше эта привилегия была лишь у «проплаченных» разработчиков. Ну и у тех, кто делает jailbreak.
Стало быть, теперь каждый человек, имеющий Apple ID и OS X с установленным Xcode, может стать разработчиком приложений и получить Provision Profile для своего приложения! На этом-то и основан описанный в данной статье метод. Если у тебя, читатель, есть всё вышеперечисленное, то смело иди на
developer.apple.com и регистрируйся в качестве разработчика!
Теперь переходим к самому интересному. Запускаем Xcode, открываем настройки и переходим во вкладку «Accounts», где нажимаем на плюсик и вводим данные своего Apple ID. Теперь видим, что добавленный аккаунт является бесплатным участником программы для разработчиков под iOS. Замечательно! Теперь жмём «View Details...».

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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