После обновления с Xcode 12 в любой версии Xcode 13 или новее при запуске команды sudo sh install-appledoc.sh
возникает следующая ошибка:
Build input file cannot be found: '~/<ProjectDir>/appledoc/default_templates.zip'. Did you forget to declare this file as an output of a script phase or custom build rule which produces it? (in target 'appledoc' from project 'appledoc')
Изучив проблему, лучшим решением, которое я смог найти, было убедиться, что в целевой системе нет исключенных архитектур, которых на самом деле нет. Я также могу подтвердить, что указанный файл существует в указанном месте. Так что я в тупике по этому поводу. Есть идеи, как исправить, пожалуйста?
@trojanfoe Я проверил это. Это называется «Песочница пользовательских сценариев» и для него установлено значение «НЕТ», что, как я полагаю, правильно?
Да, это правильно. Затем добавьте несколько сценариев для echo $HOME
, прежде чем запускать этот сценарий (который, как я полагаю, является сценарием этапа сборки?).
@trojanfoe Ошибка появилась в нашем конвейере CI, поэтому я решил запустить ее локально на своем компьютере, и это вызвало ту же самую ошибку. Мои знания сценариев не так уж велики, поэтому, если у вас есть какие-либо советы о том, как повторить $HOME, я буду признателен. Спасибо за вашу помощь.
В любом случае, вероятно, дело не в этом. Я думаю, что вызов sudo
внутри Xcode, вероятно, плохая идея, и, возможно, вам лучше сделать установку чего-либо предварительным требованием перед вызовом xcodebuild
.
Возможно, попробуйте использовать абсолютный путь вместо ~/
... (например, /Users/Username/...
)
@l'L'l Используется абсолютный путь - я просто отредактировал его в целях конфиденциальности.
Это можно исправить, добавив $(PROJECT_DIR)/default_templates.zip
в раздел «Выходные файлы» этапов сборки проекта Appledoc.
Найдите «песочницу» в настройках целевой сборки; есть настройка, относящаяся к песочнице скриптов, но я не помню ее названия.