From 4e52d670b5514bf4341bce46925e531810fadfab Mon Sep 17 00:00:00 2001 From: Jeffrey Stedfast Date: Tue, 24 May 2016 13:45:21 -0400 Subject: [PATCH] [msbuild] Fixed logic for building WatchOS storyboards Starting with Xcode 7, storyboards are output as Interface.storyboardc/Interface.plist instead of Interface.plist We can also safely link these storyboards as long as we pass the storyboardc directory to ibtool. --- .../Tasks/IBToolTaskBase.cs | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/msbuild/Xamarin.MacDev.Tasks.Core/Tasks/IBToolTaskBase.cs b/msbuild/Xamarin.MacDev.Tasks.Core/Tasks/IBToolTaskBase.cs index 5996b3bcd84a..d92ae169ddc4 100644 --- a/msbuild/Xamarin.MacDev.Tasks.Core/Tasks/IBToolTaskBase.cs +++ b/msbuild/Xamarin.MacDev.Tasks.Core/Tasks/IBToolTaskBase.cs @@ -73,9 +73,6 @@ string GetBundleRelativeOutputPath (ITaskItem input) switch (Path.GetExtension (bundleName)) { case ".storyboard": - if (IsWatchApp) - return Path.ChangeExtension (bundleName, ".plist"); - return Path.ChangeExtension (bundleName, ".storyboardc"); case ".xib": return Path.ChangeExtension (bundleName, ".nib"); @@ -228,10 +225,10 @@ public override bool Execute () output.SetMetadata ("LogicalName", bundleName); output.SetMetadata ("Optimize", "false"); - if (Path.GetExtension (bundleName) != ".plist") { - // Don't include Watch storyboards that got compiled to plists - compiled.Add (output); - } + if (!string.IsNullOrEmpty (resourceTags)) + output.SetMetadata ("ResourceTags", resourceTags); + + compiled.Add (output); if (UseCompilationDirectory) { // Note: When using --compilation-directory, we need to specify the output path as the parent directory @@ -240,9 +237,6 @@ public override bool Execute () output.SetMetadata ("LogicalName", Path.GetDirectoryName (bundleName)); } - if (!string.IsNullOrEmpty (resourceTags)) - output.SetMetadata ("ResourceTags", resourceTags); - if (!ManifestExists (manifest.ItemSpec) || File.GetLastWriteTime (manifest.ItemSpec) < File.GetLastWriteTime (item.ItemSpec)) { Directory.CreateDirectory (manifestDir); Directory.CreateDirectory (outputDir);