Objective C
Xcode
16 November 2014

Тестируем 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.

+20
24.6k 120
Comments 16