2016-02-24 23 views
6

Sto utilizzando un bot per archiviare un'app iOS e ho bisogno di ottenere il percorso del prodotto .ipa per poterlo pubblicare nel nostro sistema di distribuzione.Xcode Bot: come ottenere il percorso .ipa su uno script post trigger?

impostazioni bot:

enter image description here

e l'utilizzo di uno script per stampare tutte le variabili env, non di loro contiene un percorso del file IPA. Inoltre, alcune delle variabili sono indicate nella directory che non esiste, vale a dire: XCS_OUTPUT_DIR

Qui l'ENV uscita variabile:

XCS=1 
XCS_ANALYZER_WARNING_CHANGE=-31 
XCS_ANALYZER_WARNING_COUNT=0 
XCS_ARCHIVE=/Library/Developer/XcodeServer/Integrations/Integration-771867708dfac45bba10a1998c118912/MyApp.xcarchive 
XCS_BOT_ID=771867708dfac45bba10a1998c007d43 
XCS_BOT_NAME='MyApp Distribution' 
XCS_BOT_TINY_ID=DBB85BD 
XCS_DERIVED_DATA_DIR=/Library/Developer/XcodeServer/Integrations/Caches/771867708dfac45bba10a1998c007d43/DerivedData 
XCS_ERROR_CHANGE=-1 
XCS_ERROR_COUNT=0 
XCS_INTEGRATION_ID=771867708dfac45bba10a1998c118912 
XCS_INTEGRATION_NUMBER=19 
XCS_INTEGRATION_RESULT=warnings 
XCS_INTEGRATION_TINY_ID=F7D4469 
XCS_OUTPUT_DIR=/Library/Developer/XcodeServer/Integrations/Integration-771867708dfac45bba10a1998c118912 
XCS_SOURCE_DIR=/Library/Developer/XcodeServer/Integrations/Caches/771867708dfac45bba10a1998c007d43/Source 
XCS_TESTS_CHANGE=0 
XCS_TESTS_COUNT=0 
XCS_TEST_FAILURE_CHANGE=0 
XCS_TEST_FAILURE_COUNT=0 
XCS_WARNING_CHANGE=0 
XCS_WARNING_COUNT=26 
XCS_XCODEBUILD_LOG=/Library/Developer/XcodeServer/Integrations/Integration-771867708dfac45bba10a1998c118912/xcodebuild.log 
XPC_FLAGS=0x0 
XPC_SERVICE_NAME=com.apple.xcsbuildd 

In aggiunta a ciò, sono stato in grado di confermare che .ipa file sono in corso di creazione in un'altra cartella (<path to server>/IntegrationAssets/<integration id>/<integration number>/), ma tale percorso non è accessibile da una variabile env.

Qualche idea?

risposta

5

Bene, dopo un sacco di ricerche e test e tutto, a quanto pare c'è qualcosa di sbagliato con i bot nell'ultima versione di Xcode (7.2) + Server (5.0.15) che non carica le variabili di ambiente corrette.

mia soluzione attuale era quella di creare il percorso manualmente sulla base di variabili env esistenti:

ARCHIVE_PATH="${XCS_ARCHIVE}" 
ARCHIVE_NAME="${ARCHIVE_PATH##*/}" 
IPA_NAME="${ARCHIVE_NAME%.*}.ipa" 
IPA_PATH="${XCS_OUTPUT_DIR}/ExportedProduct/Apps/${IPA_NAME}" 

che ho fatto a base di: Continuous integration Xcode Server after trigger $XCS_PRODUCT not set