如何在 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 文件?的主要内容,如果未能解决你的问题,请参考以下文章
在 xcode4.3.2 的 ios App 中集成 facebook API 后出错