我通过 Swift Package Manager 使用
apollo-ios
库,并且可以从 Xcode 菜单安装 apollo-ios-cli
。但是,当在 CI/CD 环境中构建我的应用程序时,该工具无法与此 GUI 菜单交互,因此必须使用命令行安装 apollo-ios-cli。
我可以使用以下命令来做到这一点:
dirs=(~/Library/Developer/Xcode/DerivedData/my-app-name-*)
cd "${dirs[1]}"/SourcePackages/checkouts/apollo-ios
swift package plugin --allow-writing-to-package-directory apollo-cli-install
cd $SOURCE_DIR
"${dirs[1]}"/SourcePackages/checkouts/apollo-ios/apollo-ios-cli generate
但是,这种方法使用通配符来搜索构建目录,这使得它有点脆弱。
有没有更简单的方法?
我找不到解决办法,所以我最终放弃了这种方法。相反,我编写了一个 shell 脚本来下载
apollo-ios-cli
并运行代码生成。看起来像下面这样。
# Use the same version of the Apollo library that you are using.
CLI_URL="https://github.com/apollographql/apollo-ios/releases/download/1.3.3/apollo-ios-cli.tar.gz"
curl -L $CLI_URL -o apollo-ios-cli.tar.gz
tar -xzf apollo-ios-cli.tar.gz
chmod +x apollo-ios-cli
./apollo-ios-cli generate
这不是实际的解决方案,但它可以是一种解决方法。