如何在 Xcode 编译中集成 .proto 文件?

Posted

技术标签:

【中文标题】如何在 Xcode 编译中集成 .proto 文件?【英文标题】:How to integrate .proto files in Xcode compilation? 【发布时间】:2016-03-05 00:03:58 【问题描述】:

我正在尝试将 android 应用程序移植到 ios 和新的 mac/xcode 生态系统。我的应用程序使用 Google proto buffs 并使用https://github.com/alexeyxo/protobuf-swift/blob/master/README.md 处的说明我能够为 swift 构建 protobuf 并将 ProtocolBuffers.xcodeproj 添加到我的项目中。我什至能够直接使用 protoc 在 xcode 之外为我的 proto 文件生成 .swift 文件。但是,我的问题是如何在 Xcode 中集成 .proto 文件,以便 xcode 可以找到/编译它们?我需要在我的项目中手动复制我的 .proto 文件吗?我使用的是 Xcode 7.2.1,protoc 版本是 3.0.0。提前致谢。

【问题讨论】:

【参考方案1】:
    为 *.proto 文件创建构建规则,如下所示: 将您的 .proto 文件添加到“编译源”构建阶段列表。

【讨论】:

谢谢 silyevsk。我猜这会生成cc文件。使用 proto 的 swift 扩展名,生成的文件是 .swift(我使用了 --swift_out),但是 .pb.cc 的 .swift 扩展名的相同规则似乎对我不起作用。有什么想法吗?现在,我将尝试使用它,看看它是否能解决我的直接问题。感谢您的帮助! @AbhijitVaidya - 尝试使用规则构建时遇到什么错误? 嗨 Silyevsk,我现在正在尝试您的建议,首先生成 .pb.h/.cc 文件。我添加了这两个规则,但得到了 header not found 错误。所以我首先尝试在标头搜索路径中添加 /usr/include (recurisve)(因为该路径具有必需的标头),但这没有用。因此,接下来根据在线建议,我在标头中添加了(我的 protobufdownload 的路径)/src,现在它正在查找标头,但我在尝试时遇到编译错误,例如命名空间“std”中的“无类型名称”字符串编译代码。有什么提示吗? @AbhijitVaidya - 不要使用 c++,你可能需要 swift。我将 c++ 留在示例中只是因为我使用它。 (我最初没有注意到您需要 swift。)无论如何,您应该使用手动编译 .proto 文件的命令来设置规则。 其实没关系。我想到了。我在编译源中丢失了文件名。感谢您的帮助!

以上是关于如何在 Xcode 编译中集成 .proto 文件?的主要内容,如果未能解决你的问题,请参考以下文章

在 Xcode7 beta 中集成解析

在 xcode4.3.2 的 ios App 中集成 facebook API 后出错

我无法在 Swift Xcode 的视图控制器中集成水平滚动视图

无法在我的Xcode项目中集成Razorpay付款网关

Qt - OpenCV在项目中集成使用(待完成)

如何在VS2015中集成QT5.5