diff --git a/msbuild/Xamarin.Mac.Tasks/Tasks/Mmp.cs b/msbuild/Xamarin.Mac.Tasks/Tasks/Mmp.cs index f61d5a1cc1a1..acec77252685 100644 --- a/msbuild/Xamarin.Mac.Tasks/Tasks/Mmp.cs +++ b/msbuild/Xamarin.Mac.Tasks/Tasks/Mmp.cs @@ -1,5 +1,3 @@ -using System; - namespace Xamarin.Mac.Tasks { public class Mmp : MmpTaskBase diff --git a/msbuild/Xamarin.Mac.Tasks/Xamarin.Mac.Common.targets b/msbuild/Xamarin.Mac.Tasks/Xamarin.Mac.Common.targets index 007e39302ff6..e3f11e24431c 100644 --- a/msbuild/Xamarin.Mac.Tasks/Xamarin.Mac.Common.targets +++ b/msbuild/Xamarin.Mac.Tasks/Xamarin.Mac.Common.targets @@ -487,6 +487,7 @@ Copyright (C) 2014 Xamarin. All rights reserved. TargetFrameworkVersion="$(TargetFrameworkVersion)" UseXamMacFullFramework="$(UseXamMacFullFramework)" Architecture="$(XamMacArch)" + ArchiveSymbols="$(MonoSymbolArchive)" LinkMode="$(LinkMode)" Debug="$(DebugSymbols)" HttpClientHandler="$(HttpClientHandler)" diff --git a/msbuild/Xamarin.MacDev.Tasks.Core/Tasks/ArchiveTaskBase.cs b/msbuild/Xamarin.MacDev.Tasks.Core/Tasks/ArchiveTaskBase.cs index f2c81b4ada07..3f9313286381 100644 --- a/msbuild/Xamarin.MacDev.Tasks.Core/Tasks/ArchiveTaskBase.cs +++ b/msbuild/Xamarin.MacDev.Tasks.Core/Tasks/ArchiveTaskBase.cs @@ -47,6 +47,10 @@ protected string DSYMDir { get { return AppBundleDir.ItemSpec + ".dSYM"; } } + protected string MSYMDir { + get { return AppBundleDir.ItemSpec + ".mSYM"; } + } + protected string XcodeArchivesDir { get { var home = Environment.GetFolderPath (Environment.SpecialFolder.Personal); diff --git a/msbuild/Xamarin.iOS.Tasks.Core/Tasks/ArchiveTaskBase.cs b/msbuild/Xamarin.iOS.Tasks.Core/Tasks/ArchiveTaskBase.cs index b8f7340d2d2c..4258959db2c0 100644 --- a/msbuild/Xamarin.iOS.Tasks.Core/Tasks/ArchiveTaskBase.cs +++ b/msbuild/Xamarin.iOS.Tasks.Core/Tasks/ArchiveTaskBase.cs @@ -76,9 +76,18 @@ void ArchiveAppExtension (ITaskItem appex, string archiveDir) } var dsymDir = appex.ItemSpec + ".dSYM"; - var destDir = Path.Combine (archiveDir, "dSYMs", Path.GetFileName (dsymDir)); - Ditto (dsymDir, destDir); + if (Directory.Exists (dsymDir)) { + var destDir = Path.Combine (archiveDir, "dSYMs", Path.GetFileName (dsymDir)); + Ditto (dsymDir, destDir); + } + + var msymDir = appex.ItemSpec + ".mSYM"; + + if (Directory.Exists (msymDir)) { + var destDir = Path.Combine (archiveDir, "mSYMs", Path.GetFileName (msymDir)); + Ditto (msymDir, destDir); + } } void AddIconPaths (PArray icons, PArray iconFiles, string productsDir) @@ -136,8 +145,16 @@ public override bool Execute () Ditto (AppBundleDir.ItemSpec, appDestDir); // Archive the dSYMs... - var dsymsDestDir = Path.Combine (archiveDir, "dSYMs", Path.GetFileName (DSYMDir)); - Ditto (DSYMDir, dsymsDestDir); + if (Directory.Exists (DSYMDir)) { + var destDir = Path.Combine (archiveDir, "dSYMs", Path.GetFileName (DSYMDir)); + Ditto (DSYMDir, destDir); + } + + // Archive the mSYMs... + if (Directory.Exists (MSYMDir)) { + var destDir = Path.Combine (archiveDir, "mSYMs", Path.GetFileName (MSYMDir)); + Ditto (MSYMDir, destDir); + } // Archive the Bitcode symbol maps var bcSymbolMaps = Directory.GetFiles (Path.GetDirectoryName (DSYMDir), "*.bcsymbolmap"); diff --git a/msbuild/Xamarin.iOS.Tasks.Core/Tasks/MTouchTaskBase.cs b/msbuild/Xamarin.iOS.Tasks.Core/Tasks/MTouchTaskBase.cs index 32653f099e5f..930634cd60a8 100644 --- a/msbuild/Xamarin.iOS.Tasks.Core/Tasks/MTouchTaskBase.cs +++ b/msbuild/Xamarin.iOS.Tasks.Core/Tasks/MTouchTaskBase.cs @@ -67,6 +67,8 @@ public GccOptions () public string Architectures { get; set; } + public string ArchiveSymbols { get; set; } + [Required] public string CompiledEntitlements { get; set; } @@ -339,6 +341,7 @@ protected override string GenerateCommandLineCommands () { var args = new ProcessArgumentBuilder (); TargetArchitecture architectures; + bool msym; if (string.IsNullOrEmpty (Architectures) || !Enum.TryParse (Architectures, out architectures)) architectures = TargetArchitecture.Default; @@ -492,6 +495,9 @@ protected override string GenerateCommandLineCommands () // don't have mtouch generate the dsyms... args.Add ("--dsym=no"); + if (!string.IsNullOrEmpty (ArchiveSymbols) && bool.TryParse (ArchiveSymbols.Trim (), out msym)) + args.Add ("--msym=" + (msym ? "yes" : "no")); + var gcc = new GccOptions (); if (!string.IsNullOrEmpty (ExtraArgs)) { @@ -607,6 +613,7 @@ public override bool Execute () Log.LogTaskProperty ("AppExtensionReferences", AppExtensionReferences); Log.LogTaskProperty ("AppManifest", AppManifest); Log.LogTaskProperty ("Architectures", Architectures); + Log.LogTaskProperty ("ArchiveSymbols", ArchiveSymbols); Log.LogTaskProperty ("BitcodeEnabled", EnableBitcode); Log.LogTaskProperty ("CompiledEntitlements", CompiledEntitlements); Log.LogTaskProperty ("Debug", Debug); diff --git a/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.Common.targets b/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.Common.targets index 39608cec8b21..589a80afee59 100644 --- a/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.Common.targets +++ b/msbuild/Xamarin.iOS.Tasks.Core/Xamarin.iOS.Common.targets @@ -718,6 +718,7 @@ Copyright (C) 2013-2016 Xamarin. All rights reserved. UseThumb="$(MtouchUseThumb)" EnableBitcode="$(MtouchEnableBitcode)" AppExtensionReferences="@(_ResolvedAppExtensionReferences)" + ArchiveSymbols="$(MonoSymbolArchive)" Verbosity="$(MtouchVerbosity)" >