23 апреля 2011 г.

Куки в iOS (UIWebView)

Для каждого приложения в iOS существует свое хранилище http-cookies. Класс, который отвечает за куки - NSHTTPCookieStorage. Класс имеет простой интерфейс доступа к кукам, например прочитать все куки можно так:
for (NSHTTPCookie *cookie in [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies])
{
NSLog(@"%@", cookie);
}
Так-же есть методы утановки куков (- setCookie:), и чтения для конкретного урла (– cookiesForURL:)

19 апреля 2011 г.

Скрытие статус бара в iOS

Статус бар - верхняя панелька в iOS со значком оператора, часами и зарядом батареи.

Программно можно скрыть статус бар так:
[[UIApplication sharedApplication] setStatusBarHidden:YES];
Можно так-же отредактировав Info.plist приложения, добавив ключ UIStatusBarHidden

8 апреля 2011 г.

4 апреля 2011 г.

xcodebuild сборка приложения в консоли

Давно не писал в блог, времени катастрофически не хватало, впредь обещаю исправится.)

А для начала небольшой пост, о том, как можно сделать билд приложения в консоли.
Утилита xcodebuild из комплекта xCode SDK именно для этого. Хотя наверняка даже наоборот xcode IDE - графическая обертка над xcodebuild. Я

xcodebuild работает с проектом в текущей папке. Рассмотрим несколько основных параметров утилиты.
Запускается так:
$ xcodebuild [-project <projectname>] [-activetarget] [-alltargets] [-target<targetname>]... [-parallelizeTargets] [-activeconfiguration] [-configuration<configurationname>] [-sdk <sdkfullpath>|<sdkname>] [-xcconfig <filepath>][<buildsetting>=<value>]... [<buildaction>]...
из испольуемых мной параметров:

-target - задает имя таргета, который собирать в приложении
-configuration - задает конфигурацию, которую собирать
-sdk - и SDK который использовать при сборке
-list - показывает список таргетов и конфигураций для проектов в текущей папке
-showsdks - показывает доступные SDK

более детально можно узнать из мануалов:
$ man xcodebuild
В качестве "бонуса" приведу пример баш скрипта, который собирает приложение с конфигурацией "Distribution" и создает *.ipa файл. Подразумевается, что конфигурация "Distribution" настроена на подписку приложения сертификатом Ad-Hoc. Скрипт не проверяет ошибки вывода комманд, да и написался он быстрее чем этот пост:
#!/bin/sh
cd ~/work/my_project/trunk/my_project
rm -fr ./build
xcodebuild -target my_project -configuration Distribution -sdk iphoneos4.3
rm -fr ../tmp
mkdir ../tmp
mkdir ../tmp/Payload
cp -r ./build/Distribution-iphoneos/my_project.app ../tmp/Payload/
cp ./Resources/icon\@2x.png ../tmp/iTunesArtwork
cd ../tmp/
zip -r7 my_project.zip ./iTunesArtwork ./Payload
mv ./my_project.zip ../my_project.ipa
cd ..
rm -fr ./tmp

cp ./my_project.ipa ~/Desktop