Оставлю себе шпаргалку, как сделать на bash скрипт, который соберёт тебе проект в ipa файл.
В папке с исходниками iOS-проекта делаем папку, например, scripts, в нем создаём файл build.sh
mkdir scripts
touch build.sh
chmod +x build.sh
В папку кладём наш provision profile. Скажем, называется он arm1.ru.mobileprovision. После этого внутрь build.sh кладём код:
#!/bin/bash
# идём в директорию скрипта
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
cd "${CURRENT_DIR}"
# вводим то же имя, которое в настройках проекта выбрано в Build Settings в разделе Code Signing Identity
CODE_SIGN_IDENTITY="iPhone Distribution: Your Code Signing Identity"
# имя provision profile, который лежит тут же
PROVISION="$PWD/arm1.ru.mobileprovision"
# имя схемы, которую собираем
SCHEME="appScheme"
WORKSPACE="$PWD/../your-app.xcworkspace"
echo "Building..."
BUILDDIR="$PWD/build"
DSYMDIR="$PWD/dSYM"
if [ ! -d "$BUILDDIR" ]; then
mkdir -p "$BUILDDIR"
fi
if [ ! -d "$DSYMDIR" ]; then
mkdir -p "$DSYMDIR"
fi
# ищем UUID в provision profile
UUID=`grep UUID -A1 -a "${PROVISION}" | grep -io "[-A-Z0-9]\{36\}"`
xcodebuild \
-workspace "${WORKSPACE}" \
-scheme "${SCHEME}" \
-sdk iphoneos \
-configuration Release \
CODE_SIGN_IDENTITY="${CODE_SIGN_IDENTITY}" \
PROVISIONING_PROFILE="${UUID}" \
OBJROOT=$BUILDDIR \
SYMROOT=$BUILDDIR
if [ $? != 0 ]; then
echo "Build failed"
exit 1
fi
echo "Packaging..."
NOW=$(date +"%d_%m_%Y_%H_%M_%S")
xcrun -sdk iphoneos PackageApplication -v "${BUILDDIR}/Release-iphoneos/${SCHEME}.app" -o "$PWD/${SCHEME}_${NOW}.ipa"
if [ $? != 0 ]; then
echo "Packaging failed"
exit 2
fi
mv "${BUILDDIR}/Release-iphoneos/${SCHEME}.app.dSYM" "${DSYMDIR}/${SCHEME}_${NOW}.app.dSYM"
echo "Build succeeded."
Вуаля, в папке со скриптом лежит appScheme.ipa - собранный проект. В папке dSYM лежат dSYM-файлы. В конце скрипта можно дописать что-нибудь. У меня в одном из проектов в конце идёт заливка билда на наш самодельный Testflight и отправка ссылки на установку всем кому нужно. Удобно, два раза кликнул по sh-файлу и всё собралось и отправилось.