     // MARK: - Attributes
 
     /// The path to a xcconfig file
+    @available(*, deprecated, message: "Use baseConfiguration instead")
     public var baseConfigurationReference: PBXObjectReference?
+
+    /// Base configuration
+    public var baseConfiguration: XCBuildConfiguration? {
+        get {
+            if let baseConfigurationReference = baseConfigurationReference {
+                return try? baseConfigurationReference.object() as XCBuildConfiguration
+            }
+            return nil
+        }
+        set {
+            if let newValue = newValue {
+                baseConfigurationReference = newValue.reference
+            }
+        }
+    }
 
     /// A map of build settings.
     public var buildSettings: BuildSettings

        self.buildSettings = buildSettings
        self.name = name
        super.init()
    }

    // MARK: - Decodable

    ///   - name: build configuration name.
    ///   - baseConfigurationReference: reference to the base configuration.
    ///   - buildSettings: dictionary that contains the build settings for this configuration.
    @available(*, deprecated, message: "Use the the other available constructor")
    public init(name: String,
                baseConfigurationReference: PBXObjectReference? = nil,
                buildSettings: BuildSettings = [:]) {
