ProtocolBuffer for Objective-C 运行环境配置及使用

时间:2020-11-29 03:59:23

1,我已经安装了brew、pod、protoc,如果您没安装,请按照下面方式安装。

安装很简单,对着README操作一遍即可,我贴出自己在终端的命令行。需要输入的命令行依次为:
1)打开终端,查看mac里面有没有装Homebrew,键入以下命令

brew -v

2)如果没有安装Homebrew就使用下面的命令安装

ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”

3)安装protobuf编译器和所需的工具

brew install automake
brew install libtool
brew install protobuf

4)以上步骤进行完之后,开始Clone this repository,在桌面新建protobuf-objc 文件夹,在终端里进入该文件下下载代码

git clone https://github.com/alexeyxo/protobuf-objc.git

5)Build it !

./scripts/build.sh

运行完成后,最终会生成一个protoc-gen-objc插件,被安装到/usr/local/bin/目录下。如果没有错误的话,以后便可以用这个命令将.proto文件转换为不同语言的源代码文件。

 

2, OK ,以上是准备工作,下面开始集成

0)mkdir一个目录ProtoDir

1)在ProtoDir目录下创建一个iOS应用项目,ProtoProj

2)在ProtoDir目录下创建一个proto文件:

syntax = "proto2";

package csdnblog;


message PBUser {

required string userId = 1; // 用户ID

optional string nick = 2; // 用户昵称

optional string avatar = 3; // 用户头像

optional string password = 7;

optional string email = 8;

optional string mobile = 9; // 手机号码

optional string qqOpenId = 10; // QQ ID

optional string sinaId = 11; // SINA UserID

optional string weixinId = 12; // WeChat UserID

}

ProtocolBuffer for Objective-C 运行环境配置及使用

3)cd到ProtoProj项目目录下执行pod init命令,生成了Podfile,pod search protobuf出一个protobuf版本写进去.例如我的:

pod 'Protobuf', '~> 3.3.0' 

最后pod install

4)cd .. 到ProtoDir,执行命令:

protoc status.proto --objc_out='./'

生成了俩文件.h .m

5)把生成的文件拖入项目中build,报错了:

ARC forbids Objective-C objects in struct

把这个文件的.m 改成.mm 使用c++编译即可。

然后build,success...

 

最后补充:

网上有些人会遇到一些问题汇总:

1,#import)头文件没有提示,虽然自己手写出来也能使用,但总觉得不方便。在*上找到了解决办法:把pods目录添加到用户头文件检索的路径即可。具体实现方法如下:
选择target ——- BuildingSettings ——– User Header Search Paths,双击空白区域点击“+”号,输入“$(PODS_ROOT)”,选择recursive(会在相应的目录递归搜索文件)。

 2,提示找不到GeneratedMessageProtocol。你只需要将其注释掉就行了。