Информации на русском языке о разработке под джеилбрэйкнутую iOS не так уж и много, так что надеюсь эта информация кому-нибудь пригодится.
Для написания приложений под джеилбрэйкнутые устройства придумано много фрэймворков и наборов утилит. Например iOSOpenDev или Theos почти все они позволяют не только создавать приложения, ставить их на устройства, но и аплоадить их в репозитории Cydia.
В статье я расскажу как создать Hello World – приложение с помощью Theos (автор @DHowett)
Итак нам нужен iOS SDK, но если вы заинтересовались этой темой, то догадываюсь, что он уже у вас стоит, если нет — скачиваем developer.apple.com/devcenter/ios/index.action
Для начала установим переменную окружения, благодаря которой мы будем знать где theos установлен. В терминале набираем:
далее – скачиваем последнюю версию theos с помощью git:
или svn:
Далее нам потребуется утилита ldid. Она симул��рует процесс подписывания бинарников. Ее можно найти много где, например скачать из dropbox папки товарища @DHowett:
Еще нам потребуется утилита dpkg, ее можно поставить из любых портов для мака, например
Итак, подготовительные работы закончились, приступаем.
Создаем новый проект с помощью утилиты new instance creator, выберем 1 — iphone/application:
Это создаст в текущей папке подпапку helloworld с шаблоном приложения. В ней вы можете найти папку Resources, в которой находится info.plist нашего приложения. Так-же здесь присутствует файл control, с описанием приложения в Cydia репозитории
Исходники нашей программы – файлы
HelloWorldApplication.m
RootViewController.h
RootViewController.mm
main.m
Так-же утилита nic создаст в папке проекта симлинк на установленный theos. И, собственно Makefile, с помощью которого мы будем собирать и аплоадить нашу программу.
Содержимое сгенерированного Makefile
Где APPLICATION_NAME – имя нашего приложения. Без надобности лучше его не менять.
[applicationName]_FILES – список наших исходников. Сюда нужно будет добавлять все *.m и *.mm файлы.
[applicationName]_FRAMEWORKS – сюда добавляем список всех фреймворков, которые использует наша программа, например UIKit Foundation CoreGraphics QuartzCore
Пробуем собрать наш HelloWorld с помощью команды make, должно получится что-то такое:
Для того, чтобы установить наше приложение на устройство и протестировать на нем, нам нужно установить 3 переменные окружения:
Чтобы собрать пакет с нашим приложением набираем в терминале
после чего в папке проекта появится deb-пакет com.code.monkey_0.0.1-1_iphoneos-arm.deb. его уже можно скопировать на устройство с помощью sftp и поставить используя мобильный терминал
но можно сделать проще, набрав в терминале
В течении установки вам предложат ввести пароль SSH.
После чего нужно перезагрузить springboard на устройстве, например нажав “Respring” в SBSettings. Или перезагрузить устройство, после чего увидим нашу программу и сможем ее запустить.
В принципе это все, что нужно для написания приложения. Eсть минусы – отсутствие интерфейс-билдера и симулятора
Для написания приложений под джеилбрэйкнутые устройства придумано много фрэймворков и наборов утилит. Например iOSOpenDev или Theos почти все они позволяют не только создавать приложения, ставить их на устройства, но и аплоадить их в репозитории Cydia.
В статье я расскажу как создать Hello World – приложение с помощью Theos (автор @DHowett)
Итак нам нужен iOS SDK, но если вы заинтересовались этой темой, то догадываюсь, что он уже у вас стоит, если нет — скачиваем developer.apple.com/devcenter/ios/index.action
Для начала установим переменную окружения, благодаря которой мы будем знать где theos установлен. В терминале набираем:
export THEOS=/opt/theos
далее – скачиваем последнюю версию theos с помощью git:
git clone git://github.com/DHowett/theos.git $THEOS
или svn:
svn co http://svn.howett.net/svn/theos/trunk $THEOS
Далее нам потребуется утилита ldid. Она симул��рует процесс подписывания бинарников. Ее можно найти много где, например скачать из dropbox папки товарища @DHowett:
curl -s http://dl.dropbox.com/u/3157793/ldid > $THEOS/bin/ldid chmod +x $THEOS/bin/ldid
Еще нам потребуется утилита dpkg, ее можно поставить из любых портов для мака, например
brew install dpkg
Итак, подготовительные работы закончились, приступаем.
Создаем новый проект с помощью утилиты new instance creator, выберем 1 — iphone/application:
$THEOS/bin/nic.pl NIC 1.0 - New Instance Creator< ------------------------------ [1.] iphone/application [2.] iphone/library [3.] iphone/preference_bundle [4.] iphone/tool [5.] iphone/tweak Choose a Template (required): 1 Project Name (required): HelloWorld Package Name [com.yourcompany.helloworld]: com.code.monkey Author/Maintainer Name [Max]: Max Instantiating iphone/application in helloworld/... Done.
Это создаст в текущей папке подпапку helloworld с шаблоном приложения. В ней вы можете найти папку Resources, в которой находится info.plist нашего приложения. Так-же здесь присутствует файл control, с описанием приложения в Cydia репозитории
Package: com.code.monkey Name: HelloWorld Depends: Version: 0.0.1 Architecture: iphoneos-arm Description: An awesome application! Maintainer: Max Author: Max Section: Utilitie
Исходники нашей программы – файлы
HelloWorldApplication.m
RootViewController.h
RootViewController.mm
main.m
Так-же утилита nic создаст в папке проекта симлинк на установленный theos. И, собственно Makefile, с помощью которого мы будем собирать и аплоадить нашу программу.
Содержимое сгенерированного Makefile
include theos/makefiles/common.mk APPLICATION_NAME = HelloWorld HelloWorld_FILES = main.m HelloWorldApplication.mm RootViewController.mm HelloWorld_FRAMEWORKS = UIKit CoreGraphics include $(THEOS_MAKE_PATH)/application.mk
Где APPLICATION_NAME – имя нашего приложения. Без надобности лучше его не менять.
[applicationName]_FILES – список наших исходников. Сюда нужно будет добавлять все *.m и *.mm файлы.
[applicationName]_FRAMEWORKS – сюда добавляем список всех фреймворков, которые использует наша программа, например UIKit Foundation CoreGraphics QuartzCore
Пробуем собрать наш HelloWorld с помощью команды make, должно получится что-то такое:
make Making all for application HelloWorld... Compiling main.m... Compiling HelloWorldApplication.mm... Compiling RootViewController.mm... Linking application HelloWorld... Stripping HelloWorld... Signing HelloWorld...
Для того, чтобы установить наше приложение на устройство и протестировать на нем, нам нужно установить 3 переменные окружения:
export THEOS=/opt/theos/ # уже должна быть установлена export SDKVERSION=5.1 # версия вашего iOS SDK export THEOS_DEVICE_IP=192.168.73.154 # IP адрес нашего устройства, # должен быть в одной сети с вашим маком
Чтобы собрать пакет с нашим приложением набираем в терминале
make package.
после чего в папке проекта появится deb-пакет com.code.monkey_0.0.1-1_iphoneos-arm.deb. его уже можно скопировать на устройство с помощью sftp и поставить используя мобильный терминал
dpkg -i com.yourcompany.fooproject_0.0.1-1_iphoneos-arm.deb
но можно сделать проще, набрав в терминале
make package install
В течении установки вам предложат ввести пароль SSH.
После чего нужно перезагрузить springboard на устройстве, например нажав “Respring” в SBSettings. Или перезагрузить устройство, после чего увидим нашу программу и сможем ее запустить.
В принципе это все, что нужно для написания приложения. Eсть минусы – отсутствие интерфейс-билдера и симулятора
