iOS集成ProtocolBuffer遇到的问题

前言:

之前项目一直使用RGPC,ProtocolBuffer在安装grpc的时候自动安装了。最近一个IM项目不用grpc,但是数据格式仍使用ProtocolBuffer,ProtocolBuffer文件编写,数据格式等这里就不说了,网上一搜一大把。这里就说说在项目集成使用过程中遇到一些坑,记录于下:

一.ProtocolBuffer环境安装,

按顺序在终端中执行

  1. /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  2. brew install automake
  3. brew install libtool
  4. brew install protobuf

安装完成后,在usr/local/lib 下可以看到


iOS集成ProtocolBuffer遇到的问题_第1张图片
图片.png

二.项目集成

1.通过cocoapods

OC项目:

pod 'ProtocolBuffers'

Swift项目:

use_frameworks!
pod 'ProtocolBuffers-Swift'

我这里用的OC,但是导入后运行时一直报错,提示ProtocolBuffer下面这个GPBProtocolBuffers_RuntimeSupport.h库文件找不到。查找了一下,pod导入的库中确实没有。
上github看了一下,ProtocolBuffers库这个已经一年多没更新了,好吧,只能手动导入了。(swift版的倒是持续更新着)

2.手动导入

1.下载:ProtocolBuffers下载地址

下载地址

2.拷贝到项目文件夹下:

下载后解压,里面有不同语言的库,objectivec下是OC的全部PB源码。在项目中创建文件夹ProtocolBuffer,将objectivec下是OC的全部PB源码全部粘贴过去。


iOS集成ProtocolBuffer遇到的问题_第2张图片
图片.png

这里要注意只需要加入项目文件夹即可,不需要将ProtocolBuffer目录加入项目引用。(全部引用到项目可能会报错,因为里面有osx项目)

3.加入项目引用:

打开项目,在随意文件夹下,点击左下角加号按钮,add file to project


iOS集成ProtocolBuffer遇到的问题_第3张图片
图片.png

在上一步拷贝到项目中的ProtocolBuffer文件夹下找到ProtocolBuffers_iOS.xcodeproj,点击添加即可


iOS集成ProtocolBuffer遇到的问题_第4张图片
图片.png

添加完成后项目中如下
iOS集成ProtocolBuffer遇到的问题_第5张图片
图片.png

PB源文件里面的ProtocolBuffers_OSX.xcodeproj是macOS用的,这里不用管。

3.添加项目配置

  • 在工程target->Build Settings-> Rez Search Path 设置$(PROJECT)/ProtocolBuffer
  • 在工程target->Build Settings-> Header Search Path 设置$(PROJECT)/ProtocolBuffer
  • 选中工程: targets —> Build Phases —> Link Binary With Libraries, 引用源码静态库文件:libProtocolBuffers.a
  • 导入项目的proto文件如果报ARC错误,在工程target->Build Phrases->Compile Sources->给Person.pbobjc.m设置-fno-objc-arc,因为ProtocolBuffer还不支持ARC

注意:这里的路径是拷贝到项目文件夹中的ProtocolBuffer目录路径,并不是引入项目中ProtocolBuffers_OSX.xcodeproj的路径

至此,坑算是填完了。

附上参考:
https://blog.csdn.net/lovehalok/article/details/77852186
https://blog.csdn.net/lovehalok/article/details/77852186

你可能感兴趣的:(iOS集成ProtocolBuffer遇到的问题)