protobuf 在 iOS 上的基本配置

protobuf 是一种数据交换格式,类比于 jsonxml。但是在等同的数据条件下,使用 protobuf 会大大减少数据包的体积,可以测试一下~~

protobuf 是谷歌出品,目前有 3wstart,(出了那么久感觉这个数目还不是很理想),在除了这个优点以外,它有个缺点,就是如果要修改里面参数的话,还挺麻烦的,需要重新生成一遍 .h.m,可能这样说比较懵,但是往下看就会明白了~

2.先配置 protobuf 的编译环境。

  • 终端上:brew -v 查询下是否安装了 homebrew,没有的话继续:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  • 接着安装以下工具:

brew install automake (可能被墙,会比较慢)

brew install libtool

brew install protobuf

3.接着 clone 这个项目下来

git clone https://github.com/google/protobuf.git

4.检查下 python 版本

python --version

如果是 python3 可能会出错,亲测 python2 没问题

5.cd 到克隆的项目里,

找到 objectivec/DevTools/full_mac_build.sh,拖到终端里回车执行

这一步应该是跟 xcode 进行一些关联,才能正常的导出 oc 文件

6.导出 oc 文件

接着创建一个 .proto 文件,文件格式可以看其他地方~~~

.proto 文件导出 oc文件的方式为:

.proto 当前文件位置里,执行:

protoc --plugin=/usr/local/bin/protoc-gen-objc --objc_out=./ *.proto

这里不需要在处理什么,*.proto 是把所有 .proto 文件导出,如果要针对特定文件,把 * 替换成文件名即可

7.ARC 环境下的注意事项

还有就是 protobuf 的文件都是MRC 下的,所以要在项目里的project — target — Build Phases — Compile Sources,找到对应导出进项目里的 .m 文件右边加上:fno-objc-arc


至于 .proto 里该写什么,还有在什么情况下会比 model 方便等等,后续会继续更新~

你可能感兴趣的:(protobuf 在 iOS 上的基本配置)