2016-02-25 42 views
1

我正在嘗試用Ruby寶石Xcodeproj實用地創建新的iPhone構建目標。在我缺乏Ruby知識和Xcodeproj的糟糕文檔之間,我遇到了一些問題。這裏是我的代碼:使用Xcodeproj創建新的iOS構建目標

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項目?

我發現regararding添加新目標的唯一文檔是here.我對可選變量product_group有點困惑。

任何想法,我在做什麼錯在這裏?我也開放其他的方法來增加目標的進展。

+0

你有沒有設法得到這個工作?我有興趣做類似的事情。 –

+0

@AlexBartiş我正試圖將我們整合到一起的圖書館,因此這是一個非問題。我沒有嘗試任何建議的答案。感謝大家的幫助。 –

+0

我找到了解決方案並使用下面的正確答案進行了更新。 –

回答

0

我不能說,爲什麼你不工作,但我可以一起實現這一點:

require 'xcodeproj' 

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

project = Xcodeproj::Project.new(project_path) 
project.save() 

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

這讓我覺得這可能是使用ARGV的輸入方案名稱或不在創建之前保存。

讓我知道你是如何相處的。 :)

+0

我做到了這一點,並得到了與上面@adam所述的相同的行爲:創建了新目標,但舊目標被銷燬,並且項目文件消失。 –

0

好,我知道它的工作

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