在 swift 包管理器中添加 Apollo 的代码生成构建脚本时出错

Posted

技术标签:

【中文标题】在 swift 包管理器中添加 Apollo 的代码生成构建脚本时出错【英文标题】:Error when adding a code generation build script of Apollo in swift package manager 【发布时间】:2020-02-01 04:00:30 【问题描述】:

xcode 给我的错误是:

./../SourcePackages/checkouts/apollo-ios/scripts: No such file or directory

我在the official website的官方脚本中看到了这行代码,我有xcode11,我正在使用带有Swift包管理器的Apollo iOS 0.16.0 >

【问题讨论】:

【参考方案1】:

几周前我遇到了同样的问题。事实上,这是 Apollo iOS 网站文档的错误。我意识到在发布配置中构建时,脚本没有在正确的文件夹中找到脚本。但是,在调试配置中构建时,路径可以正常工作。我指的是这一行../../SourcePackages/checkouts/apollo-ios/scripts

所以为了解决这个问题,我们必须像下面这样检测构建配置类型:

    # Go to the build root and go back up to where SPM keeps the Apollo iOS repo checked out.
cd "$BUILD_ROOT"

if [ "$CONFIGURATION" == "Release" ]; then
    cd "../../../../../SourcePackages/checkouts/apollo-ios/scripts"
fi

if [ "$CONFIGURATION" == "Debug" ]; then
    cd "../../SourcePackages/checkouts/apollo-ios/scripts"
fi

APOLLO_SCRIPT_PATH="$(pwd)"

if [ -z "$APOLLO_SCRIPT_PATH" ]; then
    echo "error: Couldn't find the CLI script in your checked out SPM packages; make sure to add the framework to your project."
    exit 1
fi

cd "$SRCROOT/$TARGET_NAME"
"$APOLLO_SCRIPT_PATH"/run-bundled-codegen.sh codegen:generate --target=swift --includes=./**/*.graphql --localSchemaFile="schema.json" API.swift

【讨论】:

以上是关于在 swift 包管理器中添加 Apollo 的代码生成构建脚本时出错的主要内容,如果未能解决你的问题,请参考以下文章

swift包管理器中的“警告:没有要在包中构建的目标”错误

如何在 Xcode 11 中删除 Swift 包依赖项?

如何在 Eclipse 项目资源管理器中的包内创建子包

添加对 Swift 包管理器的支持无法正确构建

使用 graphql 和 apollo-server 在解析器中获取会话

Swift 包管理器找不到模块