Пользователь
0,0
рейтинг
16 ноября 2014 в 20:22

Разработка → Тестируем iOS8 приложения с Xcode 6.1 без Apple Developer Program Membership (Jailbreak) (Обновлено для XCode 6.4)

В конце мая 2014 года я писал подробную статью как тестировать приложения на iOS7 и Xcode 5.1.1, но не далее как два месяца назад миру был представлен iPhone 6 и iPhone 6 Plus с новой операционной системой iOS 8 и Apple изменила что-то в коде и старый «твик» более не работает. Знаю, что некоторым интересно попробовать написать приложение для iOS, чисто в познавательных целях, но 99USD платить Apple за «любознательность» не хочется. Не отчаивайтесь, не все так страшно, более того, теперь всё гораздо проще — больше не нужно создавать сертификаты и компилировать ldid для отладки.



Итак, версии софта, которые я использовал:

  • OS X Mavericks 10.9.5;
  • XCode 6.1 (Для XCode 6.4 необходимо сделать пару дополнительных телодвижений);
  • iOS 8.1 iPhone 6 Plus.


Что же потребуется для «любознательности»? Всего то:

  1. Заджейлить наше iOS устройство
  2. Подготовить iOS к установке само-подписанных приложений
  3. Подсоединить iOS к Xcode и настроить девайс для разработки
  4. Настроить Xcode для использования само-подписанного сертификата
  5. Настроить Xcode для отладки на целевом устройстве


Джейлим iOS


Тут в общем всё просто. На данный момент прошивка, поддающаяся взлому 8.1. Все остальное можно почерпнуть с сайта pangu.io.
Если нет взломанного устройства — то закрываем данный туториал и платим 99USD Apple.

Подготавливаем наше iOS устройство к установке само-подписанных приложений


Довольно известный факт, что того чтобы ставить само-подписанные приложения (суть взломанные) необходимо установить в Cydia так называемый AppSync. Очень рекомендую устанавливать AppSync Unified с репозитория Karen aka angelXwind http://cydia.angelxwind.net. В случае если установлен китайский магазин PP, очень настоятельно рекомендую установить твик "Complete PPSync Remover". Как пишет Karen, она в шоке как криворукие китайцы, который писали PP сделали свой PPSync.

Подключаем и настраиваем наше iOS устройство к Xcode


  1. Запускаем Xcode
  2. Цепляем iOS устройство к USB
  3. Открываем окно Devices (Window\Devices)
  4. Видим наше подключенное устройство

Интересно, но раньше, необходимо было нажимать кнопочку "Use for development", сейчас же Xcode при подключении нового устройства ничего не спросил, только залил туда некую инфу.

Настраиваем Xcode для использования само-подписанного сертификата


  1. Закрываем Xcode, если он открыт.
  2. Открываем Terminal
    cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk
    # create copy of SDKSettings.plist
    sudo cp -p SDKSettings.plist SDKSettings.plist.orig
    # convert to editable xml format
    sudo plutil -convert xml1 SDKSettings.plist
    
  3. Открываем SDKSettings.plist текстовым редактором и заменяем значение параметра "AD_HOC_CODE_SIGNING_ALLOWED" на "YES", а параметра "CODE_SIGNING_REQUIRED" на "NO".

  4. Открываем Xcode
  5. Открываем или создаем проект и идем в настройки проекта, в закладку "Build settings". Устанавливаем в поле "Code Signing Identity" значение "Ad Hoc Code Sign". Установить значение нужно и у "Target" и у "Project"

  6. Около кнопки «Run» выбираем наше подключенное iOS устройство.
  7. Жмем «Run» и Xcode транслирует исходники в исполняемый файл и загружает его в устройство.
  8. Далее Xcode показывает нам следующую ошибку:



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


Настраиваем Xcode для отладки приложения на целевом устройстве


  1. При открытом тестируемом проекте создаем новый PropertyList файл — (File\New\File, iOS\Resource — Property List).

  2. Указываем имя создаваемого файла как Entitlements.plist

  3. Открываем только что созданный файл и добавляем туда параметр "Can be debugged" со значением "YES"

  4. Идем в настройки проекта, в закладку "Build settings". В поле "Code Signing Entitlements" устанавливаем значение "Entitlements.plist". Установить значение нужно и у "Target" и у "Project"

  5. Собираем приложение и запускаем на целевом iOS устройстве.


Обновление для XCode 6.4:
  1. В настройках таргета проекта, во вкладке "Info", копируем значение параметра "Bundle Identifier".
  2. В созданном файле Entitlements.plist добавляем новый параметр "application-identifier" и устанавливаем ему ранее скопированное значение.


Надеюсь данное руководство поможет начинающим программистам iOS просто и незатейливо попробовать свои силы в написании программ для устройств Apple.
Maxim Filippov @mefikru
карма
31,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

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

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

  • +3
    Написали бы в заголовке что с «Jailbreak», а то желто сильно.
    • +1
      Ну как бы сие действие подразумевает джейл. Добавил.
      • +1
        Спасибо :)
      • 0
        Только вместо Jailbreak вы добавили Jailbrake. Я уж подумал, что новый термин появился :-)
        • 0
          Точно! Исправил )
  • 0
    Месяц назад искал способ, уже смирился с тем, что надо будет отдать деньги, которые непонятно окупятся ли) Спасибо огромное. + к посту и в карму(виртуально)
    • 0
      Не получилось пишет
      The executable contains an invalid signature
      
      • 0
        Пишет при билде? Убедитесь, что устанавливаемые значения в Build settings стоят и у Target и у Project. Убедитесь в правильности редактирования SDKSettings.plist. Несколько человек отписало в личку благодарности, метод точно работает.
        • 0
          Получилось, AppSync переустановил.
  • +3
    Я вот кстати АБСОЛЮТНО не поминаю, почему пост жестко минусится?! Минусят те, кто заплатил, но не смог ничего сделать и поэтому делает это от злости?! Причины не пойму. Пока Appsync в законе — использование такого «твика» вполне легально, хотя бы до тех пор, пока разработчик не сделает полноценный продукт и не решит разместить его, потом все равно придется покупать профайл.
    Или я где-то написал — пользуйте пиратские приложения?! Может объявил бойкот разработчикам?! Я например честно покупаю необходимые мне приложения, но в то же время используя джейл могу потестить приложение перед покупкой.
    • 0
      Тоже после джейла iOS и рута Android продолжаю приложения покупать, я же не для пиратства права повышал.

      А понять можно не пытаться, меня 2 раза минусили за то, что для просмотра веб-камер выборов не стал своё настоящее имя указывать. Не стоит париться из-за такой мелочи. Избежать минусов можно только воздержанием (от написания постов и комментов).
    • 0
      Минусуют за картинку.
      В ней две неточности.
  • 0
    Спасибо, получилось после плясок с бубном. В моем случае заработало если не конвертировать файл в XML, а перенести его на рабочий стол, отредактировать и перенести обратно в папку.
  • 0
    После установки значений Ad Hoc Code Sign все равно получаю ошибку «No signing identity found». xCode 6.1.1
    • 0
      Все получилось. До этого меня только у Target, а не у Project
  • 0
    Добавил дополнительную информацию для XCode 6.4

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