2

我正在尝试使用 Ruby gem Xcodeproj务实地创建一个新的 iPhone 构建目标。在我缺乏 Ruby 知识和 Xcodeproj 糟糕的文档之间,我面临着一些问题。这是我的代码:

require 'rubygems'
require 'xcodeproj'

#get target name from args
scheme_name = ARGV[0]
iosProjectDir = ARGV[1]

# Open the existing Xcode project
project_file = iosProjectDir + '/UserApp.xcodeproj'
project = Xcodeproj::Project.new(project_file)

#Add the target to the project. Are these parameters correct?
app_target = project.new_target(:application, scheme_name, :ios, "8.0")

# Save the project file
project.save(project_file)

当我运行此代码时,在 XCode 项目中创建了一个新方案。但是,它破坏了我所有的其他构建目标,几乎所有的项目文件都消失了。我必须恢复项目才能让他们回来。这段代码会破坏 iOS 项目吗?

我发现的关于添加新目标的唯一文档在这里。我对可选变量有点困惑product_group

关于我在这里做错了什么的任何想法?我也对其他以编程方式添加目标的方法持开放态度。

4

2 回答 2

2

好的,让它工作

require 'rubygems'
require 'xcodeproj'

#get target name from args
scheme_name = ARGV[0]
iosProjectDir = ARGV[1]
iosProjName = ARGV[2]

# Open the existing Xcode project
project_file = iosProjName + '.xcodeproj'
project = Xcodeproj::Project.open(project_file)
project.save(project_file)

#Add the target to the project. Are these parameters correct?
app_target = project.new_target(:application, scheme_name, :ios, "11.0")

# Save the project file
project.save(project_file)

所以问题是Project.open不是Project.new

于 2017-11-12T20:23:19.797 回答
1

我不能说为什么你的不起作用,但我能够通过以下方式实现这一目标:

require 'xcodeproj'

project_name = "Test"
project_path = "./Test.xcodeproj"

project = Xcodeproj::Project.new(project_path)

project.new_target(:application, "Test", :ios, "8.0")
project.save()

这让我觉得可能是使用 ARGV 输入方案名称或在创建之前不保存。

让我知道你们相处得如何。:)

于 2016-05-16T02:00:28.147 回答