Введение

Как-то вечером ко мне пришли знакомые за помощью. Недавно купленный iPhone 4G стал отсылать по несколько раз в сутки SMS на номер +447786205094. О факте последнего можно было узнать лишь по отчетам о доставке, выводимыми благодаря программе iPhoneDelivery. Так как СМС'ки в Великабританию стоят немалых денег, то обладатели этого чудо телефона, просто не знали что с ним делать.

Поиск в Гугл'е показал, что это не единый случай. Телефонный номер, куда отправлялись сообщения, предназанчен для активации функции FaceTime. Однако, в айФоне, который лежал передо мной, данная функция не была активна. Могли быть две причины таких беспорядочных связей: Jailbreak и недоделки iOS 4.1. В последнюю верилось с трудом, но если это действительно так, то в таком случае чувствуешь себя немного обманутым, когда труба стоимостью более тридцати килорублей "имеет" тебя со всех сторон.

Проблема была обозначена и требовала незамедлительного решения. Первое что пришло мне в голову - подправить конфигурационный файл Carrier.plist (лежит он по адресу /System/Library/Carrier Bundles/[OPERATOR]_ru.bundle, где [OPERTOR] – твой оператор, например MegaFon_ru.bundle или MTS_ru.bundle и т.д.).

Возомнив себя продвинутым хакером, я решил убрать из секции string номер телефона.

Фрагмент файла Carrier.plist
<key>MyAccountURLTitle</key>
<string>MTS Homepage</string>
<key>PhoneNumberRegistrationGatewayAddress</key>
<string>+447786205094</string>
<key>Services</key>

Не было предела моей радости, когда после перезагрузки аппарата, трубка ни просто не помнила номер +447786205094, но и вообще забыла о существовании FaceTime.

Вскоре, дорогостоящая игрушка была передана хозяевам в обмен на 100 рублей. Но не прошло и суток с момента "починки" iPhone, как мне поступил грозный звонок заказчика, уверявший что я сломал детище Стива Джобса. Телефон действительно перестал отсылать SMS в Великобританию, но при этом напрочь забыл, что он может отправлять MMC и выходить в интернет через сотовую сеть.

Осмотрев трубку на предмет нововведений, я обнаружил неприятные вещи - из меню "Настройки->Основные" пропал пункт "Сотовая сеть передачи данных", а следовательно возможность настройки интернета. Чтобы вернуть все на прежнее место, восстановил из резервной копии файл Carrier.plist и перезагрузился. Эффекта такая манипуляция не дала, но попытки не останавливались ни на минуту. За два дня экспериментов я взорвал себе мозг. Перечитал форумы - все методы, которые там предлагались, приблизительно похожи.

Оставалось только одно - сделать полный сброс, что стало первой фатальной ошибкой. После 15 минутного ожидания телефон так и не загрузился, на экране висело яблоко и ничего более. Единственное, что можно было сделать - используя iTunes, востановить прошивку. Проблема заключалась в том, что на этот момент Apple выпустила iOS версии 4.2.1 для которого не было, на момент написания статьи, нормального Jailbreak, а файлы SHSH предварительно не были сохранены. Все попытки восстановить iOS 4.1 не увенчались успехом, поэтому пришлось обновиться до новой версии операционной системы.

Итак, что я в итоге получил: полностью рабочий телефон, но без возможности устанавливать взломанные приложения. У этого явления есть ряд плюсов, таких как отсутствие мучительного ожидания Jailbreak и несколько повышенная стабильность работы платформы. При этом самым существенным недостатком, стала необходимость покупать приложения, которыми раньше привык пользоваться бесплатно.

На фоне случившегося происшествия, я потерял доверие у людей, обратившихся ко мне за помощью в настройке iPhone. Данный эпизод заставил меня задуматься над возможностью создавать собственные приложения для платформы iOS, ведь это не просто интересно, но и является возможностью заработать на продажах собственных програм. Увы, не все так просто! В случае неудачи, вложения, сделанные в это дело никогда не окупятся.

Итак, чтобы успешно влиться в коллектив девелоперов необходимо следующее:
1) Огромное колличество свободного времени.
2) Вступить в Apple iPhone Developer Program ($99/год). Если Вы хотите официально публиковать свои приложения в App Store, то без этого никуда. В противном случае, придется делать JailBreak и плясать с бубном для того, чтобы собрать готовое приложение в среде Xсode.
3) Одно из устройств: iPhone, iPad или iPod Touch.
4) Компьютер с Mac OS X версии не ниже 10.5.5.
5) Последняя версия iPhone SDK.
6) Среда для разработки, например, Xcode.

У Вас все это есть - хорошо. Помните, что нужна команда, чтобы продукт был успешным. Вы конечно же можете делать все это один. Но в процессе можете потерять много времени, энергию. Вот основные навыки, которые нужны для хорошего результата:
1) Программирование (Objective C) (подразумеваем, что создается родное для iPhone приложение).
2) Дизайн интерфейса (к дизайнерским я также отношу навыки художника).
3) Рекламирование приложения и маркетинг (а куда без этого).

Если таковых навыков нет, а единственной целью разработки приложений для iOS является заработок, то пока не поздно - наймите профессионалов в этом деле. К слову, я и сам не обладаю ни дизайнерскими, ни маркетинговыми навыками, а Objective C вижу впервые, поэтому процесс изучения может затянуться. Очень расстраивает и то, что мало литературы на русском языке на эту тему, основной рынок составляют переводные книги, которые к моменту публикации успевают морально устареть.

Вот список литературы, который предстоит изучить:
1) Дж. Здиарски, "iPhone разработка приложений с открытым кодом".
2) Дж. Здиарски, "iPhone SDK. Разработка приложений".
3) Махер Али, "Программирование для iPhone".
4) Крейг Хоккенбери, "Разработка приложений под iPhone. Полное руководство".
5) Эрика Садун, "Поваренная книга программиста iPhone (разработка приложений для iPhone)".

Успешных разработок! Удачи и до скорых встреч!