Тестерам значительно удобнее отдавать вместо папки, один файл — *.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-архив.
4 комментария:
добрый день, не могли бы вы по подробней описать как добавить скрипт в проект, чтобы он сам запускался?? и как сделать чтобы скрипт не выдавал "bad version"??
не судите строго только начал работать с xcode
По добавлению в проект ничего не посоветую.
Про bad version — нужно передавать скрипту аргумент, лайт-версия собирается ("lite") или же полная ("full").
Xcode 4 сам умеет делать .ipa: http://stackoverflow.com/a/5372142/6236
Спасибо за помощь, но по тому мануалу не хочет работать
Отправить комментарий