swift5 protobuf集成苹果官方版总结

Swift-Protobuf 的安装使用总结

安装环境

  1. Ruby MAC_Ruby 安装 -
  2. Brew Mac安装brew -

开始安装Protobuf

1. 安装 protobuf , 注意: protobuf必须是最新版本,如果已经安装了, 则需要升级版本
安装版本:$ brew install protobuf
升级版本:$ brew upgrade protobuf
查看版本:$ protoc —version

安装苹果提供的swiftProtobuf

网上教程大部分都是第三方的swiftProtobuf, 苹果出了swift4之后官方出了protobuf转swift的. 区别就是三方那个不支持Any. 苹果给提供的只支持Swift4.0 以后版本
项目地址:
GitHub - apple/swift-protobuf: Plugin and runtime library for using protobuf with Swift

通过终端把项目 clone下来 (默认克隆在终端当前位置)
$ git clone https://github.com/apple/swift-protobuf.git
$ cd swift-protobuf

克隆好后,查看版本列表 (重要)不同版本的pb可能不通用
截止目前2019年11月26日 最新版本是 1.7.0
$ git tag -l   

选择我们需要的版本检出编译使用, 最新的 1.7.0
$ git checkout tags/1.7.0

一切看起来都很简单,准备编译

通过命令行编译: 
$ swift build -c release 

如果报错,看看说明. 苹果官方说明 如果是老Xcode,老 OS X 需要用

$ —static-swift-stdlib with swift build

但是,遇到这个就比较坑了,意思是开发工具包里没有这个命令行编译器???


468D3E47-2254-40BA-B6AB-E4042CCA48F6.png

我去开发者官网down了11.2的最新的命令行开发工具包也就是这个家伙


29249225-124D-489D-B07F-EDDACFD194AC.png

下载安装运行. 结果还是报错. 百度一下没有任何相关的信息.
想到在GitHub Issues 里翻找一下 . 最终找到解决办法
在命令行输入

$ sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
输入密码

OK,搞定

运行后生成一个可执行unix文件

build以后会生成一个可执行文件(路径): swift-protobuf/.build/release/protoc-gen-swift

将protoc-gen-swift 复制到usr/local/bin 下, 如果以前安装过第三方的那个proto-swift 这路径下会有个替身, 那么就把他删掉! 替换为刚刚生成的可执行文件.

生成第一份pb文件

syntax = “proto3”;

message BookInfo {
   int64 id = 1;
   string title = 2;
   string author = 3;
}

4E15EB82-51AC-47FB-B627-A9730C9C9309.png

用文本生成的可能会出现这个问题. 转成ascii格式保存

protoc --swift_out=. Test.proto
 

搞定

5D4D2A0E-2FCA-425C-86DB-E463192F1B90.png

你可能感兴趣的:(swift5 protobuf集成苹果官方版总结)