diff --git a/src/main/java/au/com/rayh/XCodeBuilder.java b/src/main/java/au/com/rayh/XCodeBuilder.java
index 494b0709..7009a5ff 100644
--- a/src/main/java/au/com/rayh/XCodeBuilder.java
+++ b/src/main/java/au/com/rayh/XCodeBuilder.java
@@ -358,6 +358,11 @@ public class XCodeBuilder extends Builder implements SimpleBuildStep {
*/
@CheckForNull
private Boolean copyProvisioningProfile;
+ /**
+ * @since 2.0.9
+ */
+ @CheckForNull
+ private Boolean useLegacyBuildSystem;
public Boolean getCleanBeforeBuild() {
return cleanBeforeBuild == null ? Boolean.valueOf(true) : cleanBeforeBuild;
@@ -832,6 +837,15 @@ public void setCopyProvisioningProfile(Boolean copyProvisioningProfile) {
this.copyProvisioningProfile = copyProvisioningProfile;
}
+ public Boolean getUseLegacyBuildSystem() {
+ return useLegacyBuildSystem == null ? Boolean.valueOf(false) : useLegacyBuildSystem;
+ }
+
+ @DataBoundSetter
+ public void setUseLegacyBuildSystem(Boolean useLegacyBuildSystem) {
+ this.useLegacyBuildSystem = useLegacyBuildSystem;
+ }
+
// Internally.
public void setSkipBuildStep(Boolean skipBuildStep) {
this.skipBuildStep = skipBuildStep;
@@ -1720,6 +1734,11 @@ else if ( StringUtils.isEmpty(configuration) ) {
}
}
+ if ( BooleanUtils.isTrue(useLegacyBuildSystem) ) {
+ commandLine.add("-UseModernBuildSystem=NO");
+ xcodeReport.append(", useLegacyBuildSystem: YES");
+ }
+
listener.getLogger().println(xcodeReport.toString());
returnCode = launcher.launch().envs(envs).cmds(commandLine).stdout(reportGenerator.getOutputStream()).pwd(projectRoot).join();
if ( BooleanUtils.isNotTrue(allowFailingBuildResults) ) {
diff --git a/src/main/resources/au/com/rayh/XCodeBuilder/config.jelly b/src/main/resources/au/com/rayh/XCodeBuilder/config.jelly
index cae058e6..2dc948b6 100644
--- a/src/main/resources/au/com/rayh/XCodeBuilder/config.jelly
+++ b/src/main/resources/au/com/rayh/XCodeBuilder/config.jelly
@@ -80,6 +80,10 @@
+
+ Instead of "New Builld System" which became available from Xcode 9, we build the application using the legacy build system.
+ There is a possibility that you can handle old projects that cause problems with the new build system.
+ Also, since new output formats of logs are changed in the new build system, it is also useful when you want to handle logs with legacy third party tools.
+
+ Xcode 9から利用可能となった"New Builld System"ではなく、旧来のビルドシステムを使ってアプリケーションのビルドを行います。
+ それによって新しいビルドシステムでは問題が起きる古いプロジェクトを扱う事ができる可能性があります。
+ また、新しいビルドシステムではログの出力フォーマットなどにも変更があるため、ログを旧来のサードパーティ製ツールで扱いたい場合にも便利です。
+