diff --git a/src/Cake.XCode/XCodeBuildRunner.cs b/src/Cake.XCode/XCodeBuildRunner.cs
index dc3d911..67493d7 100644
--- a/src/Cake.XCode/XCodeBuildRunner.cs
+++ b/src/Cake.XCode/XCodeBuildRunner.cs
@@ -175,6 +175,12 @@ public class XCodeBuildSettings : XCodeSettings
/// The export path.
public DirectoryPath ExportPath { get; set; }
+ ///
+ /// Specifies the location of the plist file used as options in the export process.
+ ///
+ /// The path to plist.
+ public DirectoryPath ExportOptionsPlist { get; set; }
+
///
/// Specifies the provisioning profile that should be used when re-signing the exported archive; if possible, implies a signing identity
///
@@ -227,6 +233,12 @@ public class XCodeBuildSettings : XCodeSettings
/// true if project should be cleaned; otherwise, false.
public bool Clean { get; set; }
+ ///
+ /// Gets or sets a value indicating whether project should be archived instead of builded.
+ ///
+ /// true if project should be archive; otherwise, false.
+ public bool Archive { get; set; }
+
///
/// Export format type.
///
@@ -361,6 +373,9 @@ public void Build (XCodeBuildSettings settings)
if (settings.ExportPath != null)
builder.Append ("-exportPath " + GetQuotedAbsolute (settings.ExportPath));
+ if (settings.ExportOptionsPlist != null)
+ builder.Append("-exportOptionsPlist " + GetQuotedAbsolute(settings.ExportOptionsPlist));
+
if (!string.IsNullOrEmpty (settings.ExportProvisioningProfile))
builder.Append ("-exportProvisioningProfile " + settings.ExportProvisioningProfile);
@@ -385,7 +400,10 @@ public void Build (XCodeBuildSettings settings)
if (!string.IsNullOrEmpty (settings.ExportLanguage))
builder.Append ("-exportLanguage " + settings.ExportLanguage);
- builder.Append ("build");
+ if(settings.Archive)
+ builder.Append("archive");
+ else
+ builder.Append ("build");
if (settings.Clean)
builder.Append ("clean");