Swift5 protobuf编译和使用

安装环境

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

安装 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可能不通用
截止目前2023年2月23日 最新版本是 1.21.0
$ git tag -l   

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

编译文件

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

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

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

sudo mv .build/release/protoc-gen-swift /usr/local/bin

如果用homebrew安装,应该在这个位置

sudo mv .build/release/protoc-gen-swift  opt/homebrew/bin

查看安装位置

which protoc

pb文件编译成proto

生成第一份pb文件, 注意要转换成ascii格式

syntax = “proto3”;

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

开始编译

$ protoc --swift_out=. my.proto

编译全部

$ protoc --swift_out=. *

修改文件权限

如果要将swift的类关键字改为public,需要做如下修改,然后重新编译 swift-protobuf/Sources/protoc-gen-swift/GeneratorOptions.swift


修改为public.jpg
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容