我试图编写一个Ruby脚本来删除Xcode项目中的某些文件。我可以根据绝对路径找到这些文件,并使用PBXFileReference
.m
方法从项目中删除它们。但是,这会在"编译源"中留下源文件(例如.swift
或PBXFileReference
文件)。构建其所属目标的阶段,但没有名称。
我知道我还需要从目标中删除该文件,但PBXFileReference
和目标()之间似乎没有简单的链接。
根据我的建议,我需要遍历每个项目的目标,然后遍历该目标的PBXNativeTarget
或files
{{3}寻找我已经拥有的file_ref.target_memberships
。
这是正确的还是我错过了一些明显的链接,例如should_merge(...)
?
答案 0 :(得分:0)
' Add reference to Microsoft Internet Controls (SHDocVw)
' Add reference to Microsoft HTML Object Library
Dim ie As Object
Dim name As String
Dim Doc As HTMLDocument
Set ie = New InternetExplorer
ie.Visible = 1
ie.navigate "<URL>"
While ie.Busy Or ie.readyState <> 4
DoEvents
Wend
Set Doc = ie.document
Dim anchors As IHTMLDOMChildrenCollection
Dim anchor As IHTMLAnchorElement
Dim i As Integer
Set anchors = Doc.querySelectorAll("tr[class~='even'] a")
If Not anchors Is Nothing Then
For i = 0 To anchors.Length - 1
Set anchor = anchors.item(i)
If anchor.getAttribute("href") = "/italy/serie-a-2015-2016/" Then
Range("E8").Value = anchor.innerHTML
End If
Next
End If
ie.Quit
答案 1 :(得分:0)
不确定何时引入此版本,但从xcodeproj
版本1.15.0开始,您可以通过以下方式获取与文件引用关联的构建文件:
file_ref.build_files
方法:Xcodeproj :: Project :: Object :: PBXFileReference#build_files
#build_files ⇒ Array<PBXBuildFile>
返回与当前文件引用关联的构建文件。
返回:
(Array<PBXBuildFile>)
-与当前文件引用关联的构建文件。
看起来像这样应该可以解决问题:
file_ref.build_files.each { |file| file.remove_from_project }