制作Protobuf framework及使用

作者:Tamer    发布于:

  1. 下载 https://github.com/google/protobuf
  2. 安装protoc
    2.1 objectivec/DevTools/full_mac_build.sh
    2.2 make
    2.3 make install
    Note: 问题-> 缺少autoconf等,
    1.下载homebrew: 
        1.1 sudo su\ncurl -L http://github.com/mxcl/homebrew/tarball/master | tar xz --strip 1 -C /usr/local                
        1.2 usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
    2.安装 autoconf等
        2.1 brew install autoconf
        2.2 brew install libtool
        2.3 brew install automake
    
  3. Xcode创建framework
    3.1 XCode创建framework工程。命名为Protobuf
    note:后续添加的文件中引用都文件都是,不更改引用的情况下,建议还是以Protobuf命名。
    3.2 引入文件
    所有文件都在objectivec文件路径下。
  4. 配置Protobuf工程设置
    4.1 设置文件为MRC,两种方式分别为:

    4.1.1 Build Setting->Objective-C Automatic Reference Counting 为No
    4.1.2 Build Phases->Compile Sources 下对应文件设置为-fno-objc-arc
    

    4.2 设置文件搜索路径

    4.2.1 Build Setting->Header Search Paths 添加$(SRCROOT)、$(SRCROOT)/Protobuf、
            $(SRCROOT)/google、$(SRCROOT)/google/protobuf等
    

    4.3 在源文件GPBBootstrap.h 文件添加如下代码

    #if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS)
    #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 1
    #endif
    
  5. 生成frameworks
    生成不同架构的framework,使用lipo命令合并。

    note:lipo命令如下
    lipo -info xxxx/xxx.a //查看lib 信息
    lipo -create xxx/xxx_1.a xxx/xxx_2.a xxx/xxx_3.a. -output xxx/xxx_dst.a

  6. 创建自己的protobuf数据
    6.1 创建proto文件,使用命令vim xxxx.proto创建
    6.2 生成OC源文件
    protoc  --proto_path=proto文件所在路径  —objc_out=产出路径   xxx.proto
    
  7. 将生成的OC文件和Protobuf.framework 引入要使用的工程

笔者Protobuf地址:https://github.com/LiuToTo/Protobuf.git
笔者Protobuf.framework测试工程地址:https://github.com/LiuToTo/PBTest.git

format_list_numbered

(无)

arrow_back
vertical_align_top

Copyright © 2017 Tamer'home

The most important person is happy!