Фаза запуска сценария после генерации dSYM с Xcode 10 (при сборке) - PullRequest
0 голосов
/ 08 ноября 2018

В разделе Новые функции указано:

  • В новой системе сборки сценарии оболочки не могут полагаться на состояние артефактов сборки, не указанных в списке.на других этапах сборки (например, файл Info.plist или файлы .dSYM.) Добавьте файлы, от которых зависит этап построения сценария, в качестве явных входных зависимостей на этапе создания сценария оболочки.(40852184)

В предыдущем Xcode сценарий был выполнен успешно, но теперь он может выполняться, когда размер файла dSYM равен 0.

Как получить сценарий запускаФаза, которая начнется только через после файла dSYM?
Как я могу создать "явные входные зависимости для фазы сборки сценария оболочки", как они запрашивали?

Ответы [ 3 ]

0 голосов
/ 14 февраля 2019

Для меня предложенное решение не сработало. В моем случае я должен был знать, когда создается файл Info.plist внутри dSYM. Хотя сценарий запускался, когда файл был там, его размер был равен нулю и сценарий не удался.

Что сработало для меня, так это 5s sleep в первой строке моего скрипта:

sleep 5
0 голосов
/ 21 июня 2019

Рой Тай ответил почти правильно. Указание только ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME} - это просто папка dSYMs, а не сам файл dSYM.

Я полностью решил проблему, не используя sleep в моем скрипте. Путь к входному файлу должен быть следующим:

${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}

У меня возникла эта проблема при попытке загрузить dSYM в Sentry на моих этапах сборки. При указании этого полного пути к файлу сценарий ожидает полной генерации dSYM перед выполнением - не требуется спящий вызов!

0 голосов
/ 08 ноября 2018

Аналогичный вопрос можно найти здесь:

Сценарий фазы сборки выполняется до создания необходимых файлов в Xcode 10

Вам необходимо добавить dSYM какЗависимость входного файла на этапе запуска сценария: D

dSYM Расположение по умолчанию: ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}

Вы можете проверить это, используя короткий сценарий и наблюдая за его выводом:

#!/bin/sh

if [ ! -d ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME} ]; then
    echo "Couldn't find dsym file"
    exit 1
fi

stat -x ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
...