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");