iOS中protobuf 的安装和使用

原创 2015年10月14日 18:25:10

1:什么是protobuf ?
protobuf是google推出的一种语言无关、平台无关、扩展性好的用于通信协议、数据存储的结构化数据串行化方法。支持C++、Python、Java三种语言。
在github上有protobuf-objc,其中的readme可以教会我们安装proto到咱们电脑里面。然后利用protoc,也就是protobuf的编译器可以编译.proto文件,生成一些.h和.m文件。
在移动App中,使用protobuffer可以做储存,可以做网络传输,可以干很多和数据打交道的事情。
最简单的,加入做一个APP,你要记录用户数据对吧?用户账号是?密码是?性别是?有没有女朋友?
为了记录这些数据到服务器,就需要合适的数据结构。有人说,为什么一定要用protobuf?为什么不用其他的如json?如xml?关于这个问题,请到stackoverflow,csdn等格调甚高的地方去寻找,去发现。。我要用的原因,就是我需要用,不用就会落后,就会挨打。。
2.安装protobuf这个工程?

Check if you have Homebrew
brew -v
If you don't already have Homebrew, then install it
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Install the main Protobuf compiler and required tools
brew install automake
brew install libtool
brew install protobuf
(optional) Create a symlink to your Protobuf compiler.
ln -s /usr/local/Cellar/protobuf/2.6.1/bin/protoc /usr/local/bin
Clone this repository.
git clone https://github.com/alexeyxo/protobuf-objc.git
Build it!
./build.sh

首先,打开终端!

brew -v  

查看你的mac里面有没有装brew。brew是mac os里面,类似于ubuntu的apt-get的功能,都可以直接在终端输入命令然后安装程序。-v自然就是版本version的意思

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

这一句半懂不懂,,大概就是利用curl工具访问那个url,然后在ruby环境下载安装brew

    brew install automake  
    brew install libtool  
    brew install protobuf  

就是利用brew下载安装了。protobuf就是我们想要的,另外两个是依赖库

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

从github下载protobuf-objc这个工程,build脚本里面做的是编译‘
注意:编译工程过程中,有可能会出现错误。别慌!看编译错误的提示。一般错误只是因为环境变量和路径没有配置好,少了一些东西,例如少了编译protobuf这个工程的依赖库,按照提示添加路径即可
有了工程以后,我们就可以开始测试一下怎么用protobuf了
3.使用
打开Xcode!新建一个工程!
然后有两个方法把protobuf添加到你的工程里面,一个是直接添加,一个是利用cocoapod
强烈推荐后者,因为cocoapods能够很方便的管理第三方类库,以后人家的工程升级了,你只需要一行pod update就ok
如果不会cocoapods的可以看我的另一篇博客文章,里面有详细的教程

在Podfile添加下面这个句子

platform :ios , 6.0  
pod "ProtocolBuffers", "~> 1.9.7" 

在保存之后,到终端,cd到工程里面,

pod install  

等一会,cocoapod就会帮我们添加好,以后我们就应该打开
project的workspace,因为添加了pod作为子工程。

在你的工程里面,新建一个文件夹,命名假如叫Protobuf
在这个文件夹里面新建一个proto文件。例如要在本地储存用户信息,那么就新建一个person.proto
里面内容可以如下

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  

面这个例子包括了几个要素。
一个是包名。包的概念在object c里面没有,java里面有,c++里面namespace也是差不多意思。
顺便提一下,oc里面一般在库名前面添加两个字母,起的作用差不多就是包的作用,作为类的上一层组织结构。
例如官方的NS,例如AFNetworking这种第三方类库的AF。

回到正题。编写pb文件,第二个要素是message
一个message就是一个整体,里面有哪些必要的内容,哪些可选的内容。详细的proto语法随便一找一大把,就不啰嗦了。

