3

我需要从批处理中管理 Xcode 项目,部分删除某些组。

据我了解,唯一的工具是 xcodeproj。或者编写自己的 pbxproj 文件解析器。

所以我已经安装了xcodeproj。

首先,没有合理的文档,新手可以很容易地理解它。我假设我需要编写一些 rb 文件。并将其执行为ruby xcodeproj_batch.rb

这是我所做的。但这不起作用。此脚本会找到所需的组,但不会将其删除。

xcodeproj_batch.rb:

require 'rubygems'
require 'xcodeproj'


project_path = '../TestProject/TestProject.xcodeproj'
project = Xcodeproj::Project.open(project_path)
groupToDelete = Xcodeproj::Project::PBXGroup

project.groups.each do |group|
    if group.name == 'Test'
        groupToDelete = group

        puts 'cleared: '+group.name

        groupToDelete.clear
    end
end

project.groups.delete(groupToDelete)
project.save(project_path)

我认为这个脚本有错误。我没有 xcodeproj 和 ruby​​ 背景。我在这里尝试以两种不同的方式删除该组。我错过了什么?

4

1 回答 1

2

我发现了问题,我需要使用remove_from_project而不是clear

require 'rubygems'
require 'xcodeproj'


project_path = '../TestProject/TestProject.xcodeproj'
project = Xcodeproj::Project.open(project_path)
groupToDelete = nil

project.groups.each do |group|
    if group.name == 'Test'
        groupToDelete = group

        puts 'cleared: '+group.name
        # add break;
    end
end

groupToDelete.remove_from_project
project.save(project_path)
于 2017-01-05T14:53:03.937 回答