Показаны сообщения с ярлыком iphone. Показать все сообщения
Показаны сообщения с ярлыком iphone. Показать все сообщения

14 окт. 2009 г.

4 сент. 2009 г.

Внутреннее устройство графического пайплайна в айфоне

Доклад с Assembly 2009 про низкоуровневые детали устройства графического пайплайна в айфонах до 3GS от разработчиков Unity. (Слайды в PDF здесь.)

14 авг. 2009 г.

Automated Unit-Testing on iPhone

Несколько полезных ссылок:

Создание *.ipa для ad-hoc дистрибуции

При сборке проекта в Xcode получается папка *.app — бандл приложения.

Тестерам значительно удобнее отдавать вместо папки, один файл — *.ipa. В отличие от *.app, он устанавливаетсч в iTunes автоматически по двойному щелчку.

Приятная мелочь — в *.ipa-файле задать картинку для отображения приложения в iTunes — так, чтобы всё было совсем уж по-взрослому.

Две вещи, на которые нужно обратить внимание:

1. Тестерам вместе с *.ipa нужно отдавать *.mobileprovision, который был сгенерирован при привязке UDID-а их iPhone к аккаунту разработчика.
2. В каждом новом билде обязательно нужно увеличивать номер версии — иначе iTunes не обновит установленное приложение.

Вот скрипт для генерации *.ipa. Удобно добавить его в проект Xcode последним шагом сборки. Скрипт заточен под мои конкретные нужды, но всё должно быть понятно без комментариев.

#!/bin/bash

VER=$1

if [ "${VER}" != "lite" -a "${VER}" != "full" ]; then
echo "bad version ${VER}, exepected 'lite' or 'full'"
exit 1
fi

RES=./res
COMMON=${RES}/common
CONCRETE=${RES}/${VER}

APP=${BUILT_PRODUCTS_DIR}/${TARGET_NAME}.app
PAYLOAD=${TEMP_FILES_DIR}/Payload
IPA=${BUILT_PRODUCTS_DIR}/${TARGET_NAME}.ipa

if [ ! -d "${APP}" ]; then
echo "output .app not found: '${APP}'"
exit 1
fi

if [ "${PLATFORM_NAME}" = "iphonesimulator" ]; then
echo "Simulator detected. Skipping .ipa generation"
exit 0
fi

rm -rf ${PAYLOAD}
mkdir -p ${PAYLOAD}/Payload
cp -Rp ${APP} ${PAYLOAD}/Payload
cp ${CONCRETE}/standard/iTunesArtwork.png ${PAYLOAD}/iTunesArtwork
ditto -c -k ${PAYLOAD} ${IPA}
rm -rf ${PAYLOAD}


Пока раскапывал этот вопрос, открыл для себя команду ditto. Если сборка идёт не под OS X, ditto можно заменить на zip — *.ipa-файл — это просто zip-архив.

Причины отказа приёмки в AppStore

Несколько полезных ссылок:



Также в тему:

Xcode vs. iPhone OS 3.0.1

Текущий iPhone SDK несовместим с самой свежей прошивкой iPhone — 3.0.1.

Для того, чтобы восстановить совместимость, нужно последовать указаниям iPhone OS 3.0.1 Advisory от Apple, и выполнить команду

$ ln -s /Developer/Platforms/iPhoneOS.platform/DeviceSupport/3.0\ \(7A341\) \
/Developer/Platforms/iPhoneOS.platform/DeviceSupport/3.0.1

12 авг. 2009 г.

Unknown error

Потратил день на отлов

Failed to launch simulated application: Unknown error.

при запуске айфонного приложения в симуляторе.

Путём пошагового воссоздания проекта выяснил, что симулятор сходит с ума, если в бандле есть пользовательская папка "resources".

Нехорошо.

В очередной раз подтвердил действенность правила: если пытаешься что-то воспроизвести путём шаманских манипуляций, записывай каждый шаг отдельным коммитом в Git!