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

来源:互联网 发布:使命召唤网络异常 编辑:程序博客网 时间:2024/04/28 18:51

1、下载 protobuf2.5.0-mast,并解压


2、在解压后的  目录内部建立一个 目录 名字随便写,我这里写的 是 xcodeProject 如图:




3、新建一个 静态库工程  在刚才 的  xcodeProject 文件夹内.






4,将工程中 自带的 哪个 类 删除 ,也就是删除 下图 中 的  protobufXcode6 那个类 。

5, 将  protobuf-2.5.0-master/src/google  文件夹 添加到  刚才新建的 静态库工程 中 ,注意 不需要 勾选 copy 复选框,注意勾选add to target ,如图 。










6、 将  google/protobuf/compiler/文件夹 从工程中 移除 。


7、 将 google 中所有的 test 文件 删除 ,可在 文件中 搜 test 如图 ,然后 删除  google 文件夹中 包含 test 的文件 如图。





8、添加 头文件 引用 路径,如图。



9、生成 config.h 头文件 。 打开终端 , cd 到 protobuf 跟目录下 , 运行  ./configure 脚本   就可以生成 config.h 文件 ,生成后 将 config.h 文件 添加到 xcode  工程 中 ,如图






10、 修改 平台 支持 宏定义 ,  将下面三行 添加到  stubs/platform_macros.h  中 ,如下图。


#elif defined(__aarch64__)

#define GOOGLE_PROTOBUF_ARCH_ARM 1

#define GOOGLE_PROTOBUF_ARCH_64_BIT 1










11、 命名空间修改 ,由于  APPLE 官方 已经 在 手机的 框架内 使用了 google 的 protobuf  ,如果你 依然使用 protobuf 中的 命名空间 google 的话 ,在 64 的 系统中 会 导致 崩溃 ,所以 需要修改 命名空间 ,如下图 添加 一行 宏定义 ,


添加位置 , google/protobuf/stubs/common.h  如图 


#define google googleZhiGuang




12、添加需要 copy 的 头文件  ,如下图 ,点击 加号 以后  选中 所有的  .h 文件  然后 点击 Add 





13 、修改  Scheme ,切换到 Run 选项 ,点击 右侧的  info ,build configuration 设置为  Release , 如图 。

 



14,最后 直接  build 就可以生成了  ,注意 编译的时候 选择 模拟器的话 编译 出来的  是  模拟器 对应 的  i386 的 架构的 ,编译 armv7,armv7s,arm64 的 需要 选择 手机 ,没有手机的话就 选 ios Device  。

 

15、 找到  lib 和 头文 件 , 

build 完 之后 ,如图 ,在  product 文件 上 点击 右键 showinfinder 就可以了 ,include 文件夹中是 对应的 头文件 。



2 0
原创粉丝点击