写好了proto,接下来就是编译这个proto文件,protobuf-objc这个类库会编译声称一些源码,是读写proto数据的接口API。
编译命令如下:
先打开工程,建议单独新建一个文件夹作为输出路径,例如工程下新建文件夹Gen,用来放generate出来的.pb.h文件&&.pb.m文件
如图:
这里写图片描述
打开终端
cd到工程路径下
1.在gen文件下生成

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

或者在protobuf文件下生成

protoc --plugin=/usr/local/bin/protoc-gen-objc  --objc_out=./ person.proto
//这种则是生成在Protobuf目录下,也就是和person.proto一个目录下
版权声明:本文为博主原创文章,未经博主允许不得转载。

MAC/IOS中使用protocolBuf

使用的是  https://github.com/mingchen/protobuf-ios  首先是下载下来 它其中使用到得命令行  $ cd compiler $ ./autogen.sh...
  • yohunl
  • yohunl
  • 2014年12月08日 01:49
  • 9742

mac安装protobuf

mac安装protobuf 首先从http://code.google.com/p/protobuf/下载protobuf 之后需要安装brew [非root] brew install auto...
  • Zhaohui1995_Yang
  • Zhaohui1995_Yang
  • 2016年05月10日 11:19
  • 4275

iOS中从零开始使用protobuf

让我们一起打开下面这个链接 https://github.com/alexeyxo/protobuf-objc 在github上有protobuf-objc,其中的readme可以教会我们...
  • hyichao_csdn
  • hyichao_csdn
  • 2015年03月13日 18:42
  • 6681

iOS 基于Socket使用Protobuf进行数据传输

最近有需求场景涉及到数据传输,要求尝试一下Protobuf的方式,基于Socket进行传输。 那么这个Protobuf是个啥?我也是mb的,好吧,让我们看看这究竟是什么。 1.Protobuf简介: ...
  • baby_hua
  • baby_hua
  • 2017年07月05日 14:33
  • 2715

用homebrew安装protobuf提示找不到包的解决办法

用homebrew安装protobuf: 命令 brew install protobuf 命令执行之后: 安装位置: /usr/local/Cellar 软连接位置: /usr/...
  • machinezj
  • machinezj
  • 2017年03月03日 12:21
  • 601

Mac上安装Protobuf

1. Download Protobuf 地址为: https://github.com/google/protobuf  $ git clone https://github.com/g...
  • wwq_1111
  • wwq_1111
  • 2015年12月08日 12:04
  • 5736

mac 上protobuf-2.6.0安装步骤

注:参考  http://www.cnblogs.com/yuhan-TB/p/4629362.html 我自己的brew安装踩坑了~ 所以就采取了跟Ubuntu下相似的安装方式,这里做一下笔记。...
  • zhangyuehuan
  • zhangyuehuan
  • 2016年04月23日 14:25
  • 2759

Objective-C环境的protobuf3.0.0使用

protobuf 3.0.0(包括)以上才官方支持Objective-C,低于3.0.0的请忽略或使用第三方转换工具 Objective C 2.0运行时环境 (32bit & 64bit iOS,...
  • wty947825770
  • wty947825770
  • 2016年10月09日 10:31
  • 1785

iOS 集成Protobuf,转换proto文件

原文地址:http://blog.csdn.net/hyq4412/article/details/54891038 附加Homebrew安装地址:https://brew.sh/index_zh-c...
  • sdsd13212
  • sdsd13212
  • 2017年03月14日 15:55
  • 4434

ios开发使用xcode6打包protobuf静态库 解决了 官方引用 protobuf 导致的冲突问题 包含 arm64 支持

1、下载 protobuf-2.5.0-mast ,并解压 2、在解压后的  目录内部建立一个 目录 名字随便写,我这里写的 是 xcodeProject 如图:...
  • xiaofei125145
  • xiaofei125145
  • 2014年09月30日 16:33
  • 6645
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS中protobuf 的安装和使用
举报原因:
原因补充:

(最多只允许输入30个字)