     
     // MARK: - Public
     
-    public func addingBuild(setting: String, value: String) -> XCBuildConfiguration {
+    /// Returns a new build configuration adding the given setting.
+    ///
+    /// - Parameters:
+    ///   - setting: setting to be added (key)
+    ///   - value: setting to be added (value)
+    /// - Returns: new build configuration after adding the value.
+    public func addingBuild(setting: String, value: Any) -> XCBuildConfiguration {
         var mutableSettings = self.buildSettings
         mutableSettings[setting] = value
         return XCBuildConfiguration(reference: self.reference,

   
    // MARK: - Attributes
    
    let reference: String
    
    public let isa: String = "XCBuildConfiguration"
    
    /// The path to a xcconfig file
    let baseConfigurationReference: String?
    
    /// A map of build settings.
    let buildSettings: [String: String]
    
    /// The configuration name.
    let name: String
    
    // MARK: - Init
    
    public init(reference: String,
                baseConfigurationReference: String? = nil,
                buildSettings: [String: String],
                name: String) {
        self.reference = reference
        self.baseConfigurationReference = baseConfigurationReference

                                    name: self.name)
    }
    
    /// Returns a build configuration by removing the given build setting.
    ///
    /// - Parameter setting: build setting to be removed.
    /// - Returns: new build configuration after removing the build setting.
    public func removingBuild(setting: String) -> XCBuildConfiguration {
        var mutableSettings = self.buildSettings
        mutableSettings.removeValue(forKey: setting)
