My Opera is closing 3rd of March

iPhone & Linux

советы по программированию и работе с iphone в ОС Linux.

Установка iPhone Toolchain

, ,

Что нам потребуется?
1. iPhone или iPod Touch с установленной прошивкой 3.0 (не выше!)
2. Компьютер с ОС Linux. Я использую OpenSuSE 11.1, хотя подойдет любой из популярных дистрибутивов.
3. Wi-Fi сеть, для связи с iPhone.
4. iPhone 3.0 SDK, который можно скачать тут
5. ipsw-файл с прошивкой 3.0 для iPhone 3G, который можно найти на сайте http://www.felixbruns.de/iPod/firmware/
6. Около 10gb свободного места на жестком диске, для временных файлов.

Jailbreak
Чтобы запускать программы на iPhone/iPod потребуется доступ к файлой системе и возможность подписывать программы исполняемые файлы, поэтому сделайте jailbreak для вашего устройства с прошивкой 3.0.

Для iPhone 2G, iPhone 3G, iPod Touch 1G, iPod Touch 2G рекомендую воспользоваться утилитой redsn0w. Скачать ее можно с сайта Dev-Team.

В подробности этого процесса углубляться не буду, потому что на эту тему уже написано много разнообразных HOW-TO.

Подготовка к установке

1.Создайте где-нибудь каталог, где будут располагаться все файлы, связанные с iPhone-Toolchain. У меня это ~/Projects/iphone/toolchain.
2.Установите следующие переменные окружения. Я сделал небольшой скрипт, который подключаю с помощью команды "source".

export PREFIX=~/Projects/iphone/toolchain/pre
export SYS_DIR=~/Projects/iphone/toolchain/sys
export SRC_DIR=~/Projects/iphone/toolchain/src

export PATH="${PREFIX}/bin":"${PATH}"
export BUILD_DIR=~/Projects/iphone/toolchain/bld

3.Создайте каталог files в корне toolchain-окружения, т.е ~/Projects/iphone/toolchain/files, куда поместите ваш образ iPhone-SDK, далее создайте подкаталог files/firmware, куда поместите ipsw-файл с прошивкой iPhone 3G.
4.Установите следующие зависимости, для Ubuntu/Debian они будут выглядеть так:

apt-get install \
  automake \
  bison \
  cpio \
  flex \
  g++ \
  g++-4.3 \
  g++-4.3-multilib \
  gawk \
  gcc-4.3 \
  git-core \
  gobjc-4.3 \
  gzip \
  libbz2-dev \
  libcurl4-openssl-dev \
  libssl-dev  \
  make \
  mount \
  subversion \
  sudo \
  tar \
  unzip \
  uuid \
  uuid-dev \
  wget \
  xar \
  zlib1g-dev \

Можно поставить утилиту dmg2img, но если ее не окажется в репозиториях, то установочный скрипт скачает ее самостоятельно.
Если у вас 64-битный дистрибутив, то дополнительно нужно установить:

apt-get install g++-4.3-multilib gcc-4.3-multilib gobjc-4.3-multilib 

5.Скачайте скрипт установки iPhone toolchain:
cd ~/Projects/iphone/toolchain
svn checkout http://iphonedevonlinux.googlecode.com/svn/trunk/ ./


Установка
Убедитесь, что подключены переменные окружения и запустите скрипт tollchain.sh:
chmod u+x toolchain.sh
./toolchain.sh all


Компиляция и запуск примера:
Установка закончена. Теперь можно запустить пример программы

1.Компиляция
Войдите в каталог apps/. Там находятся два примера. Пример HelloWorldFirst особого интереса не представляет, поэтому разберем HelloToolchain.
Войдите в каталог примера и выполните команду make, если все пройдет успешно, то появится каталог HelloToolchain.app, который представляет собой пользовательское приложение для iPhone, которое можно запускать со SprinBoard.

$ls
HelloToolchain  HelloToolchain_  icon.png  Info.plist

HelloToolchain - это bash-скрипт, который запускает приложение. Его может и не быть, при запуске app-пакета iPhone пытается запустить файл, имя которого совпадает с названием приложения.
HelloToolchain_ - это исполняемый файл iphone-arm.
icon.png - это иконка программы на SpringBoard.
Info.plist - XML-файл, содержащий информацию о приложении, такую как имя, инфидикатор, язык приложения.
Так же в пакете может находится файл Default.png, который iPhone масштабирует до размера 320x480 и перемещает на передний план, изображение остается до тех пор, пока программа не будет загружена.
Если такого файла нет, то во время загрузки программы экран будет залит черным цветом.

2.Запуск.
Для запуска на вашем iPhone должен быть установлен openssh-сервер и утилита ldid, все это можно установить с помощью программы Cydia.

Скопируйте HelloToolchain.app в каталог /Application на iPhone с помощью scp, cтандартный пароль root на iPhone - alpine:

scp -rp HelloToolchain.app root@$(IP):/Applications

Где IP - это ip вашего iPhone в wi-fi сети.

Далее воспользуйтесь утилитой ldid на iPhone, для того, чтобы подписать исполняемый файл:

cd /Applicaton/HelloToolchain.app
ldid -S HelloToolchain_
killall SpringBoard


Последняя команда перезагрузит SpringBoard и на вашем рабочем столе iPhone должна появится программа HelloToolchain.

Удачи!

Comments

Unregistered user Sunday, October 18, 2009 12:31:41 PM

Аноним writes: iPhone не нужен!

Unregistered user Sunday, October 18, 2009 3:32:49 PM

Anonymous writes: Аноним не нужен! c:kickback after как-бэ намекает.

Unregistered user Monday, October 19, 2009 5:02:02 PM

Аноним writes: ого, выездная сессия! алсо: ипхон не нужен!

monoimono Monday, October 19, 2009 9:48:38 PM

это какая-то очень хилая выездная сессия.

Write a comment

New comments have been disabled for this post.