Tuesday, October 12, 2010

Как заставить работать Sample Сode в iPhone Симуляторе.

Аннотация

Предположим, что Вы начинающий разработчик iPhone и уже знакомы с азами Objective-C и знаете как в Xcode создать проект, новые классы и т.п. Вполне естественно, что на этом этапе своего профессионального развития Вы захотите открыть в Xcode пример кода какой-то простенькой программы (Sample Code) для iPhone, покопаться в ней и, конечно, протестить ее на iPhone Симуляторе. Допустим Вы смогли найти такой Sample code, открыли его в Xcode, просмотрели и нажали на Build and Run, что бы запустить программу в Симуляторе. В этом случае будьте готовы, что с первого раза у Вас это сделать не получится, и скорее всего из-за двух ошибок:


1. "[BEROR]error: There is no SDK with the name or path 'iphoneos4.0'";
2. "Code Sign error: The identity 'iPhone Developer' doesn't match any valid certificate/private key pair in the default keychain".


Именно о том, как устранить эти ошибки и заставить iPhone Симулятор открыть Sample Code и будет идти речь в этой статье.


Преодолеть эту проблему для Вас, как начинающему разработчику iPhone, очень важно, потому что это придаст Вам уверенности в своих способностях и сохранит Ваше воодушевление для дальнейшего освоения Objective-C и Xcode. И что самое главное, Вы сможете открывать без проблем любой Sample Code готовой программы для iPhone и изучать ее устройство и работу на практике.

Где найти Sample code?

Для того, что бы "играться" с рабочим кодом готовой программы для iPhone его надо сперва где-то найти. Для этого есть два способа:

Способ 1

Sample code можно найти на официальном сайте Apple для разработчиков. Зайдите на эту страницу http://developer.apple.com/library/ios/#navigation и нажмите на кноку, на которой написано «Download Sample Code»:



После нажатия кнопки пойдет загрузка Sample code UICatalog. Это код, запускающий программу для iPhone, в которой представлены примеры различной реализации кнопок, переключателей и т.д. Вот как отобразит этот код iPhone Симулятор:



Если вы выберете из раздела бокового меню Resourse Types опцию Sample Code, у Вас будет возможность скачать код других программ.



Способ 2

Sample code можно найти на Вашей персональной страничке в http://developer.apple.com. Для этого залогинтесь и найдите на главной страничке в боковом меню раздела Resources for iOS 4.1 ссылку под названием Sample Code.




Способ 3

Sample code можно так же найти в Xcode. Для этого: 

В верхнем меню Xcode в разделе Help выберете Developer Documentation. В поле поиска введите ключевое слово, например UIButton.



В результате поиск выдаст страничку с описанием класса UIButton (это класс, на основе которого можно создавать объекты кнопок). Кроме всего прочего на это страничке Вы можете найти и скачать Sample Code программ, в которых есть пример реализации этого класса.



Альтернативный способ зайти на эту же страницу в документации: в коде сделать клик на ключевом слове, удерживаю зажатой клавишу Option (Alt), в данном случае этим ключевым словом должно быть UIButton.

Кликаем на один из примеров кода, в нашем случае это будет тот же UICatalog:



После этого открываем в Xcode проект выбранной программки (он же Sample Code) через клик на кнопке с соответствующей надписью:


Как открыть Sample Code в iPhone Симуляторе?

Итак, как было сказано выше, когда Вы попытаетесь запустить Sample Code в iPhone Симуляторе у Вас это может не получиться из-за ошибок (errors), о которых вам сообщит Xcode.

Как устранить ошибку #1"[BEROR]error: There is no SDK with the name or path 'iphoneos4.0'".

Для устранения этой ошибки Вам необходимо изменить настройки Base SDK в Вашем проекте:

1. Зайдите в Info Вашего проекта. Это можно сделать, если выделить папку с названием проекта одним кликом (обыно его иконка отображается синим цветом) и использовать шорткат +I.





2. В открывшемся окне Info Вашего проекта выберите закладку Build.



3. Найдите опцию под названием Base SDK и выберите самую последнюю из доступных в списке версию iOS Device:


4. Если эта ошибка не будет устранена таким образом, тогда попробуйте изменить Base SDK еще и настройке Active Target "Target UICatalog". Для этого в рабочем окне Вашего проекта зайдите в меню Project и выберите Edit Active Target "Target UICatalog":







Если Вы сделали все как написано, первая ошибка должна быть успешно устранена. Проверьте это открыв этот Sample Code в Симуляторе.

Как устранить ошибку #2"Code Sign error: The identity 'iPhone Developer' doesn't match any valid certificate/private key pair in the default keychain".

Для устранения этой ошибки надо указать программе, что Вы собираетесь открыть Sample Code в Симуляторе, а не в настоящем iPhone.

1. Зайдите в то же меню Project и выберите опцию Simulator в настройке "Set Active SDK":


Нажимайте Build and Run и симулятор должен открыть заветный Sample Code без проблем.

Как сделать аудио файл для iPhone в формате .caf

Информацию об этом можно найти в документации Apple здесь, в разделе Processing - How do I convert an audio file to the preferred format for iPhone OS?

/usr/bin/afconvert -f caff -d LEI16 {INPUT} {OUTPUT}

Но... там не хватает практического примера того, как правильно прописать формат источника (input) и его формат на выходе (output). Об этом написано здесь:

afconvert -f caff -d LEI16@44100 -c 1 in.wav out.caf