PBXProjectHelper v2.0 发布,PBXProject 工具类库

PBXProjectHelper 是一个基于 Python 开发的,目的用于解析和操作 PBXProject(XCode项目的配置文件)的工具类库。其提供了非常简单的方法来让开发者对XCode项目进行文件、类库以及项目设置的修改。从而达到自动化维护和管理的目的。

使用方法

  1. 导入PBXProjectHelper到你的Python脚本中。如:

    import PBXProjectHelper
  2. 初始化PBXProjectHelper工具类,并传入pbxproj文件的路径

    helper = PBXProjectHelper ("/Users/fenghj/Documents/work/Demo/Demo.xcodeproj/project.pbxproj")
  3. 调用PBXProjectHelper类提供的方法来操作PBXProj文件。如添加一个Group到XCode项目:

    helper.project.mainGroup.addGroup ("Demo")

更新内容

对工具内部进行了重构,使接口更加面向对象,逻辑更清晰,功能更加强大。

  1. 调整内部结构,使之前helper的接口分布到不同的操作类型上。如添加分组:helper.project.mainGroup.addGroup("Demo")

  2. 突出项目的包含关系,体现由Project包含文件列表导航(Group & File),包含Target,Target包含编译设置等。如获取项目的所有target:helper.project.targets

  3. 增强Group查询功能,旧版本只能够通过Group的ID或者名称来找到对应Group,新版本中可以通过project.mainGroup的find方法可以查找不同层级关系的Group或File。如找到Demo目录下的ViewController.m文件:project.mainGroup.find("/Demo/ViewController.m")

  4. helper中添加Framework、Dylib、StaticLib等操作转移到Group类中操作。在不同的Group中可以调用addFramework、addDylib、addStaticLib等方法在此Group中添加库或文件。如在Frameworks中添加AVFoundation.framework:

    frameworksGroup = helper.project.mainGroup.find("/Frameworks")
    frameworksGroup.addSystemFramework("AVFoundation.framework", helper.project.targets[0])
  5. 新增添加ShellScriptBuildPhase接口,如:helper.project.targets[0].addShellScriptBuildPhase("echo "Hello World"");

Source article – 

PBXProjectHelper v2.0 发布,PBXProject 工具类库