TGViewer
Unity Tech Дед: Борис Романчиков Unity Tech Дед: Борис Романчиков @unitytechded · 338 subscribers
Post #39 619
🔥 Автоматизируй заливку сборки в Testflight

Делюсь с вами скриптом для автоматической заливки сборки в 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} — секретный токен, который нужен для отправки сообщений

Возможно мог упустить какие-то детали или нюансы, тогда пиши в комментариях, разберем и дополню пост 👇

А если было полезно то ставьте 🔥. Ваш фидбек очень важен для меня и дает мотивацию делать больше полезных постов и понимать, что вам интересно
  • 🔥 11
  • 💩 1
  • 🤝 1
More from @unitytechded
  1. Sep 25, 2026🛠 Как Astra меняет мой подход к разработке В последнее время много экспериментировал с As…
  2. Aug 30, 2026Bioneers Closed Demo — финальные результаты первых 48 часов Подвели итоги первых 48 часов…
  3. Aug 28, 2026Bioneers вышел в закрытое тестирование! Ровно год назад началась разработка игры, а сегодн…
  4. Jun 10, 2026Почему никто не использует Test-Driven Development в геймдеве? Разбирал тут наши старые до…
  5. May 18, 2026Как оформить CV разработчику. Часть 2 Если коммерческого опыта мало, можно указать pet-про…
  6. May 18, 2026Как оформить CV разработчику. Часть 1 Хочу начать с важной ремарки: я не профессиональный…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →