首页 > 解决方案 > 无法使用 Apollo 框架构建 Xcode iOS 项目以使用 GraphQL

问题描述

我正在开发一个连接到 GraphQL API 的 Xcode 项目。为此,我使用了Apollo 框架

在我的项目中,我安装了包含 Apollo 框架的 cocoapod,然后在 Xcode 中添加了以下运行脚本:

if which apollo-codegen >/dev/null; then

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

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

  cd "${SRCROOT}/${TARGET_NAME}/GraphQL"
  $APOLLO_FRAMEWORK_PATH/check-and-run-apollo-codegen.sh generate \
    $(find . -name '*.graphql') \
    --schema schema.json \
    --output Generated/GraphQLAPI.swift
else
  echo "Skipping Apollo code generation"
fi

这是它在 Xcode 中的外观:

在此处输入图像描述

我在 Xcode 中的目录结构如下所示:

在此处输入图像描述

然后我从终端运行以下命令:

npm install -g apollo-codegen

然后,当我尝试构建我的 Xcode 项目时,不幸地收到以下构建错误:

/Users/JohnDoe/Library/Developer/Xcode/DerivedData/The_Game-dfpiqreyqdjocaawjrfwhrxhdosf/Build/Intermediates.noindex/The Game.build/Debug-iphonesimulator/The Game.build/Script-7851AAFF2110C71000903FAD.sh:第12行:/Users /JohnDoe/Library/Developer/Xcode/DerivedData/The_Game-dfpiqreyqdjocaawjrfwhrxhdosf/Build/Products/Debug-iphonesimulator/Apollo/Apollo.framework/check-and-run-apollo-codegen.sh:没有这样的文件或目录

老实说,我不知道为什么我会得到这个区域。谁能明白为什么?

标签: iosxcodegraphqlapollo

解决方案


构建脚本在最近版本的 apollo ios 中发生了变化,因为 apollo-codegen 现在是新 apollo cli 的一部分。它应该引用check-and-run-apollo-cli.sh

还要确保您使用最新版本的 apollo(当前0.9.2),方法是在您的 podfile 中指定版本。您可能还需要通过运行更新您的 pod 存储库pod repo update


推荐阅读