def save(save_path = nil)
      save_path ||= path
      @dirty = false if save_path == path
      FileUtils.mkdir_p(save_path)
      file = File.join(save_path, 'project.pbxproj')
      Atomos.atomic_write(file) do |f|
        Nanaimo::Writer::PBXProjWriter.new(to_ascii_plist, :pretty => true, :output => f, :strict => false).write
      end
    end
def save(save_path = nil)
      save_path ||= path
      @dirty = false if save_path == path
      FileUtils.mkdir_p(save_path)
      file = File.join(save_path, 'project.pbxproj')
      Atomos.atomic_write(file) do |f|
        Nanaimo::Writer::PBXProjWriter.new(to_ascii_plist, :pretty => true, :output => f, :strict => false).write
      end
    end
Serializes the project in the xcodeproj format using the path provided
 during initialization or the given path (`xcodeproj` file). If a path is
 provided file references depending on the root of the project are not
 updated automatically, thus clients are responsible to perform any needed
 modification before saving.

 @param  [String, Pathname] path
         The optional path where the project should be saved.

 @example Saving a project
   project.save
   project.save

 @return [void]