ios 之Protobuffer搭建

由于跟c對接 需要用到Protobuffer 于是在網上各種查資料 最后搞成了這個 總結一下心得

Protobuffer的背景歷史就不介紹了 網上自己閑著沒事自己百度去吧 ?直接說一下我的過程吧

注意點:不要用cocopods把Protobuffer搞下來 倒到項目中我的反正報錯了 居然包Protobuffer庫找不到 你要是不信的話 你搞搞試試,姑且吧我的報錯信息給你:This file was generated by a different version of protoc which is incompatible with your Protocol Buffer library sources?

我只有放棄了cocopods 直接從https://github.com/google/protobuf 下載下來放到工程里去

來 搞一下我的流程

A>先安裝pb環境

1、從https://github.com/google/protobuf/releases下載protocolBuffer對應版本編譯器包,比如目前的對應的objc最新版本

下載地址為:https://github.com/google/protobuf/releases/download/v3.1.0/protobuf-objectivec-3.1.0.zip

2、解壓包,假設解壓后的文件夾名為: protobuf-objectivec-3.1.0,

打開終端,進入文件夾protobuf-objectivec-3.1.0, 依次執行以下命令:

./configure

make

make check

sudo make install

如果編譯順利的話,便可以使用protoc命令了,以后便可以用這個命令將.proto文件轉換為不同語言的源代碼文件。

B>創建新項目,導入pb庫,編寫proto文件編譯,使用過程

1、從https://github.com/google/protobuf.git下載源碼,解壓,里面有支持不同語言的版本源碼,

我們只需要里面的支持objc的文件夾名為:objectivec,如圖:



2、新建一個工程命名為VPNSDK,創建一個文件夾,假設命名為:protocolbuf, 把第一步的pb源碼復制到此文件夾中:


3、使用Xcode打開工程,點擊左下角“+”, 引用protocolBuffer源文件到工程中

(源文件里面有兩個工程配置文件:ProtocolBuffers_iOS.xcodeproj和ProtocolBuffers_OSX.xcodeproj,引用ProtocolBuffers_iOS.xcodeproj就好)

4、選中工程: targets —> ?Build Phases ?—> ?Link Binary With Libraries, 引用源碼靜態庫文件:libProtocolBuffers.a


5、在工程設置搜索靜態庫的頭文件(pb文件在protocolbuf文件夾里面):

targets —> ?Build Setting ?—> ?Search Paths ?—> Header Search Paths, 寫入:$(PROJECT)/protocolbuf


6、編寫測試文件*.proto,比如新建一個文件Person.proto, 按照官方標準語法https://developers.google.com/protocol-buffers/ 編寫通用代碼,

寫好后在終端進入該demo.proto文件所在目錄,使用protoc命令:protoc *.proto --objc_out=../Pro_out 進行編譯

把demo.proto文件編譯成demo.pbobjc.h和demo.pbobjc.m, 生成的文件在Pro_out文件夾里面。

將編譯好的*.pbobjc.h和*.pbobjc.m拖入工程中,因為不支持arc, 所以需要在*.pbobjc.m設置-fno-objc-arc, 然后就可以使用了。



就這么簡簡單單的搞完了

運行結果


不要問我是誰 ?我叫雷鋒 ?直接看方法 用就完了

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容