Есть ли какой-нибудь сценарий автоматической загрузки Testflight при архивировании приложений?

Я обнаружил, что Testflight поддерживает загрузку приложений через вызов API http://testflightapp.com/api/builds.format. Он принимает пакет приложений, dsyms, информацию о приложении и другое.

Итак, мой вопрос следующий: существует ли какой-либо автоматический скрипт для xcode, который будет загружать сборку в Testflight после операции «архивирования»? Поделитесь ссылками, пожалуйста.

РЕШЕНИЕ ЗДЕСЬ (Mac OS X 10.8):

1) Следуйте этому руководству и настройте сценарий после выполнения

2) Удалить Заменить строки "echo" следующим правилом:

#!/bin/bash
#
# (Above line comes out when placing in Xcode scheme)
#

API_TOKEN="<YOUR-TESTFLIGHT-API-TOKEN>"
TEAM_TOKEN="<YOUR-TESTFLIGHT-TEAM-TOKEN>"
SIGNING_IDENTITY="iPhone Developer"
PROVISIONING_PROFILE="${HOME}/Library/MobileDevice/Provisioning Profiles/<YOUR-PROFILE-NAME>.mobileprovision"
LOG="/tmp/testflight.log"
GROWL="/usr/bin/terminal-notifier -title Xcode -message"

DATE=$( /bin/date +"%Y-%m-%d" )
ARCHIVE=$( /bin/ls -t "${HOME}/Library/Developer/Xcode/Archives/${DATE}" | /usr/bin/grep xcarchive | /usr/bin/sed -n 1p )
DSYM="${HOME}/Library/Developer/Xcode/Archives/${DATE}/${ARCHIVE}/dSYMs/${PRODUCT_NAME}.app.dSYM"
APP="${HOME}/Library/Developer/Xcode/Archives/${DATE}/${ARCHIVE}/Products/Applications/${PRODUCT_NAME}.app"

#/usr/bin/open -a /Applications/Utilities/Console.app $LOG

#echo -n "Creating .ipa for ${PRODUCT_NAME}... " > $LOG
${GROWL} "Creating .ipa for ${PRODUCT_NAME}"

/bin/rm "/tmp/${PRODUCT_NAME}.ipa"
/usr/bin/xcrun -sdk iphoneos PackageApplication -v "${APP}" -o "/tmp/${PRODUCT_NAME}.ipa" --sign "${SIGNING_IDENTITY}" --embed "${PROVISIONING_PROFILE}"

#echo "done." >> $LOG
${GROWL} "Created .ipa for ${PRODUCT_NAME}"

#echo -n "Zipping .dSYM for ${PRODUCT_NAME}..." >> $LOG
${GROWL} "Zipping .dSYM for ${PRODUCT_NAME}"

/bin/rm "/tmp/${PRODUCT_NAME}.dSYM.zip"
/usr/bin/zip -r "/tmp/${PRODUCT_NAME}.dSYM.zip" "${DSYM}"

#echo "done." >> $LOG
${GROWL} "Created .dSYM for ${PRODUCT_NAME}"

#echo -n "Uploading to TestFlight... " >> $LOG
${GROWL} "Uploading to TestFlight"

/usr/bin/curl "http://testflightapp.com/api/builds.json" \
-F file=@"/tmp/${PRODUCT_NAME}.ipa" \
-F dsym=@"/tmp/${PRODUCT_NAME}.dSYM.zip" \
-F api_token="${API_TOKEN}" \
-F team_token="${TEAM_TOKEN}" \
-F notes="Build uploaded automatically from Xcode."

#echo "done." >> $LOG
${GROWL} "Uploaded to TestFlight"
/usr/bin/open "https://testflightapp.com/dashboard/builds/"

3) Показать профиль предоставления в Finder: перейдите в Organazier/Devices/Provision profiles, затем щелкните правой кнопкой мыши свой профиль и нажмите «Показать в Finder». Скопируйте имя профиля и вставьте в переменную PROVISIONING_PROFILE вместо <YOUR-PROFILE-NAME>

4) Откройте терминал и установите terminal-notifier:

sudo gem install terminal-notifier

5) Вы готовы :)


person Roman Truba    schedule 19.03.2013    source источник
comment
кажется, не загружается для меня. Хотя я получаю окончательное уведомление «Загружено в Testflight», но ничего не загружено. уведомление «Загружено» появляется слишком быстро для загрузки 15 МБ, что заставляет меня подозревать, что загрузка не удалась без какого-либо предупреждения. какие-нибудь советы? Благодарность   -  person Bach    schedule 10.07.2013
comment
Проверьте наличие профиля предоставления и правильность SIGNING_IDENTITY. Файл отображается в /tmp?   -  person Roman Truba    schedule 10.07.2013
comment
Приведенная выше команда curl больше не поддерживается, вам нужно будет использовать altool для отправки двоичного файла.   -  person alfwatt    schedule 08.10.2018
comment
@alfwatt да, я считаю, что эта тема немного устарела.   -  person Roman Truba    schedule 11.10.2018


Ответы (4)


Я также создал рубиновый гем для этого, если вы хотите интегрировать это в задачи rake:

gem install testflight_upload

источник на мой github здесь

person Miles    schedule 11.10.2013

Вот хороший набор утилит http://nomad-cli.com/.

В итоге я использовал Shenzen для автоматизации сборки и тестового развертывания.

person Bach    schedule 05.08.2013
comment
Шензен для меня сейчас сломан. Похоже, он не находится в активной разработке. - person Alper; 13.08.2013

Вот один хороший учебник .. может быть полезен для вас:

http://developmentseed.org/blog/2011/sep/02/automating-development-uploads-testflight-xcode/

person Guru    schedule 19.03.2013
comment
Почти готово :) вот несколько замечаний: 1) чтобы открыть PROVISIONING_PROFILE, перейдите в Organazier/Devices/Provision profiles, затем щелкните правой кнопкой мыши свой профиль и нажмите «Показать» в Finder; 2) вы можете использовать только iPhone Developer как SIGNING_IDENTITY; 3) вместо GROWL использовать терминал-нотификатор. - person Roman Truba; 19.03.2013
comment
Ссылка мертва - person Pavan K; 18.02.2021
comment
@PavanK извините за это ... Я использую diawi.com для целей TestFlight ... просто перетащите iPad для загрузки. - person Guru; 18.02.2021

Шэньчжэнь больше не поддерживается, вместо этого вы можете использовать pilot. Это инструмент на основе Ruby для загрузки новых сборок и управления вашими бета-тестерами. Под капотом используется iTunes Transporter и космический корабль.

person KrauseFx    schedule 19.01.2016