Ошибка на этапе запуска скрипта: framework — это каталог

Я использую платформу apollo для GraphQL, которую я установил с помощью Carthage, но у меня возникает ошибка при запуске скрипта для создания файла API.swift на этапе сборки.

Ошибка

> [myproject]/Carthage/Build/iOS/Apollo.framework: is a directory
  Command /bin/sh failed with exit code 126

Я добавил скрипт, как в документе Apollo:

Вот сам скрипт:

APOLLO_FRAMEWORK_PATH="$(eval find $FRAMEWORK_SEARCH_PATHS -name "Apollo.framework" -maxdepth 1)"

if [ -z "$APOLLO_FRAMEWORK_PATH" ]; then
echo "error: Couldn't find Apollo.framework in FRAMEWORK_SEARCH_PATHS; make sure to add the framework to your project."
exit 1
fi

cd "${SRCROOT}/${TARGET_NAME}"
$APOLLO_FRAMEWORK_PATH/check-and-run-apollo-codegen.sh generate $(find . -name '*.graphql') --schema schema.json --output API.swift

Конечно, я также заранее сгенерировал schema.json.


person Maxence    schedule 07.12.2017    source источник
comment
Ну, на данный момент нет кода для показа, за исключением, может быть, самого скрипта, который я только что добавил. Я выполнил все шаги в документе, я просто хочу, чтобы скрипт работал правильно и создал файл API.swift.   -  person Maxence    schedule 07.12.2017


Ответы (1)


Может быть, немного поздно отвечать, но, по крайней мере, на моей машине APOLLO_FRAMEWORK_PATH оценивается для двух фреймворков (iOS и watchOS), и поэтому запуск связанного скрипта с $APOLLO_FRAMEWORK_PATH/check-and-run-apollo-codegen.sh завершается ошибкой.

Предполагая, что сценарии не отличаются (начиная с версии [email protected] они не различаются), вы можете добавить -print -quit в конец команды find, чтобы она возвращала только один результат.

Полный скрипт будет:

APOLLO_FRAMEWORK_PATH="$(eval find $FRAMEWORK_SEARCH_PATHS -name "Apollo.framework" -maxdepth 1 -print -quit)"

if [ -z "$APOLLO_FRAMEWORK_PATH" ]; then
echo "error: Couldn't find Apollo.framework in FRAMEWORK_SEARCH_PATHS; make sure to add the framework to your project."
exit 1
fi

cd "${SRCROOT}/${TARGET_NAME}"
$APOLLO_FRAMEWORK_PATH/check-and-run-apollo-codegen.sh generate $(find . -name '*.graphql') --schema schema.json --output API.swift
person mkko    schedule 26.06.2018
comment
Это решило проблему для меня. Я могу сообщить, что это также работает для сценария Apollo CLI, который Apollo теперь использует вместо codegen, приведенного выше. - person Drew C; 06.02.2019