grpc-swift-2 学习笔记
最近要在iOS平台使用gRPC,查了下文档官方已经不再维护grpc-swift了,目前在推grpc-swift-2,这两天在尝试使用grpc-swift-2,感觉文档写的不是很详细,过程磕磕绊绊,把一些经验记录一下。
通过.proto文件生成文件,文档介绍了三种办法
1. 第一种直接通过protoc指令生成文件,指令用法文档介绍不是很清楚,下面是测试成功的指令:
protoc \ --grpc-swift-2_out=./Generated \ #path of xxx.grpc.swift--swift_out=./Generated \ #path of xxx.pb.swift--plugin=protoc-gen-swift=$(which protoc-gen-swift) \ #plugin path./Sources/Protos/*.proto
这条指令依赖了两个插件,一个是protoc-gen-grpc-swift-2用来生成gRPC stubs的,另外一个protoc-gen-swift是用来生成message信息的。
2. 第二种是直接使用另外一个插件generate-grpc-code-from-protos,指定proto路径和生成文件路径,但是我测试了下总是报错,我理解就是对上面两个插件做了包装,就没有花太多时间继续研究。
3. 第三种是通过WPM插件的方式,是官方推荐的,通过在Package.swift文件中添加GRPCProtobufGenerator插件,编译时自动生成根据.proto生成stubs文件,或者直接执行swift build,生成的文件在.build/plugins/outputs目录,直接执行时会提示找不到protoc指令,只需要在grpc-swift-proto-generator-config.json中添加下面配置指定protoc路径
"protoc": {"executablePath": "xxxxx/opt/homebrew/bin/protoc"}