Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>I also spent a couple of days writing a solution for this problem. Here is a ruby script that you can add to your project's target as a run script build phase. This was tested with XCode 3.2.4 and ruby 1.8.7.</p> <p>For this to work you will need to install rb-appscript ruby gem. ( eg: sudo gem install rb-appscript )</p> <p>There is little setup to do:</p> <ol> <li>First it needs a list of compile targets for added files. </li> <li>Second it expects a project group name which it will synchronize with it's associated disk folder ('objc' in my case) . Obviously this group needs to exist and to point to a real folder.</li> </ol> <p>Here is the script:</p> <pre><code>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 &lt;&lt; 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 =&gt; :file_reference, :at =&gt; group.item_references.after, :with_properties =&gt; {:full_path =&gt; path, :name =&gt; file_name}) targets.each {|target| xcode.add(item,{:to=&gt;target}) msg += target.name.get } puts msg } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload