答案 0 :(得分:10)
如果你不介意自己构建Google Protobuf,那么使用Cocoapods的一个很好的选择就是在这里运行bash脚本。
https://gist.github.com/BennettSmith/7150245
此脚本将生成适当的Google Protobuf版本,支持i386,armv7,armv7s,arm64和x86_64架构。它将生成一个通用的静态库。它还将生成用于OS X的protoc编译器。
答案 1 :(得分:9)
您可以使用Cocoapods将对Google协议缓冲区的支持添加到Xcode 5项目中,方法是将以下行添加到您的Podfile中。
pod 'GoogleProtobuf', '~> 2.5.0'
这会将protobuf代码的C ++版本放入到项目的Pod中。它还会在项目的protoc
文件夹中添加Pods/GoogleProtobuf/bin/protoc
编译器。
您可以在项目中创建自定义构建规则,自动将.proto
文件转换为.ph.{h,cc}
个文件。我是这样做的:
将构建规则设置为"名称匹配的处理源文件:* .proto使用自定义脚本"。该脚本应包括以下内容:
cd ${INPUT_FILE_DIR}
${SRCROOT}/Pods/GoogleProtobuf/bin/protoc --proto_path=${INPUT_FILE_DIR} ${INPUT_FILE_PATH} --cpp_out=${INPUT_FILE_DIR}/cpp
设置输出文件以包含以下内容:
$(INPUT_FILE_DIR)/cpp/$(INPUT_FILE_BASE).pb.h
$(INPUT_FILE_DIR)/cpp/$(INPUT_FILE_BASE).pb.cc
您项目中包含的任何.proto
文件现在将自动转换为C ++,然后作为构建的一部分进行编译。