ProtocolBuffer for IOS(OC) 运行环境配置

一、前言

ProtocolBuffer(PB)的介绍就不多说了,由于项目需要用PB代替JSON,然而小试牛刀一把,从网上看到很多用了cocoapods作为辅助工具,我试过了好几次莫名其妙的报类库找不到,不得不放弃cocoapods,从而手动下载配置相关运行环境。

二、Mac(macOS Sierra 10.12.2)编译环境配置

由于要把*.proto源文件编译成*.pbobjc.h 和 *.pbobjc.m文件,需要在mac上面配置一个编译器。

1:下载PB对应版本编译器包(当前版本v3.1.0)

从https://github.com/google/protobuf/releases找到

下载后解压,文件夹命名为 protobuf-oc ,使用终端进入protobuf-oc文件夹,然后依次执行以下命令(以下命令可能会报错误,我执行第三条的时候报了几个错,但我没有理会, 它不影响我使用protoc命令就OK了)

./configure

make

make check

sudo make install

执行完后,如果666的话,就可以使用protoc命令了。至此已经完成了在mac上面配置把*.proto源文件编译成*.pbobjc.h 和 *.pbobjc.m文件的环境。

三、配置iOS项目(Xcode8.1)

1:下载ProtocolBuffer相关类库

从https://github.com/google/protobuf.git下载、解压,因为是iOS项目所以找到objectivec文件夹,

2:创建iOS项目名字为TestPB,把刚才的objectivec文件夹整个复制到项目里面



回到Xcode中的TestPB项目 <add files to "TestPB"> 选择objectivec中的ProtocolBuffers_iOS.xcodeproj文件



然后引入libProtocolBuffers.a文件


工程设置搜索静态库的头文件,所有头文件在objectivec里面

targets —>  Build Setting  —>  Search Paths  —> Header Search Paths, 写入:$(PROJECT)/objectivec


3、把把*.proto源文件编译成*.pbobjc.h 和 *.pbobjc.m文件

我在桌面创建了个文件夹为pb里面有个User.proto文件,


用终端进入桌面的pb文件夹,然后再执行以下命令

protoc *.proto --objc_out=./

执行成功后发现桌面上的pb文件夹里面变成了三个文件。



然后把.h和.m文件复制到TestPB项目中



运行,就发现报了个错说不支持ARC ,因为ProtocolBuffer生成的*.pbobjc.m文件不支持ARC所以要把*.pbobjc.m文件设置-fno-objc-arc(自行百度)

运行没有错的话就OK了。

最后测试下所谓的PB是怎样的使用


完结,如需要例子或不会的请留言。。


参考 https://developers.google.com/protocol-buffers/docs/reference/objective-c-generated

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

推荐阅读更多精彩内容