Method: Xcodeproj::Project#initialize

Defined in:
lib/xcodeproj/project.rb

#initialize(path, skip_initialization = false, object_version = Constants::DEFAULT_OBJECT_VERSION) ⇒ Project

Note:

When initializing the project, Xcodeproj mimics the Xcode behaviour including the setup of a debug and release configuration. If you want a clean project without any configurations, you should override the ‘initialize_from_scratch` method to not add these configurations and manually set the object version.

Returns a new instance of Project.

Examples:

Creating a project

Project.new("path/to/Project.xcodeproj")

Parameters:

  • path (Pathname, String)

    @see path The path provided will be expanded to an absolute path.

  • skip_initialization (Bool) (defaults to: false)

    Wether the project should be initialized from scratch.

  • object_version (Int) (defaults to: Constants::DEFAULT_OBJECT_VERSION)

    Object version to use for serialization, defaults to Xcode 3.2 compatible.



70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# File 'lib/xcodeproj/project.rb', line 70

def initialize(path, skip_initialization = false, object_version = Constants::DEFAULT_OBJECT_VERSION)
  @path = Pathname.new(path).expand_path
  @project_dir = @path.dirname
  @objects_by_uuid = {}
  @generated_uuids = []
  @available_uuids = []
  @dirty           = true
  unless skip_initialization.is_a?(TrueClass) || skip_initialization.is_a?(FalseClass)
    raise ArgumentError, '[Xcodeproj] Initialization parameter expected to ' \
      "be a boolean #{skip_initialization}"
  end
  unless skip_initialization
    initialize_from_scratch
    @object_version = object_version.to_s
    unless Constants::COMPATIBILITY_VERSION_BY_OBJECT_VERSION.key?(object_version)
      raise ArgumentError, "[Xcodeproj] Unable to find compatibility version string for object version `#{object_version}`."
    end
    root_object.compatibility_version = Constants::COMPATIBILITY_VERSION_BY_OBJECT_VERSION[object_version]
  end
end