1,1
рейтинг
9 октября 2015 в 13:00

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

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

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

Так что будьте осторожны. И берегите себя.
Валентин @silvansky
карма
107,5
рейтинг 1,1
Developer
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое Разработка

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

  • +3
    Так это же невероятно круто для меня, нище*ба!
    • +5
      Нищеброды нынче уже не те. OSX, iOS, понимаешь…
      А новость да, хорошая. Теперь можно поупражняться без оплаты дев-аккаунта.
      • +3
        С последним обновлением XCode эти упражнения доступны всем желающим без ограничений. Автор о том, как извернуться и запихнуть туда чужие ipa. На мой взгляд, переподписать консолью быстрее.
  • –10
    Автор держит читателя за идиота, использует лурочий стиль, несколько раз напоминает о том, насколько он крут, ведь у него много профайлов в системе установлено. В своей статье на десяток экранов со скриншотами описывает стандартную возможность, встроенную в свежую версию Xcode.
    • +7
      Автор предлагает простую и понятную рядовому пользователю инструкцию. За идиота никого не держу, про крутость ни слова — наоборот, стыдно иметь такой бардак. Кроме того, сделал скриптик для помощи тем, у кого столько же хлама в системе. Лурочного стиля здесь нет, просто весёлый разговорный стиль. Стандартная возможность это хорошо, но кто о ней знает, кроме разработчиков? А статья как раз рассчитана на рядового пользователя. Основана на данных отсюда (к сожалению, видео там уже недоступно) и комментариях. С моими улучшениями и дополнениями.
    • –2
      Автор, наверное, много писал для ][akepa, потом пошел на тренинг «Как отучить себя от ксакеп-стиля», но бесполезно.
  • 0
    Over-the-air тоже можно устанавливать программы или только через iTunes?
    По почте ipa отправить, или в бложик ссылку выложить.
    • +1
      Увы, Over-the-air не выйдет, проверил. Выдаёт, что не может поставить.
      Но через тунца тоже неплохо. Для тестирования.
  • +2
    На одном хакатоне приехали Apple. Мы делали проект на IOS, и не могли протестировать на наших устройствах, попросили их о помощи. Они добавили наши аккаунты в их team. После этого могу спокойно тестировать все написанное у себя на телефоне) Уже как год прошёл, фича до сих пор работает
    • +2
      С последним обновлением XCode можно спокойно тестировать всем желающим. Release notes, судя по всему, мало кто читает.
  • 0
    https://appdb.cc
    • +1
      Увы, как и Tongbu, он с iOS 9 не заводится.
  • +1
    Что я делаю не так?
    Screenshot



    С меня Apple хочет удержать $99 при регистрации. И похоже, что вернуться назад по шагам регистрации (ввести другие данные) уже нельзя.
    • 0
      UPD: Тем не менее Xcode принял мои креденшелы и все работает.
  • +2
    После нажатия кнопки Fix Issue выдает сообщение что нет зарегистрированных устройств в выбранной Team. И как это обойти?
    • +1
      Надо сперва в меню Product->Destination выбрать свое устройство.
  • 0
    Может я что то не то понял, но в новом 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.

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

    Сначала Apple предложили Swift, который проще для новичков, потом дали возможность тестировать на девайсах for free. Что дальше?)
    • 0
      OS X для x86? В El Captain, кстати, больше не нужен флаг kext-dev-mode для хакинтошников загрузки сторонних кекстов. Хотя это связано со сменой модели безопасности — но мне это уже нравится. И на моём IvyBridge теперь надо меньше костылей для запуска хака.
    • 0
      Можно сэкономить недельку другую — потестировать на девайсах, а только потом грузить в App Store)
      Есть еще вариант писать что-то для себя и не платить за это денег (какое счастье ;)
  • +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
    • 0
      2) профили не обязательно искать вручную посредством терминала, или того скрипта что вы тут разместили, все делается намного проще:

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

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

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

    Он откроется в Finder и подсветится. И не важно какой там бардак.

    2) Установка через iTunes имеет негативный эффект — надо синхронизовать девайс и iTunes, что невозможно сделать если это по работе. То есть если это не ваше устройство, то при синхронизации Вы человеку всё потрете. Поэтому есть более верный, на мой взгляд, способ — Xcode -> Window -> Devices. Там выбрать свой девайс и в секции «Installed Apps» нажать "+". Аналогично на устройстве можно нажать правой кнопкой мыши и перейти в установленные provisioning. Ну и да, раз вы ставите с компьютера, то по идеи все профайлы будут приняты сразу, потому что при подключении вы нажали «Trust». Их надо вручную «Доверять», только если установка идет по воздуху.

    3) В описанном методе отсутсвует важный момент. Все это работает пока ваше приложение не просит ничего особого от системы — ApplePay, In-App Purchase, например. Вроде упоминали это в коментах. Вот полное сравнение, что можно, а что нельзя без Developer program

    4) Прежде чем брать и переподписывать чужое приложение(я уже даже не говорю что ни в коем случае нельзя для этого использовать сторонне ПО, как показано в вашем примере), стоит подумать, а нету ли там вредоносных компанент. Потому что те, кто не кладет что то в appstore из-за политики apple — просто выложат исходники. А вот брать собранную ipa и так смело ставить себе ее на устройство, да еще и используя стороннее ПО… Это смело! Вы наверно пропустили вот такие новости — 1 и 2. Речь об одном и том же инциденте, просто выберете что приятней почитать. И если тут вреда особо не наносили, то в ipa, которую вы скачали, могут и нанести.

    P.S. А если после установки удалить provisioning с устройства, то приложение не запустится. Это было новостью для меня
    • 0
      1) Не надо скриптов и мучительных выборов профайлов. Вы же показали скрин где проверили наличие provisioning'а. Нажмите правой кнопкой.

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

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

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

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

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

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

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

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

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

        Спасибо, буду иметь ввиду. Пока что мне не приходилось ни разу «трастить» профайл который ставил с мака.
  • 0
    А у кого-нибудь возникало, что iModSign завершал подписание, но никакого нового файла не создавалось?
    • 0
      Поищите новую папку на рабочем столе
      • 0
        Нет, нету. И отрабатывает за пару секунд, что очевидно, тоже неправильно.
        Решил проблему использованием iReSign — вот он работает :)
  • 0
    «Creating a profile requires having a device registered in the Member Center.»
    У меня вот такое появляется, когда я нажимаю «fix issue»
    А на сайте https://developer.apple.com я залогинен, и когда пытаюсь перейти на https://developer.apple.com/account/ios/certificate — идёт редирект на
    https://developer.apple.com/account/#/welcome

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.