Xcode: создание автоматического комментария к архиву

Контекст: Мой проект содержит два серверных сервера, один для разработки и один для производства. Каждый раз, когда я делаю сборку для QA, мне нужно будет установить сервер, на котором установлена ​​сборка на TestFlight (это нормально). Но в моем списке архивов на Xcode я легко могу получить более 100 архивов, где мне нужно вручную поставить его, если он был prod или dev-сервером.

Основная проблема здесь заключается в том, когда QA необходимо откат к определенной версии на определенном сервере.

Вопрос: Существует ли автоматический способ оставить комментарий к архиву при создании? Я хотел бы добавить что-то вроде:

[Номер сборки] – [Dev | Live] Сервер

благодаря

    Мы используем следующую команду для добавления комментария к архиву непосредственно после сборки (xcodebuild):

    /usr/libexec/PlistBuddy -c "Add :Comment string \"your comment goes here\"" "$ARCHIVE_DIR/Info.plist" 

    с $ ARCHIVE_DIR, являющимся каталогом в соответствующем архиве, например:

     ARCHIVE_DIR=`ls -dt1 $HOME/Library/Developer/Xcode/Archives/*/*.xcarchive |head -n1` 

    Я попробовал идею Нормана, но не смог заставить синтаксис работать. В конце я использовал:

     ARCHIVE_DIR=$(ls -dt1 $HOME/Library/Developer/Xcode/Archives/*/*.xcarchive/Info.plist |head -n1) /usr/libexec/PlistBuddy -c "Add :Comment string \"your comment goes here\"" "$ARCHIVE_DIR" 

    Привет, основанный на других ответах, я сделал что-то вроде этого:

    1. нажмите на значок проекта, выберите «Редактировать схему …»
    2. выберите «Архив / Пост-действия»
    3. нажмите «+» «Действие сценария нового запуска»
    4. Изменить «Предоставить параметры сборки от» до желаемого проекта
    5. Выберите оболочку
    6. вставьте этот скрипт (при условии, что используется git):
     cd "$PROJECT_FILE_PATH" BRANCH=$(basename `git describe --all`) COMMIT_HASH=$(git rev-parse HEAD | awk '{print substr($0,0,7)}') ARCHIVE_PATH=$(dirname "$ARCHIVE_PRODUCTS_PATH") ARCHIVE_NAME=${ARCHIVE_PATH}/Info.plist DEST_DIR="<desired destination path>" /usr/libexec/PlistBuddy -c "Add :Comment string \"${BRANCH}_${COMMIT_HASH}\"" "$ARCHIVE_NAME" if [ -d "$DEST_DIR" ]; then PACKAGE_NAME=$DEST_DIR/${BRANCH}_${COMMIT_HASH}_${PRODUCT_NAME} xcodebuild -sdk $SDKROOT -archivePath "$ARCHIVE_PATH" -exportPath "$PACKAGE_NAME" -exportFormat ipa -exportArchive -exportProvisioningProfile "your provisioning profile name" fi 

    Преимущество другого решения заключается в том, что архив локализован на основе переменной XCode, не основанной на поиске (ненужные служебные данные).

    Нашел этот старый пост после googling, и его очень раздражало проблема обновления органайзера, и у него была очень уродливая идея. Фактически, организатор автоматически обновляется при обновлении FS.

    поэтому я просто попытался переместить архив после обновления его plist, а затем переместил его обратно в исходное местоположение. Что-то вроде этого :

     ARCHIVE_PATH=$(dirname "$ARCHIVE_PRODUCTS_PATH") ARCHIVE_PLIST=${ARCHIVE_PATH}/Info.plist /usr/libexec/PlistBuddy -c "Add :Comment string \"your comment goes here\"" "$ARCHIVE_PLIST" mv "$ARCHIVE_PATH" "$ARCHIVE_PATH"_TMP sleep 1 mv "$ARCHIVE_PATH"_TMP "$ARCHIVE_PATH" 

    Сон необходим, чтобы обновить содержимое папки OS X. Вы увидите, что архив исчезнет, ​​а затем снова появится.

    Надеюсь, поможет.

    Давайте будем гением компьютера.