如何自动化XCode项目变更?

如何自动化XCode项目变更?,xcode,automation,applescript,Xcode,Automation,Applescript,我有一个乏味的任务,每次我构建iPhone项目时都需要重复,以便发送给非程序员同事:我在项目文件夹外引用的所有库和标题都需要复制到项目文件夹或其子文件夹中,这样我就可以压缩源代码并将其传递下去 我知道您可以使用AppleScript自动化XCode,但我一辈子都找不到任何关于可用命令的适当文档。如果我在谷歌上搜索XCode AppleScript automation,我就可以在XCode中编写AppleScript应用程序 任何帮助都将不胜感激 根据您的描述,在xcode中创建自定义目标以执行

我有一个乏味的任务,每次我构建iPhone项目时都需要重复,以便发送给非程序员同事:我在项目文件夹外引用的所有库和标题都需要复制到项目文件夹或其子文件夹中,这样我就可以压缩源代码并将其传递下去

我知道您可以使用AppleScript自动化XCode,但我一辈子都找不到任何关于可用命令的适当文档。如果我在谷歌上搜索XCode AppleScript automation,我就可以在XCode中编写AppleScript应用程序


任何帮助都将不胜感激

根据您的描述,在xcode中创建自定义目标以执行此任务会更容易。xcode可以运行各种unix实用程序进行复制、压缩等。。。shell脚本应该容易得多。如果愿意,您也可以将此目标设置为依赖项,因此它始终保持最新状态(但对于常规开发来说有点慢,tbh)


是的,在许多情况下,您可以将applescript与xcode一起使用,但是对于您概述的任务来说,这将是非常困难的。

这里有一个演示让您开始使用。因为您知道如何查找词典,如果您能自如地使用applescript,其余的工作可能会很简单:

tell application "Xcode"
    -- of course, use your project's name instead of Alias
    set projectName to "Alias" 
    set xcProject to project projectName

    repeat with idx from 1 to the count of (get every file reference of xcProject)
        set fileRef to (file reference idx) of xcProject
        get path of fileRef
        get id of fileRef
        get name of fileRef
        get properties of fileRef

        set newPath to path of fileRef
        -- add logic and alterations here
        set path of fileRef to newPath
        -- ...
    end repeat
end tell

Shell脚本可以用于复制文件等,但在这种情况下,我也需要更改项目的文件引用。例如,如果项目引用../SomeOtherProject/SomeFile.mm,则需要在复制文件后变成SomeFile.mm。啊-好的,我误解了你原来的帖子的意思。我以为你指的是引用文件,而不是项目引用。好的-我们通常不会在交付过程中经历所有这些繁琐的步骤。在某些情况下,您可以在xcode项目文件本身中使用搜索和替换。如果您只添加搜索路径(用于包含),会更容易,或者使用xcode的“源代码树”来更改引用/搜索路径(对于您必须编译的文件)。源代码树非常可爱,对此我并不知道。但它们并不能解决我的问题。我可以进行搜索+替换,只是感觉有点粗糙。我知道有一些命令可以通过AppleScript操作xcode项目(包括添加/删除引用等),我在上面找不到任何文档。:-/谢谢你的帮助!啊,找到了!在AppleScript编辑器中,选择文件->打开字典->Xcode。