Мне было интересно попробовать написать приложение для iOS, чисто в познавательных целях, но 99 USD платить Apple за «любознательность» не очень то и хотелось. Не отчаивайтесь, для таких как мы есть способы и запустить приложение и отладить его на целевом устройстве.
После курения доков и разного рода экспериментов у меня получилось.
Вот ссылки, которые помогли больше всего:
Итак, версии софта, которые я использовал:
- OS X Mavericks 10.9.4
- Xcode 5.1.1
- iOS 7.1.2
Итак, что же потребуется для «любознательности»? Всего то:
- Заджейлить наше iOS устройство
- Подготовить iOS к установке само-подписанных приложений
- Подсоединить iOS к Xcode и настроить девайс для разработки
- Создать свой сертификат
- Настроить Xcode для использования само-подписанного сертификата
- Настроить Xcode для отладки на целевом устройстве
1. Джейлим iOS
Тут в общем всё просто. На данный момент прошивка, поддающаяся взлому 7.1.2. Все остальное можно почерпнуть с сайта appstudio.org в энциклопедии джейлбрейка.
Если нет взломанного устройства — то закрываем данный туториал и платим 99 USD Apple.
2. Подготавливаем наше iOS устройство к установке само-подписанных приложений
Довольно известный факт, что того чтобы ставить само-подписанный приложения (суть взломанные) необходимо установить в Cydia так называемый AppSync. Я ставил AppSync из AppAddict.org репозитория — http://cydia.appaddict.org.
Если же ничего не получилось, то Xcode выдаст примерно следующее:
3. Подключаем и настраиваем наше iOS устройство к Xcode
- Запускаем Xcode
- Цепляем iOS устройство к USB
- Открываем Organizer (Window\Organizer)
- Выбираем подключенное устройство
- Жмем «Use for development»
- Скорее всего Xcode попытается подключиться к серверу Apple и проверить наличие аккаунта разработчика, если так — жмем Cancel
Всё, наше устройство теперь при подключении всегда будет распознаваться как использующееся для разработки.
4. Создаем сертификат разработчика
- Запускаем приложение «Keychain Access»
- Меню «Certification Assistant > Create a Certificate»
- На первой страничке заполним данные и жмем «Continue».
- Name: iOS Developer
- Identify Type: Self Signed Root
- Certification Type: Code Signing
- Отмечаем галочку «Let me override defaults»
- Жмем «Continue» для создания сертификата.
- Изменяем «Validity Period» например на 3650 — это 10 лет срока действия, жмем «Continue».
- Оставляем поле «Email address» пустым и жмем «Continue».
- Оставляем значения по умолчанию в полях «Key Size» и «Algorithm», жмем «Continue».
- Жмем «Continue» на всех следующих страницах, пока не появится окошко с кнопкой «Create».
- Жмем «Create» и «Done» соответственно.
5. Настраиваем Xcode для использования само-подписанного сертификата
- Закрываем Xcode, если он открыт.
- Открываем Terminal
cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform # create copy of Info.plist sudo cp -p Info.plist Info.plist.orig # convert to editable xml format sudo plutil -convert xml1 ./Info.plist # replace each occurrence of XCiPhoneOSCodeSignContext with XCCodeSignContext in Info.plist sudo sed -i .bkup 's/XCiPhoneOSCodeSignContext/XCCodeSignContext/g' ./Info.plist
- Открываем Xcode
- Открываем или создаем проект iOS из шаблонов (например, «Single-View Application»)
- Идем в настройки проекта, в закладку «Build settings». Выбираем в поле «Code Signing Identity» созданный сертификат:
- Около кнопки «Run» выбираем наше подключенное iOS устройство.
- Жмем «Run» и Xcode транслирует исходники в исполняемый файл и загружает его в устройство.
- Далее Xcode показывает нам следующую ошибку, что не удалось запустить приложение в режиме отладки (мы позаботимся об этом на следующем шаге):
- Само приложение можно уже запустить на устройстве в ручном режиме, выбрав приложение на главном экране.
6. Настраиваем Xcode для отладки приложения на целевом устройстве
- Закрыть Xcode, если он открыт.
- Получить утилиту ldid и разместить ее в /usr/local/bin (может быть и другой каталог, но шаги ниже предусматривают этот путь).
- Скомпилировать из исходников. Для этого ввести в терминале:
cd ~/Documents git clone git://git.saurik.com/ldid.git cd ldid git clone git://git.saurik.com/minimal.git ./make.sh sudo mkdir /usr/local/bin sudo cp ldid /usr/local/bin
- Скачать уже скомпилированный файл. Например, здесь в zip-архиве.
- Создаём файл /usb/local/bin/ldid3.py с содержимым (или берем готовый из того же zip-архива):
#!/usr/bin/env python from sys import argv from subprocess import check_call from os.path import basename, dirname, splitext, join from tempfile import NamedTemporaryFile app = argv[-1] ldid_path = join(dirname(__file__), 'ldid') obj_path = join(app, splitext(basename(app))[0]) if '-gta' not in argv: check_call([ldid_path, '-S', obj_path]) else: with NamedTemporaryFile('w+b', 0) as f: f.write("""
get-task-allow - Делаем ldid и ldid3.py запускаемыми:
sudo chmod +x /usr/local/bin/ldid sudo chmod +x /usr/local/bin/ldid3.py
- Обновляем файл конфигурации iPhoneCodeSign.xcspec, для этого в терминале:
cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications # create a backup copy of iPhoneCodeSign.xcspec sudo cp -p iPhoneCodeSign.xcspec iPhoneCodeSign.xcspec.orig # convert to editable xml format sudo plutil -convert xml1 iPhoneCodeSign.xcspec # replace codesign with /usr/local/bin/ldid3.py sudo sed -i .bkup 's/codesign/\/usr\/local\/bin\/ldid3.py/g' iPhoneCodeSign.xcspec
- Открываем Xcode
- Теперь, чтобы включить отладку, нам необходимо добавить ключик "-gta" в командную строку утилиты codesign, предыдущим шагом мы её заменили на наш ldid3.py (обратите внимание на проверку "-gta" в скриптовом файле ldid3.py)
- Собираем приложение и запускаем на целевом iOS устройстве.
Надеюсь данное руководство поможет начинающим программистам iOS просто и незатейливо попробовать свои силы в написании программ для устройств Apple.
Немає коментарів:
Дописати коментар