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

Сегодня я расскажу вам о том, как можно установить неподписанное (или плохо подписанное) приложение на устройство с 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. И даже с текущими!

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

Комментарии (26)


  1. whybenormal
    09.10.2015 15:13
    +3

    Так это же невероятно круто для меня, нище*ба!


    1. beaverBox
      09.10.2015 15:51
      +5

      Нищеброды нынче уже не те. OSX, iOS, понимаешь…
      А новость да, хорошая. Теперь можно поупражняться без оплаты дев-аккаунта.


      1. stychos
        09.10.2015 22:50
        +3

        С последним обновлением XCode эти упражнения доступны всем желающим без ограничений. Автор о том, как извернуться и запихнуть туда чужие ipa. На мой взгляд, переподписать консолью быстрее.


  1. ViPppp
    09.10.2015 15:54
    -10

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


    1. silvansky
      09.10.2015 16:00
      +7

      Автор предлагает простую и понятную рядовому пользователю инструкцию. За идиота никого не держу, про крутость ни слова — наоборот, стыдно иметь такой бардак. Кроме того, сделал скриптик для помощи тем, у кого столько же хлама в системе. Лурочного стиля здесь нет, просто весёлый разговорный стиль. Стандартная возможность это хорошо, но кто о ней знает, кроме разработчиков? А статья как раз рассчитана на рядового пользователя. Основана на данных отсюда (к сожалению, видео там уже недоступно) и комментариях. С моими улучшениями и дополнениями.


    1. ComodoHacker
      10.10.2015 12:56
      -2

      Автор, наверное, много писал для ][akepa, потом пошел на тренинг «Как отучить себя от ксакеп-стиля», но бесполезно.


  1. Goodkat
    09.10.2015 16:09

    Over-the-air тоже можно устанавливать программы или только через iTunes?
    По почте ipa отправить, или в бложик ссылку выложить.


    1. silvansky
      09.10.2015 16:55
      +1

      Увы, Over-the-air не выйдет, проверил. Выдаёт, что не может поставить.
      Но через тунца тоже неплохо. Для тестирования.


  1. Daniyar94
    09.10.2015 16:30
    +2

    На одном хакатоне приехали Apple. Мы делали проект на IOS, и не могли протестировать на наших устройствах, попросили их о помощи. Они добавили наши аккаунты в их team. После этого могу спокойно тестировать все написанное у себя на телефоне) Уже как год прошёл, фича до сих пор работает


    1. stychos
      09.10.2015 22:52
      +2

      С последним обновлением XCode можно спокойно тестировать всем желающим. Release notes, судя по всему, мало кто читает.


  1. ZonD80
    09.10.2015 16:57

    https://appdb.cc


    1. silvansky
      09.10.2015 17:05
      +1

      Увы, как и Tongbu, он с iOS 9 не заводится.


  1. stonedmind
    09.10.2015 18:33
    +1

    Что я делаю не так?

    Screenshot


    1. stonedmind
      09.10.2015 20:13

      UPD: Тем не менее Xcode принял мои креденшелы и все работает.


  1. MAXXL
    09.10.2015 21:00
    +2

    После нажатия кнопки Fix Issue выдает сообщение что нет зарегистрированных устройств в выбранной Team. И как это обойти?


    1. IGHOR
      11.10.2015 19:23
      +1

      Надо сперва в меню Product->Destination выбрать свое устройство.


  1. alexch2000
    09.10.2015 21:14

    Может я что то не то понял, но в новом Xcode программы для тестирования, дебага и так далее можно запускать уже без Developer Program. Как написано в документации

    You can launch your app on a device using a free Apple ID account, but the capabilities available to your app depends on the platform and your Apple Developer Program membership, described in Supported Capabilities.


  1. slutsker
    09.10.2015 21:16

    Когда обновлял Xcode до 7 версии заметил упоминание новой фичи, что для тестирования на устройствах больше не нужно и иметь оплаченный аккаунт. Можно сэкономить недельку другую — потестировать на девайсах, а только потом грузить в App Store) Жалко, что этого не было раньше.

    Сначала Apple предложили Swift, который проще для новичков, потом дали возможность тестировать на девайсах for free. Что дальше?)


    1. stychos
      09.10.2015 22:55

      OS X для x86? В El Captain, кстати, больше не нужен флаг kext-dev-mode для хакинтошников загрузки сторонних кекстов. Хотя это связано со сменой модели безопасности — но мне это уже нравится. И на моём IvyBridge теперь надо меньше костылей для запуска хака.


    1. yul
      10.10.2015 16:25

      Можно сэкономить недельку другую — потестировать на девайсах, а только потом грузить в App Store)
      Есть еще вариант писать что-то для себя и не платить за это денег (какое счастье ;)


  1. egyp7
    10.10.2015 09:02
    +1

    silvansky сразу несколько замечаний:
    1) ПО подписанное сертом работает не только iOS 9 версии, но и на более старых версия. я лично тестировал с 8.4, 8.3, 8.1. Информация не нова, триальные подписи стали доступны еще в начале этого года с появлением беты Xcode 7.
    2) профили не обязательно искать вручную посредством терминала, или того скрипта что вы тут разместили, все делается намного проще:
    https://i.imgur.com/ts1TvrF.png
    3) если вы не в курсе, выданная подпись триальна и максимальный срок работы серта около полугода, обычно дают до 2-3 месяцев на тесты:
    https://i.imgur.com/kn8j64d.png


    1. silvansky
      12.10.2015 16:29

      2) профили не обязательно искать вручную посредством терминала, или того скрипта что вы тут разместили, все делается намного проще:

      Да, так явно сильно удобнее, спасибо за метод! Глупо вышло, я ведь им пользовался когда-то… И забыл. Внесу поправку в статью. =)

      3) если вы не в курсе, выданная подпись триальна и максимальный срок работы серта около полугода, обычно дают до 2-3 месяцев на тесты:

      Конечно триальна, что видно и на моих скриншотах. Но потом можно и новую сделать, дел на пять минут.


  1. NikolayJuly
    10.10.2015 12:59
    +2

    Вы меня конечно простите, но это очень странная статься. Она должны быть переводом вот этой страницы. Однако нет.
    Комментарии по мере важности:
    1) Не надо скриптов и мучительных выборов профайлов. Вы же показали скрин где проверили наличие provisioning'а. Нажмите правой кнопкой.

    Вот как это выглядит


    1. silvansky
      12.10.2015 16:34

      1) Не надо скриптов и мучительных выборов профайлов. Вы же показали скрин где проверили наличие provisioning'а. Нажмите правой кнопкой.

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

      2) Установка через iTunes имеет негативный эффект — надо синхронизовать девайс и iTunes, что невозможно сделать если это по работе.

      Данный метод в рабочей среде вряд ли применим. Так что всё нормально.

      Поэтому есть более верный, на мой взгляд, способ — Xcode -> Window -> Devices. Там выбрать свой девайс и в секции «Installed Apps» нажать "+".

      Спасибо за другой метод, можно и им, действительно.

      Ну и да, раз вы ставите с компьютера, то по идеи все профайлы будут приняты сразу, потому что при подключении вы нажали «Trust». Их надо вручную «Доверять», только если установка идет по воздуху.

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

      стоит подумать, а нету ли там вредоносных компанент

      Так потому я и написал: всё делается на свой страх и риск. В одной из задуманных статей я как раз и хотел продемонстрировать простейшего трояна, которого можно подцепить из ipa, скачанного с торрента. Там простой принцип действия. А если усложнить, то можно и практически полностью скрыть его пребывание.


      1. NikolayJuly
        12.10.2015 16:38

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

        Спасибо, буду иметь ввиду. Пока что мне не приходилось ни разу «трастить» профайл который ставил с мака.


  1. aparamonov
    17.10.2015 19:46

    А у кого-нибудь возникало, что iModSign завершал подписание, но никакого нового файла не создавалось?