自动将生成的源文件添加到xcode项目

我正在使用IDL为我的xcode项目自动生成源文件。 有谁知道我可以自动将生成的文件添加到项目? 目前我必须从项目中删除当前文件并添加新的文件。 这真的很烦人。

使用文件夹引用适用于头文件,但xcode不想将文件夹引用中的任何文件识别为源文件。 有没有人find解决这个问题的办法?

我也花了几天时间为这个问题写一个解决scheme。 这是一个ruby脚本,您可以将其作为运行脚本构build阶段添加到项目目标中。 这是用XCode 3.2.4和ruby1.8.7进行testing。

为了这个工作,你需要安装rb-appscript ruby​​ gem。 (例如:sudo gem install rb-appscript)

有一点设置要做:

  1. 首先它需要添加文件的编译目标列表。
  2. 其次,它期望一个项目组名称,它将与其关联的磁盘文件夹(在我的情况下是'objc')同步。 显然这个组需要存在,并指向一个真正的文件夹。

这是脚本:

require 'rubygems' require 'appscript' target_names = ['MinitSample'] # Put your target names here group_name = 'objc' # Name of Xcode project group where to add the generated files project_name = ENV["PROJECT_NAME"] project_dir = ENV["PROJECT_DIR"] xcode = Appscript.app('Xcode') project = xcode.projects[project_name] group = project.groups[group_name] group_path = group.real_path.get generated_files = Dir.glob(group_path+"/*.m") missing_files = Array.new(generated_files) group.item_references.get.each {|item| item_path = item.real_path.get missing_files.delete(item_path) if ! generated_files.include?(item_path) then group.file_references[item.name.get].delete puts "Deleting #{File.basename(item_path)} from group #{group_name}, as it is not in generated files list" end } if missing_files.empty? then puts "There are no new files to add. " exit end # holds the compile targets for generated files targets = [] project.targets.get.each{ |target| targets << target if target_names.include?(target.name.get) } if targets.empty? then puts "Unable to find #{target_names.inspect} in project targets ! Aborting" exit end missing_files.each{ |path| file_name = File.basename(path) msg = "Adding #{file_name} to group #{group_name} and to targets: " item = xcode.make(:new => :file_reference, :at => group.item_references.after, :with_properties => {:full_path => path, :name => file_name}) targets.each {|target| xcode.add(item,{:to=>target}) msg += target.name.get } puts msg } 

一个好主意可以在这里find: https : //stackoverflow.com/a/17894337/354018

基本上,您将生成的.m文件导入到已添加到编译阶段的已知源文件中。

我已经添加了一个雷达(详细信息http://www.openradar.me/radar?id=4885314376040448 )要求支持。

看看xcode-editor项目,一个用于处理Xcode项目文件的API。

您可以将文件添加到项目中,指定它所属的目标,添加xib文件和框架。