Bash:是否自动将文件添加到Xcode项目?

Bash:是否自动将文件添加到Xcode项目?,xcode,bash,Xcode,Bash,我正在创建一个script.sh文件,该文件创建一个Test.swift文件,并将其添加到Xcode项目中。但是,我想知道是否有办法从这个脚本将这个文件添加到Xcode(在project.pbxproj文件中)?而不是在Xcode中手动执行(将文件添加到项目…) 多谢各位 2005年3月更新 我尝试了@Johnykutty answer,这是我在执行ruby脚本之前当前的Xcode项目: 我已经生成了一个a文件夹,其中包含Sample.swift文件,该文件位于test,但这些文件尚未链接到我

我正在创建一个
script.sh
文件,该文件创建一个
Test.swift
文件,并将其添加到Xcode项目中。但是,我想知道是否有办法从这个脚本将这个文件添加到Xcode(在
project.pbxproj
文件中)?而不是在Xcode中手动执行(
将文件添加到项目…

多谢各位

2005年3月更新

我尝试了@Johnykutty answer,这是我在执行ruby脚本之前当前的Xcode项目:

我已经生成了一个
a
文件夹,其中包含
Sample.swift
文件,该文件位于
test
,但这些文件尚未链接到我的Xcode项目:

下面是我正在执行的脚本:

require 'xcodeproj'

project_path = '../TestCodeProjTest.xcodeproj'
project = Xcodeproj::Project.open(project_path)

file_group = project["TestCodeProjTest"]["test"]
file_group.new_file("#{project.project_dir}/TestCodeProjTest/test/A")

project.save()
这几乎可以正常工作,只是它创建了一个文件夹引用而不是一个组,并且没有将其链接到我的目标:


因此,
Sample.swift的内容是不可访问的。

bash很难实现。但是如果您使用Ruby和Cocoapods中的
xcodeproj
gem,就非常容易了

假设您的文件结构如下

├── GeneratedFiles
│   └── Sample1.swift
├── MyProject
│   ├── AppDelegate.swift
│   ├── ... all other files
│   ├── SceneDelegate.swift
│   └── ViewController.swift
├── MyProject.xcodeproj
│   ├── project.pbxproj
│   ├── .....
└── add_file.rb
然后您可以添加如下文件

require 'xcodeproj'

project_path = 'MyProject.xcodeproj'
project = Xcodeproj::Project.open(project_path)

file_group = project["MyProject"]
file_group.new_file("../GeneratedFiles/Sample1.swift")

project.save()
更新:

project[“MyProject”]
返回一个文件组,该文件组是名为
MyProject
的组。在项目根目录中,您可以通过
file\u group=project[“MyProject”][“MyGroup”]在
MyProject
中选择另一个组

然后,生成的文件路径应该与该组相关,如
file\u group.new\u file(“../../../GeneratedFiles/Sample1.swift”)
或完整路径,如
file\u group.new\u file(“{project.project\u dir}/GeneratedFiles/Sample1.swift”)


关于Xcodeproj的更多详细信息

谢谢!这似乎很有希望,但我希望能够在项目中的特定位置添加一些文件,而不是根文件。有可能吗?是的,有可能,更新了答案再次感谢你,我想我都明白了,但我仍然有一个问题。我已经阅读了很多gem文档,但找不到解决此问题的方法,如果您想查看此问题,我已经更新了我的原始问题。这是因为您将文件夹路径指定为文件。添加A/Sample.swift怎么样?