Sunday, October 11, 2015

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



Установка неподписанных программ на устройства с 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. И даже с текущими!

Так что будьте осторожны. И берегите себя.
  •  
     
  •  
  • 18056
  •  
  •  254
    •  
    •  
    •  
 
Валентин @silvansky 
карма109,5
 
рейтинг17,8
Developer

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

+2
whybenormal9 октября 2015 в 15:13#
Так это же невероятно круто для меня, нище*ба!
+3
beaverBox9 октября 2015 в 15:51#
Нищеброды нынче уже не те. OSX, iOS, понимаешь…
А новость да, хорошая. Теперь можно поупражняться без оплаты дев-аккаунта.
+2
stychos9 октября 2015 в 22:50#
С последним обновлением XCode эти упражнения доступны всем желающим без ограничений. Автор о том, как извернуться и запихнуть туда чужие ipa. На мой взгляд, переподписать консолью быстрее.
–9
ViPppp9 октября 2015 в 15:54#
Автор держит читателя за идиота, использует лурочий стиль, несколько раз напоминает о том, насколько он крут, ведь у него много профайлов в системе установлено. В своей статье на десяток экранов со скриншотами описывает стандартную возможность, встроенную в свежую версию Xcode.
+7
silvansky9 октября 2015 в 16:00#
Автор предлагает простую и понятную рядовому пользователю инструкцию. За идиота никого не держу, про крутость ни слова — наоборот, стыдно иметь такой бардак. Кроме того, сделал скриптик для помощи тем, у кого столько же хлама в системе. Лурочного стиля здесь нет, просто весёлый разговорный стиль. Стандартная возможность это хорошо, но кто о ней знает, кроме разработчиков? А статья как раз рассчитана на рядового пользователя. Основана на данных отсюда (к сожалению, видео там уже недоступно) и комментариях. С моими улучшениями и дополнениями.
0
ComodoHacker10 октября 2015 в 12:56#
Автор, наверное, много писал для ][akepa, потом пошел на тренинг «Как отучить себя от ксакеп-стиля», но бесполезно.
0
Goodkat9 октября 2015 в 16:09#
Over-the-air тоже можно устанавливать программы или только через iTunes?
По почте ipa отправить, или в бложик ссылку выложить.
+1
silvansky9 октября 2015 в 16:55#
Увы, Over-the-air не выйдет, проверил. Выдаёт, что не может поставить.
Но через тунца тоже неплохо. Для тестирования.
+2
Daniyar949 октября 2015 в 16:30#
На одном хакатоне приехали Apple. Мы делали проект на IOS, и не могли протестировать на наших устройствах, попросили их о помощи. Они добавили наши аккаунты в их team. После этого могу спокойно тестировать все написанное у себя на телефоне) Уже как год прошёл, фича до сих пор работает
+1
stychos9 октября 2015 в 22:52#
С последним обновлением XCode можно спокойно тестировать всем желающим. Release notes, судя по всему, мало кто читает.
0
ZonD809 октября 2015 в 16:57#
+1
silvansky9 октября 2015 в 17:05#
Увы, как и Tongbu, он с iOS 9 не заводится.
+1
stonedmind9 октября 2015 в 18:33#
Что я делаю не так?
Screenshot


С меня Apple хочет удержать $99 при регистрации. И похоже, что вернуться назад по шагам регистрации (ввести другие данные) уже нельзя.
0
stonedmind9 октября 2015 в 20:13#
UPD: Тем не менее Xcode принял мои креденшелы и все работает.
+1
MAXXL9 октября 2015 в 21:00#
После нажатия кнопки Fix Issue выдает сообщение что нет зарегистрированных устройств в выбранной Team. И как это обойти?
0
alexch20009 октября 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.

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

Сначала Apple предложили Swift, который проще для новичков, потом дали возможность тестировать на девайсах for free. Что дальше?)
0
stychos9 октября 2015 в 22:55 (комментарий был изменён)#
OS X для x86? В El Captain, кстати, больше не нужен флаг kext-dev-mode для хакинтошников загрузки сторонних кекстов. Хотя это связано со сменой модели безопасности — но мне это уже нравится. И на моём IvyBridge теперь надо меньше костылей для запуска хака.
0
yul10 октября 2015 в 16:25#
Можно сэкономить недельку другую — потестировать на девайсах, а только потом грузить в App Store)
Есть еще вариант писать что-то для себя и не платить за это денег (какое счастье ;)
0
egyp710 октября 2015 в 09:02 (комментарий был изменён)#
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
NikolayJuly10 октября 2015 в 12:59#
Вы меня конечно простите, но это очень странная статься. Она должны быть переводом вот этой страницы. Однако нет. 
Комментарии по мере важности:
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 с устройства, то приложение не запустится. Это было новостью для меня

No comments:

Post a Comment