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文件夹,

ProtocolBuffer for IOS(OC) 运行环境配置_第1张图片

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


ProtocolBuffer for IOS(OC) 运行环境配置_第2张图片


回到Xcode中的TestPB项目 选择objectivec中的ProtocolBuffers_iOS.xcodeproj文件


ProtocolBuffer for IOS(OC) 运行环境配置_第3张图片


ProtocolBuffer for IOS(OC) 运行环境配置_第4张图片

然后引入libProtocolBuffers.a文件


ProtocolBuffer for IOS(OC) 运行环境配置_第5张图片

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

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


ProtocolBuffer for IOS(OC) 运行环境配置_第6张图片

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

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


ProtocolBuffer for IOS(OC) 运行环境配置_第7张图片

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

protoc *.proto --objc_out=./

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


ProtocolBuffer for IOS(OC) 运行环境配置_第8张图片


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


ProtocolBuffer for IOS(OC) 运行环境配置_第9张图片


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

运行没有错的话就OK了。

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


ProtocolBuffer for IOS(OC) 运行环境配置_第10张图片

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

你可能感兴趣的:(ProtocolBuffer for IOS(OC) 运行环境配置)