Xamarin Studio 5.7
- Fixed one cause of the designer not reliably starting the first time a storyboard is opened.
- The default memory settings for the rendering process have been updated. Addresses #26026.
- Added a way to adjust the memory settings for the rendering process. Please refer to the FAQ article for more information.
- Deleting an event handler from the 'Events' section of the property panel now removes it from the UI immediately
- We are compatible with the latest release of Xcode 6.2
- Fixed a renderer issue with UIToolBar which could cause ViewControllers to not appear on the design surface
- Fixed an issue with deploying to simulator
- Fixed an issue with Xcode sync that added incorrect using statement for Foundation when using a Unified template
- Fixed an issue where debug deployment attempts from XS will crash if the project has no TargetFrameworkVersion element in the csproj file
- Fixed an issue with the latest Xamarin Android Player not updating the list of known emulators
- Fixed an issue with intellisense not recognizing XAML and .g.cs items
- Fixed an issue in unified full profile projects that allowed framework versions < 4.5
- Clean projects as part of migration step to prevent XamMac and Xamarin.Mac mismatches
- Xamarin Studio on Windows now uses the Taskbar icon to display global task progress.
- Improved organization of global preferences. The C# options for source analysis have been moved from the Soruce Code section to a node below Text Editor / Source Analysis.
- Improved the edit reference dialog. The tab for selecting an assembly now shows a list of recently selected assemblies instead of the file selector. There is now a Browse button which can be used to select new assemblies.
- The startup project name is now stored in the user solution settings file instead of the .sln file.
- Find in Files command is now much faster and uses less memory when there are many hits.
- Application output (and other output pads) now have a Search command.
Android Package Signing - Property Page
Package signing properties for an Android application project can now be set without having to manually edit the .csproj. This is only for Release configurations, as the “Create Android Package” and “Publish Android Application” commands are only available for Release configs.
Android Designer Improvements
- Auto-completion support for layout XML files.
- Preview support for some XML layout attributes.
- Rendering support Wear round.
- Fixed crash when opening a lot of layout files.
- Fix “jumping” visual glitches when selecting items.
- Aapt errors are now correctly handled and double-clicking them will bring you to the right file/line combination
- Version chooser will now show values between manifest's minimum API level and target API level
Other Android fixes and improvements
- Android Apps fail to launch on Lollipop devices when in Release mode with Shared Runtime/FastDevelopment on.
- Debug deployment attempts of projects with no Target Framework set will crash. You may experience this issue if your Target Framework is set to either v2.2 or v2.3. The workaround is to set the Target Framework to a different value for debug builds.
- Building Classic API projects for the simulator fails if you are not properly provisioned for iOS code-signing. The workaround is to enable the MSBuild build engine for the project in Project Options -> General. #25841
Classic to Unified API code migration tool
The Project / Migrate to Xamarin.iOS and Xamarin.Mac Unified API menu item now also (partially) migrates project source code to the new API. The following types of changes will be made to the project source code:
- Statements such as ‘using MonoTouch.Foundation;’ will be modified to ‘using Foundation;’.
- Usage of System.Drawing types (RectangleF, PointF, and SizeF) will be migrated to their respective CoreGraphics equivalents (CGRect, CGPoint, and CGSize).
- Method overrides on subclasses of MonoTouch classes will be migrated to match their new prototypes.
- CFRunLoop constants will be migrated to their new names.
- Calls to DismissModalViewControllerAnimated() will be updated to call DismissModalViewController().
- Calls to PopViewControllerAnimated() will be updated to call PopViewController().
- Calls to CGContext.SetShadowWithColor() will be updated to call CGContext.SetShadow().
- Calls to CGContext.SetRGBFillColor() will be updated to call CGContext.SetFillColor().
- Fixed archiving of iOS apps with App Extensions (dSYMs and the archived-expanded-entitlements.xcent files are both archived now).
- iOS Simulator configurations now default to i386-only for Unified API projects rather than i386+x86_64 to improve build times.
- Added support for choosing vector images (.pdf’s) for Image Assets.
- The Info.plist LaunchImage editor now defaults to requesting full-screen images for iOS >= 7.0 instead of the image sizes with room for the status bar.
- When syncing back from Xcode, *.build directories are now ignored.
- Fixed Asset Catalog compilation for iOS Library Projects w/o an Info.plist
- Fixed archiving to pick the correct icon to use in the Archive Organizer window.
- Fixed the Asset Catalog editor to properly serialize the json for image sizes. (bug #24164)
- Fixed the Info.plist scheme for NSExtension (for use with the Source tab of the Info.plist editor).
- Launch file dropdown in project properties is now alphabetically sorted.
- Application bundle names and the native executable names now use the AssemblyName value (from the .csproj file) as opposed to a sanitized version of the MSBuildProjectName value. This means that if the AssemblyName has periods, then so will the application bundle directory name and the native executable name within the app bundle. (bug #1532)
iOS Designer Improvements
- Full support for Xamarin.iOS Unified projects.
- SCNView, UIScreenEdgePanGestureRecognizer, UIVisualEffectView, UISplitViewController are all fully supported now.
- Significantly improved support for UICollectionView and UICollectionViewLayout.
- Added support for aspect ratio based constraints.
- UITabBarController will no longer randomly disappear when creating new Tab segues.
- Removed the ability to delete the NavigationBar from a UINavigationController. iOS will crash at runtime if you try this.
- Constraints can now be exposed as an Outlet or custom class.
- Fixed an issue changing the style of a UITableViewCell when constraints are disabled.
- Fixed several issues where the property panel would write incorrect Xml to the storyboard.
- Custom fonts are fully supported by the design surface and font picker.
- Fixed a case where old assemblies were sometimes used to render custom controls.
- Embed segues can now be created from Container Views.
- Fixed an rare issue where views with zero width or zero height could break the designer.
- Fixed a crash when deleting the segments inside a Segmented Control.
- Custom properties of type 'float' and 'double' should work now.
- Elements inside a UIScrollView will no longer change their position every time we render the storyboard.
- Added support for UITextAlignment.Justified and UITextAlignment.Natural
- Fixed an exception when right clicking on a Size constraint
- The localization ID for UIView/UIViewController is displayed in the property panel now.
- Improved support for UIViewController.PreferredStatusBarStyle.
Full framework support for Xamarin.Mac
Unified API applications now support building against full desktop .NET frameworks in addition to the default Xamarin.Mac mobile framework. Full frameworks/profiles are completely unsupported by Xamarin, but this option now exists to help legacy applications port to the mobile framework while still taking advantage of all the new features in Unified API.
The target framework can be changed from Xamarin.Mac mobile to full desktop .NET under the regular Project Options → Build → General → Target Framework UI.
Other Mac fixes and improvements
- Fixed Info.plist editor to allow setting storyboard files as the Main Interface (bug #23997)
- Added UI for using the new ref-counting mechanism in the Mac Build Settings.
Note that Sketches is still considered an early preview. It is by no means complete or necessarily stable, even though we have made scores of stability and feature improvements since the Evolve release. Sketches will be an ongoing preview bundled within Xamarin Studio for many months to come.
Many new quick look visualizations are supported:
- Mac/iOS: CGPoint, CGRect, CGSize, CGPath, NSBezierPath, NSFont, CGFont, NSColor, CGColor, NSUrl, NSAttributedString, NSGradient, CGGradient, CGLineCap, CGLineJoin, CGImage, NSImage, NSView, NSButtonType, CIColor, CIImage, CICrop, UIImage, UIView
- System.Drawing: Point, PointF, Size, SizeF, Rectangle, RectangleF, Color, Image, Brush, Font, Pen
- Android: Point, PointF, Rect, RectF
- BCL: Uri, enums
Resource bundling is now supported. Resources can be accessed in iOS and Mac directly from the main NSBundle (e.g. direct use of say NSImage.ImageNamed is now supported).
There is not yet a UI available for embedding resources, however if a Sketch has the name MySketch.sketchcs, then you can create a directory next to the file called MySketch.sketchcs.Resources, and any files in that directory will be available within the sketch. A general purpose API for all platforms is GetResourcePath(string resourceName). This will return a full path to a resource, and is the only way to access a named resource on Android currently. NSBundle.MainBundle can be used as expected on Mac and iOS.
File format changed to Markdown
The file format for a Sketch is now Markdown. While there is no immediate benefit to this, we will be taking advantage of Markdown features in the future and wanted to stabilize sooner than later on the basic file format.
Metadata (e.g. resource information) is stored within an XML code fence, followed by C# or F# in respective code fences. While arbitrary Markdown content outside of fences should be preserved, it will not be displayed inside Xamarin Studio. We still recommend only editing Sketch files in Xamarin Studio.
Classic iOS API not supported
The Classic iOS API is no longer supported. Sketches will focus only on the Xamarin iOS and Mac Unified API going forward as Apple will be phasing out 32-bit iOS applications completely soon. Xamarin.Forms sketches are now available under the Unified iOS API.
Other fixes and improvements
- Android support is much more stable: we fixed a networking issue that was very apparent under Android while much less so under Mac and iOS.
- Mac support now has a RootWindow property defined for exploring live Cocoa UI.
- Multiple Sketches with the same platform target (e.g. iOS) may now be opened at the same time within Xamarin Studio
- .sketchcs and .sketchfs files are now registered to open with Xamarin Studio
Many other bug fixes and stability improvements have been introduced since the Xamarin Studio 5.6 Evolve preview.
- Fixed crash when opening a project that uses an incompatible Subversion Working Copy format.
- Several optimization and fixes in the Version Control status view.
- Version Control Log view now displays a default icon for emails which aren’t linked on Gravatar.
- Fixed: Xamarin Studio crashes when viewing SVN log on Mac OS.X 10.10.
- Menu options for add-in NuGet packages have been renamed to make them easier to discover, so for example instead of "Add Package" we now have "Add NuGet Package".
- Error and warning icons applied to packages are now more consistent with other icons in the solution pad.
- Fixed: Xamarin Studio doesn't recognize that files exist after NuGet Update.
- Fixed: Update all Packages in Solution not Updating Dependencies.
- Fixed: Unable to add NuGet package again after removing it.
- Profiling works for F# apps
- Integration with Xamarin Profiler has been added for iOS and Android applications. To start profiling an application, you can use either the Run menu or Right click on a project and select Start Profiling. You can also launch the profile as a standalone application from Tools -> Launch Profiler.
- New options to enable developer instrumentation have been added into Android and iOS projects’ Build Options. These are not retroactive and you will be asked to enable them if the project’s build configuration doesn’t have them when profiling is requested for it.
- Hex debugger visualizer now shows a wider range of characters.
- Fixed: Cannot use typeof operator with type parameters.
- Fixed: New breakpoint dialog shows Unix filepath example on Windows.
- Fixed: Debugger reports a 'System.NotSupportedException' exception when using Set Next Statement command.
- Fixed: Variable called dynamic confuses debugger.
Source Code Editing
- Fixed: Unable to remove custom code template.
- Fixed: Semicolon is put at the end of line instead at the position of cursor.
- Fixed: Sort usings yields strange result
- Fixed: Navigate Forward/Backward may cause a crash when used in rapid succession.
- Fixed: Editor tooltips overlay new windows.
- Fixed: Completion is not working for 'is' statement.
- Fixed: Rename refactoring command fails with InvalidCastException on generic class name after 'new'.
- Fixed: Xamarin Studio not recognizing reflection extensions in PCL when Microsoft.Net.Http is present.
- Fixed: #define code showing as comments if symbol is not declared in build options.
- Fixed: Folding markers not correctly shown when the columns for #region and #endregion differ.
- Fixed: C# string property in object initializer autocompletes to #if.
- Fixed: Cannot open .cshtml files.
Other fixes and improvements
- Fixed: After the Update was installed, Windows did a forced restart.
- Fixed delay when opening the project context menu.
- Fixed: Deleting a folder in the solution pad does not result in the folder being removed from the tree.
- Fixed occasional crash when deleting a solution folder while the properties pad is visible.
- Fixed: Copying info in the test output window results in wrong text being copied.
- Fixed: Xamarin Studio throws exception on doing Export Policy to specific file.
- Fixed exception while creating VBNet->NUnit Library Project.
- Fixed: Cannot change font of the Test Results pad (e.g. to monospace font).
- Fixed: Nunit runner has trouble when class with TestFixture is defined without a namespace.
- Fixed: Time summary not correctly shown in Unit Tests pad.
- Fixed T4 TextTransformation interface issue with Initialize.
- Fixed: T4 ignores output directive if PreprocessTemplate() is used.
- Fixed: 'Load previous solution on startup' option breaks loading projects from the command line.
- Fixed: Removing reference to a shared project from project references causes UI freeze.
- Fixed: Enabling MSBuild Support in a Xamarin.Forms Shared Project doesn't build.
- Fixed: [Windows] Xamarin Studio Updater window displays wrong number of installing updates.
- Fixed: Go to Definition opens the assembly browser, but does not show the correct type.
- Fixed: File appears twice when searching.
- Fixed: "Add Package Source" popup window should remain at top.