【发布时间】:2012-06-15 12:20:37
【问题描述】:
我想让 xcode 项目与 Visual Studio 项目保持同步。我怎样才能做到这一点?
顺便说一句,xcode 如何管理文件引用? pbxproj 文件中没有路径信息,每个文件引用只有一个“幻数”。
【问题讨论】:
标签: xcode4.2
我想让 xcode 项目与 Visual Studio 项目保持同步。我怎样才能做到这一点?
顺便说一句,xcode 如何管理文件引用? pbxproj 文件中没有路径信息,每个文件引用只有一个“幻数”。
【问题讨论】:
标签: xcode4.2
对于您的第一个问题,我怀疑唯一合理的方法是使用跨平台构建工具,例如 make 或 ANT,并为每个目标单独包含。如果您随后使用每个平台的本机工具 Xcode 和 VS 包装这些 makefile,这可能会更容易管理。
您的第二个问题令人费解,因为 pbxproj 文件确实具有每个文件的显式路径以及搜索路径集,请参见下面的示例。
492991C11534DE51003993BA /* KeyboardButton.m */ = {isa = PBXFileReference;文件编码 = 4; lastKnownFileType = sourcecode.c.objc;名称 = 键盘按钮.m;路径 = GUI/iPad/Session/Keyboard/KeyboardButton.m;源树 = ""; };
【讨论】:
将文件添加到 XCode 项目是很奇怪的。例如,我还没有发现 XCode 如何计算对象字典的哈希值。
但经过一些分析,我写了一个小工具来将文件添加到 xcode 项目中。它正好符合我的需要,但可以扩展。如果您有添加文件的扩展需求,请随时通过 github 与我联系,例如仅为选定目标添加构建规则,我还没有实现,因为我认为这个功能是在 >99% 的项目中不需要。
XCodeControl 项目本身就是一个 macos XCode 项目,因为它最容易阅读和修改 .pbxproj 文件,这些文件是 NSDictionary 对象的简单序列化。当然,苹果在其序列化中添加了一些盐,因此XCodeControl 的输出看起来与苹果产生的完全不同,但它仍然可以正常工作。
【讨论】:
如果您对.pbxproj 文件格式感兴趣,可以查看此http://www.monobjc.net/xcode-project-file-format.html
哈希码由UUID生成。
你可以看看这个问题project.pbxproj hashing for files - what hash is used and how?
Cocoapods 提供了一个用于编辑 Xcode 项目的 Ruby API。 https://github.com/CocoaPods/Xcodeproj
pbxproj:如果你想在.pbxproj手册中添加文件,可以试试python工具pbxproj
安装者:sudo pip install pbxproj
更多信息https://github.com/kronenthaler/mod-pbxproj/wiki/CLI
玩得开心~
【讨论】: