库读/写pbxproj/xcodeproj文件?

JP *_*son 23 ruby java macos xcode objective-c

有没有人知道一个库来读/写Xcode项目文件.xcodeproj / .pbxproj?欢迎任何语言.

提前致谢.

cde*_*osa 29

Xcode项目的表面语法是"旧式plist".您可以使用该命令轻松将其转换为XML plist

plutil -convert xml1 -o - myproj.xcodeproj/project.pbxproj
Run Code Online (Sandbox Code Playgroud)

请注意,这不是"真正的XML",而是以XML语法表示的Mac OS X plist结构; 它几乎完全由键值对字典和数组组成.Xcode将读取XML表示,但在项目打开时将其转换回"旧式plist".

plist中项目的结构和关系遵循项目的结构.UUID用于交叉引用项目与其目标之间的项目,以及项目与项目包装器中的用户文件之间的项目.

'isa'键标识每种对象.PBXProject包含PBXFileReference,PBXGroup,PBXNativeTarget和PBXBuildConfiguration对象.

目标具有PBXBuildPhase对象,这些对象包含对文件引用的交叉引用; BuildConfigurationLists,用于存储目标的构建设置以及目标类型和名称等其他目标设置.

buildConfigurationLists交叉引用buildConfigurations,后者又包含buildSettings的字典.

我建议首先查看旧式plist文本,因为它更具可读性,实际上有内联注释来告诉你什么是什么.然后,您可以使用XML工具根据自己的喜好编辑或编写项目文件.

  • 这是可逆的吗?xml回到pbxproj? (3认同)

Jas*_*ues 21

我最终创建了一个,它在github上托管:

https://github.com/jasperblues/XcodeEditor

允许列出标题,文件,添加源文件,将源文件设置为目标成员,添加图像,创建组等.

它的工作原理是操作project.pbxproj文件的内容.用于:

  • 减轻痛苦:移动应用程序的自动功能测试.(编辑:现在是Xamarin工具的一部分).
  • Level Helper:用于在iOS和Android上开发2D游戏的RAD框架.
  • TextMate的
  • Apportable


JP *_*son 6

我刚刚发现了这个:https://github.com/alunny/node-xcode我还没有使用它,但对于Node.js开发人员看起来很有希望.