您的位置:首页 > 移动开发 > IOS开发

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

2014-09-30 16:33 1281 查看
1、下载 protobuf-2.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 文件夹中是 对应的 头文件 。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