Интеграция с ботом Xcode 9 отсутствует в пути XCS_PRODUCT

Я работаю над непрерывной интеграцией с Xcode 9. Я успешно настроил сервер и бот.

Интеграция работает нормально.

Требование: мне требовался путь ipa в Post Script для загрузки на мой сервер.

Проблема: я использую переменную XCS_PRODUCT для получения пути ipa.

Вот ENV вывод триггера публикации:

XCS_BOT_NAME=TestXCTest Bot
XCS=1
XCS_WARNING_CHANGE=0
XCS_SOURCE_DIR=/Users/xcodeserver/Library/Caches/XCSBuilder/Bots/b2642ba61e9ffe8554a9d17d1f0126d5/Source
SHELL=/bin/bash
XCS_INTEGRATION_RESULT=succeeded
TMPDIR=/var/folders/wv/33mqmjhn525clw9zzx2c0xq80000gs/T/
Apple_PubSub_Socket_Render=/private/tmp/com.apple.launchd.xHus0eJhWj/Render
XCS_TEST_FAILURE_COUNT=0
XCS_INTEGRATION_ID=51c2cf4d7b95c0c4a4f948f23001620e
XCS_BOT_TINY_ID=B705E6C
USER=xcodeserver
XCS_ARCHIVE=/Users/xcodeserver/Library/Caches/XCSBuilder/Integration-51c2cf4d7b95c0c4a4f948f23001620e/TestXCTest.xcarchive
XCS_TEST_FAILURE_CHANGE=0
XCS_INTEGRATION_TINY_ID=2C6684E
SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.W6OUJYNErV/Listeners
__CF_USER_TEXT_ENCODING=0x1F9:0:0
XCS_PRIMARY_REPO_DIR=/Users/xcodeserver/Library/Caches/XCSBuilder/Bots/b2642ba61e9ffe8554a9d17d1f0126d5/Source/TestXCTest
PATH=/Applications/Xcode_9.3.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin
XCS_BOT_ID=b2642ba61e9ffe8554a9d17d1f0126d5
PWD=/Users/xcodeserver/Library/Caches/XCSBuilder/Bots/b2642ba61e9ffe8554a9d17d1f0126d5/Source
XCS_XCODEBUILD_LOG=/Users/xcodeserver/Library/Caches/XCSBuilder/Integration-51c2cf4d7b95c0c4a4f948f23001620e/xcodebuild.log
XCS_PRODUCT=/Users/xcodeserver/Library/Caches/XCSBuilder/Integration-51c2cf4d7b95c0c4a4f948f23001620e/ExportedProduct/TestXCTest.ipa
XCS_PRIMARY_REPO_BRANCH=master
XPC_FLAGS=0x0
XCS_ERROR_COUNT=0
XCS_ANALYZER_WARNING_COUNT=0
XCS_TESTS_CHANGE=-2
XPC_SERVICE_NAME=0
XCS_ERROR_CHANGE=0
SHLVL=1
HOME=/Users/xcodeserver
XCS_DERIVED_DATA_DIR=/Users/xcodeserver/Library/Caches/XCSBuilder/Bots/b2642ba61e9ffe8554a9d17d1f0126d5/DerivedData
XCS_ANALYZER_WARNING_CHANGE=0
LOGNAME=xcodeserver
XCS_WARNING_COUNT=0
XCS_TESTS_COUNT=0
XCS_OUTPUT_DIR=/Users/xcodeserver/Library/Caches/XCSBuilder/Integration-51c2cf4d7b95c0c4a4f948f23001620e
XCS_INTEGRATION_NUMBER=13
_=/usr/bin/env

Здесь он показывает ipa по этому пути:

/Users/xcodeserver/Library/Caches/XCSBuilder/Integration-51c2cf4d7b95c0c4a4f948f23001620e/ExportedProduct/TestXCTest.ipa

Но в Finder нет такой папки, как Integration-..... введите здесь описание изображения

Итак, вопрос в том, как я могу получить путь ipa?

Я проверил много вопросов по этому поводу, например:

Непрерывная интеграция Xcode Server после того, как триггер $XCS_PRODUCT не установлен

Xcode Bot: как получить путь .ipa в сценарии пост-триггера?

но не получил ответа для Xcode 9.


person Toseef Khilji    schedule 24.05.2018    source источник
comment
Согласно developer.apple.com/library /content/documentation/IDEs/ XCS_PRODUCT имеет значение, если продукт был экспортирован из архива во время интеграции   -  person Alexander Ushakov    schedule 03.06.2018
comment
@AlexanderUshakov: Да, я экспортирую ipa во время интеграции/   -  person Toseef Khilji    schedule 04.06.2018


Ответы (2)


Найдена проблема

Xcode удаляет папку интеграции после завершения.

Решение:

Я добавил ниже пост-скрипт для копирования ipa:

rm -r "/Users/xcodeserver/Desktop/ipa/*"
cp -R "${XCS_OUTPUT_DIR}/ExportedProduct/" "/Users/xcodeserver/Desktop/ipa/"
person Toseef Khilji    schedule 04.06.2018

Еще один совет: если $XCS_PRODUCT пуст, убедитесь, что другие триггеры, предшествующие этому, не сработали. Мой сценарий обновления файла pod нужно было изменить, триггер загрузки нисходящего потока все еще выполнялся, но для него не была установлена ​​​​эта переменная env.

person possen    schedule 22.03.2019