Swift gRPC和Protobuf集成

最近,我试图将gRPC和SwiftProtobuf添加到我的iOS应用程序中,这样做有很多问题,并且在整个周末以及星期一都在墙上ash头。

因此,首先,如果您不熟悉gRPC和Protobuf,请访问官方网站http://grpc.io/。

如果您尝试在Google上搜索诸如how to create Swift gRPC app东西,或者具有gRPC or Swift gRPC任何东西, gRPC or Swift gRPC您很可能最终会找到gRPC github,这是一个很好的资源,但对于某些人来说确实不清楚第一次尝试将此出色的框架集成到他们的项目中。

我现在要做的基本上是为您提供一些必要的步骤,以便设置您的环境(即拥有一个满意的Xcode)。

  1. 从https://github.com/grpc/grpc-swift克隆swift gRPC存储库
  2. cdgrpc-swift并进行make
  3. 然后在grpc-swift cd third_party内部
  4. third_party文件夹中,您具有swift-protobuf cd
  5. 然后做一个
  6. 所以现在您将 swift-protobuf文件夹中拥有SwiftProtobuf.xcodeproj ,在根目录grpc-swift
  7. 现在是时候将这些人添加到您的项目中了。
  8. 如果您要构建Mac应用程序,这会更简单一些,但是我将介绍iOS应用程序的步骤
  9. 创建一个新的iOS项目
  10. 将这两个.xcodeproj文件拖放到根项目下的项目中。

11.然后打开项目设置,然后转到“常规”选项卡。

12。 在嵌入式绑定器中,单击plus,然后添加BoringSSL,CgRPC,gRPC和Czlib框架。

13.如果您执行build,则将至少遇到一个编译错误,该错误表示无法找到CgRPC.

14.返回项目设置,然后选择“构建设置”选项卡并搜索搜索路径。

15.在您的System Header Search PathsSystem Framework Search Paths添加“ / grpc-swift / Sources / CgRPC / include System Framework Search Paths

16.这将解决CgRPC问题。 但是,如果再次构建,它将失败,并且很可能甚至不会给您错误,但是,如果您幸运的话,您将看到有关zlib-example的一些奇怪信息。 您需要做的就是从Xcode项目naviagator中选择SwiftGRPC.xcodeproj ,然后在目标中找到zlib-example并删除。 该目标的问题在于,该目标是为macOS构建的,因此它无法与iOS项目一起使用,但是,如果将gRPC添加到Mac应用中,则无需执行此步骤。

就是这样 我希望这可以节省数小时的搜索和头部撞击🙂

注意:在撰写本文时,我正在将Xcode 9与Swift 4,SwiftGRPC版本4.0.0和SwiftProtobuf版本0.9.905一起使用。