Делюсь с вами скриптом для автоматической заливки сборки в Testfligh через Unity cloud build
Как его настроить:
Часть 1. Создаем shell script
Шаг 1.
В папке с проектом, там, где находится папка Assets, Library создаем папку "Scripts"
Шаг 2.
В папке "Scripts" создаем файл с именем "upload_to_testflight.sh"
Шаг 3.
Добавляем Shell script
#!/bin/bash
#Unload to testflight
echo "Uploading IPA to Appstore Connect..."
#Path is "/BUILD_PATH/<ORG_ID>.<PROJECT_ID>.<BUILD_TARGET_ID>/.build/last/<BUILD_TARGET_ID>/build.ipa"
path="$WORKSPACE/.build/last/$BUILD_TARGET_ID/build.ipa"
if xcrun altool --upload-app -f $path -t ios -u $ITUNES_USERNAME -p $ITUNES_PASSWORD ; then
echo "Upload IPA to Appstore Connect finished with success"
else
echo "Upload IPA to Appstore Connect failed"
fi
Часть 2. Добавляем скрипт в Post-build scripts в testflight сборке
Шаг 1.
Заходим в настройки конфигурации билда => Advanced settings => Script hooks
Шаг 2.
В поле Post-build script добавляем поле "Scripts/upload_to_testflight.sh"
Часть 2. Настраиваем параметры в UnityCloud build
Шаг 1.
Заходим в настройки конфигурации билда => Advanced settings => Environment Variables
Шаг 2.
Добавляем переменную с именем "BUILD_TARGET_ID", в качестве значение указываем название конфигурации, которую вы редактируете
Шаг 3.
Добавляем переменную с именем "ITUNES_USERNAME", в качестве значение указываем вашу почту, с коротой у вас есть доступ к appstoreconnect
Шаг 4.
Добавляем переменную с именем "ITUNES_PASSWORD", в качестве значение указываем вашу пароль приложения, не путать с личным паролем
Создать пароль приложения можно тут https://appleid.apple.com/
для этого
1. Заходим в аккаунт
2. Нажимаем пароли приложения (App specific passwords)
3. Идем по шагам и получаем ваш пароль. Сохраните его, он вам может потребоваться в будущем
4. Именно этот пароль нужно добавить в поле "ITUNES_PASSWORD"
Если вы все сделали правильно, то после сборки запуститься скрипт, который зальет вашу сборку в testflight
FAQ
1. Если у вас есть мак с установленным Xcode, то локально проверить параметры можно с помощью этого кода
xcrun altool --validate-app -f <Путь к IPA сборке> -t ios -u <email для доступа к appstoreconnect> -p <пароль приложения>
2 Можно добавить код, для нотификаци, например в Discord, тогда скрипт будет выглядеть так
#!/bin/bash
DISCORD_WEBHOOK_URL="https://discord.com/api/webhooks/{WEBHOOK_ID}/{WEBHOOK_TOKEN}"
#Unload to testflight
echo "Uploading IPA to Appstore Connect..."
#Path is "/BUILD_PATH/<ORG_ID>.<PROJECT_ID>.<BUILD_TARGET_ID>/.build/last/<BUILD_TARGET_ID>/build.ipa"
path="$WORKSPACE/.build/last/$BUILD_TARGET_ID/build.ipa"
if xcrun altool --upload-app -f $path -t ios -u $ITUNES_USERNAME -p $ITUNES_PASSWORD ; then
echo "Upload IPA to Appstore Connect finished with success"
MESSAGE="✅ Deploy to testflight success: $BUILD_TARGET_ID#$UCB_BUILD_NUMBER!"
else
echo "Upload IPA to Appstore Connect failed"
MESSAGE="❌ Deploy to testflight failed: $BUILD_TARGET_ID#$UCB_BUILD_NUMBER!"
fi
# Отправка уведомления через curl
curl -H "Content-Type: application/json" \
-X POST \
-d "{\"content\": \"$MESSAGE\"}" \
"$DISCORD_WEBHOOK_URL"
{WEBHOOK_ID} — уникальный идентификатор вебхука
{WEBHOOK_TOKEN} — секретный токен, который нужен для отправки сообщений
Возможно мог упустить какие-то детали или нюансы, тогда пиши в комментариях, разберем и дополню пост 👇
А если было полезно то ставьте 🔥. Ваш фидбек очень важен для меня и дает мотивацию делать больше полезных постов и понимать, что вам интересно