Skip to content
This repository has been archived by the owner on Jun 6, 2019. It is now read-only.

Latest commit

 

History

History
504 lines (370 loc) · 23.5 KB

File metadata and controls

504 lines (370 loc) · 23.5 KB
id title
E52232FD-FEC9-4724-BF61-434C51ED6836
Xamarin Studio 5.9

This release adds support for Apple iOS 9.1/Xcode 7.1, and also addresses some issues with El Capitan compatibility. Other fixes and improvements:

  • Fixed: During debugging, window asks "Where is iOS Simulator?"
  • Fixed: Occasional error when Publishing to Google Play
  • Fixed: Codesign fails with "invalid resource specification rule(s)" when building Classic API projects
  • Fixed: Unable to create ipa file and Xamarin Studio shows publishing failed
  • Fixed: Unable to execute unittests/apps on device with Xcode7 since the build fails by “cannot find code object on disk codesign exited with code 1”
  • Fixed: Component page not loading on El Capitan
  • Fixed: Occasional error when adding components to a project (message “Unable to connect to the component store.”)
  • Fixed: “Android M/MNC” does not appear in “Supported Android versions” list
  • Fixed: Apps eventually losing connection to the IDE after an indeterminate amount of time when running on Android M device
  • Improved: The New Project dialog now selects by default the last project template used the last time a project was created.
  • Added support for iOS 9 and Xcode 7
  • Added support for the iPhone 6s and 6s+ simulators
  • Added support for Android Marshmallow
  • Fixed: [OSX El Capitan] File Open command crashes Xamarin Studio
  • Fixed: [OSX El Capitan] Error in iOS designer Properties window when dropping control to an Storyboard
  • Fixed: Updates to Xamarin Studio corrupt the .app on Mac
  • Fixed: Hang in Xamarin Studio when trying to add layout file to Android app
  • Fixed: Issue when building IPAs in classic iOS projects
  • Improved: The New Project dialog now selects by default the last project type that was created
  • Improved: A warning message is now shown when using refactoring operations since C# 6.0 is not yet fully supported
  • Improved: Added support for projects created in Visual Studio 2015
  • Fixed: SDK Tools v24.3.4 breaks the Android Designer
  • Fixed: Error creating iPhone Web View Classic project
  • Fixed: Error on Publishing to Google Play (Task Cancelled exception)
  • Fixed: Unable to create Xamarin.Forms project when Android support is disabled
  • Fixed: Unable to reference main project classes in Unit Tests
  • Fixed: Fixed GTK log spew that can potentially cause IDE slowness
  • Fixed: Archives Doesn't show up in the archives view
  • Fixed: Expressions in the Watch window are cleared each time debugging is stopped
  • Fixed: Adding new WatchKit app extension for iOS does not work on big solutions (more than one iOS project)
  • Fixed: SIGSEGV when attempting to "Start profiling" from Xamarin Studio on device
  • Fixed: Archiving fails sometimes intermittantly
  • Fixed: Unable to type some letters into global search bar
  • Fixed: IPA Options panel not visible in Project Options
  • Fixed: Position of breakpoint changed on debugging the android application
  • Fixed: Google publication error messages not readable - dialog too small
  • Fixed: Crash when signing Android app
  • Fixed: Crash when launching Android Player

Improves compatibility with the latest Android SDK Build-tools 23.0.0_rc1.

General

  • Improved: Nuget 2.8.5 support
  • Improved: Formatting of nuget messages in Status Bar
  • Improved: Use native menu for Test output context menu
  • Improved: The toolbar is now smaller in height on Mavericks
  • Improved: Add designer support for Android SDK 24.3
  • Fixed: Debug over WiFi setting not saved in iOS Build settings
  • Fixed: Focus issue in when searching in the SearchBar
  • Fixed: Ability to expand and collapse the detail of the Exception dialog
  • Fixed: Changes to .XIB files don't result in a project build
  • Fixed: Crash in Toolbar
  • Fixed: Duplicate 'Enable incremental builds' options
  • Fixed: 'Set As StartUp Project'' option is missing for device builds
  • Fixed: New Project dialog allows a Xamarin.Forms app to be created with no platforms selected
  • Fixed: Unable to launch emulator when additional arguments were defined
  • Fixed: Clicking Previous on 'Configure your new project' does not work for SpriteKit Game
  • Fixed: New iOS Empty project template does not instantiate the Window
  • Fixed: Uncaught exceptions from unit tests can bring down the test runner
  • Fixed: Entering fullscreen mode in Xamarin Studio can crash on Mac OS X 10.10.3

Publishing

  • Fixed: Android Publishing fails with 'Argument is out of range' Exception
  • Fixed: Cannot publish iOS app for Ad-Hoc distribution
  • Fixed: Unable to upload to AppStore due to iTuneMetadata.plist
  • Fixed: iTunesMetadata.plist in IPA causes problems for AppStore distribution
  • Fixed: 'Delete All Archives' enabled when it should not be
  • Fixed: 'View Archive' option appearing in incorrect locations

The iOS Publishing Workflow has been fixed to create proper IPA files suitable for uploading to the AppStore. The Publishing Workflow wizard has also been fixed to properly construct the list of Signing Identities and Provisioning Profiles that can be used to re-sign the app bundle.

New Project Dialog

The window for creating new projects has been redesigned in this release. The new window has been designed as a wizard that allows creating a project in several steps: template selection, platform-specific options and generic project settings.

Template Selection

The new window presents a new category hierarchy that makes it easier to find specific templates. Template categories are organized in two columns. The first column allows selecting the platform (iOS, Android, Mac or cross-platform) and also the kind of project (app, library or test). The second column shows the list of templates.

When a template is selected, a badge with the language name is shown in the template row. If the template supports more than one language, the badge allows selecting the language to be used for the new project:

The right side of the window shows an image and a description of the template.

iOS Project Options

Instead of having different sets of project templates for iPhone, iPad and Universal, the new window presents a single set of templates which can be used for creating projects for any device. The target device (or devices) can be selected in a configuration page of the project creation wizard:

The wizard also allows selecting the target iOS version. Notice that the target version may also have an effect on the new project. For example if iOS 8 is selected as the minimum target, the code generated for the new project will use the new iOS 8 template using size classes. This allows to have only one storyboard instead of our previous two storyboard (iPhone/iPad).

WatchKit Project Options

The new WatchKit wizard allows you to select the parent iOS project that will reference the two WatchKit templates created for you. Everything is now done automatically, from the references between the projects to the bundle identifiers fixed for you.

You can also choose if you want to support Glance or Notification from the wizard. That will generate the storyboard views as well as the controller files for the selected scenes.

Android Project Options

The Android wizard offers several configuration options, such as the target version and the theme, and it also allows adding a predefined set of commonly used components.

Xamarin.Forms Project Options

The Forms (or Cross-platform) wizard allows selecting the platforms we want to support, as well as the kind of library to be used for sharing code.

Project Creation

The final page of the wizard allows entering the name of the project and the solution, and its location on the hard disk. There are also options for initializing a local git repository for the project. The Preview pane at the right shows how files will be organized on disk after creating the project.

Publishing Workflow

This Xamarin Studio Release includes a new integrated workflow for publishing iOS, Android and Mac apps.

The main goal of this new workflow is to provide a simple, straightforward, and consistent way to organize and publish app releases to the different app stores, with support for ad-hoc and enterprise packages.

Another goal is to reduce the number of build configurations that users have to manage by re-signing binaries instead of having to use a build configuration with different signing options. This means that the AdHoc and AppStore iOS configurations are not required anymore.

This new feature replaces the old iOS specific Archives view and the Publish to TestFlight command.

Creating an Archive

The process of publishing an app starts by running the “Archive for Publishing” command on a project:

This command is now available for iOS, Android and Mac projects. There is also an “Archive All” command in the context menu of the solution, which can be used to create archives for all projects of the solution. For this command to work, you must select a Release configuration.

The command will build the project and will create an archive, which will be shown in the new Archives View.

Archives View

The Archives view shows all archives that have been created, grouped by solution. By default this view only shows the currently open solution. If you want to see all solutions that have archives, click on the “Show all archives” option.

The view can be opened by right-clicking on a project or solution and selecting the “View Archives” option, or using the same command from the Build menu in the main menu bar.

When a solution is selected, the view shows a list of all archives created for the solution, with information about the target platform, version, creation date. There is also an editable comment column.

When an archive is selected, the bottom section of the view shows information about the archive, and then the “Sign and Distribute” button can be used to publish the package.

The context menu of the archives list can also be used to distribute an archive, or to delete it.

Publishing an Archive




An archive can be published by selecting it in the archives list and clicking on the “Sign and Distribute” command. You can also double-click on the archive.

The steps and information required for publishing a package depends on the target platform and channel, but in general in process involves the steps described in the next sections.

Channel Selection

The following distribution channels are supported for iOS:

  • AppStore: generates a package.
  • AdHoc: generates an IPA.
  • Enterprise: generates an IPA.

Android distribution channels:

  • Google Play: generates a package and uploads it to a Google Play account.
  • AdHoc: generates an APK.

Mac distribution channels:

  • AppStore: generates an AppStore package.
  • Mac app bundle: generates a .app bundle.
  • Mac installer package: generates a .pkg installer.

Package Signing

The wizard will show a list of signatures or profiles that can be used to sign the package for the selected distribution channel (notice that not all signatures are valid for all channels).

If the package is already signed, there will be an option for keeping the current signature.

For Android packages there is an option to create a new key, or add an existing key to the Xamarin Studio key storage. Keys can also be managed in the Android Signing Keys options panel in the Xamarin Studio preferences.

Channel parameters

Some distribution channels will require additional information.

Google Play distribution requires a Google Play account. If a Google account has not yet been registered, the wizard will ask for the account Id and secret, and this information will be stored so that it can be reused when distributing other apps. Accounts can be managed at any time in the Google Play Accounts options panel, in the Xamarin Studio Preferences.

It is also possible to select the track where to upload the package (Alpha, Beta, Rollout or Production).

Package publication

Some channels (such as Google Play) have support for package uploading to registered accounts, so in this step the package will be generated and uploaded.

For channels that don’t have this possibility, the package will be generated and then saved to disk. The user can then manually upload the package.

Test Cloud

  • Standalone UITest project templates provided for Android, iOS and Cross-Platform.
  • Android, iOS, Xamarin.Forms and Cross-Platform project templates now include a UITest project with a UITest that tests the main application.
  • UITest projects can be run locally with the iOS and Android device or simulator with the test results shows in the Unit Tests window.
  • UITests will run with the device or simulator (Android or iOS) selected in Xamarin Studio.
  • Run in Test Cloud menu added to the Unit Tests window to allow UITests to be uploaded to Test Cloud.

Improved Debugger Experience

New Debugger Visualizers

This release includes a new UI for quickly visualizing the value of a variable, field or property while debugging. The new Preview popup is supported for some specific data structures: strings, points, sizes, rectangles, colors, map locations, images, bézier curves, among others.

For example, this is how a color can be visualized:

When moving the mouse near the field name, a new "preview" button is shown. When clicking on it, the Preview popup is shown:

Those are the visualizers for image and location:

IEnumerable Expansion

It is now possible to see the values returned by objects that implement IEnumerable. A new IEnumerator node is shown for those objects:

When this node is expanded, the enumerator is evaluated and the returned values are shown in the tree:

Xamarin.Android

This release includes new build options for Xamarin.Android 5.1 features:

  • AOT Support (Ahead Of Time compilation) to reduce JIT startup overheads.
  • Multi-Dex Support: Multi-Dex support enables use of new Android SDK tools ("jack" and "jill") to bypass the historical 64k method limit present within the .dex file format.
  • Arm64 Support: Xamarin.Android 5.1 adds support for targeting 64-bit Android platforms such as the Nexus 9.
  • ProGuard Support: ProGuard is an Android SDK tool which can be used to link and obfuscate Java code. The primary reason to provide ProGuard support is to permit smaller applications, so that gigantic libraries such as Google Play Services can be reduced in size.

Text Editor

Partial C# 6 Support

Mono 4.0 includes support for C# 6, and although Xamarin Studio doesn't yet fully support code completion and refactoring operations for all C# 6 constructs, it will now work for some of them.

Preview of editor settings changes

When changing the configuration of the text editor in global preferences (such as the font, color, visible markers, etc), the changes will be immediately visible. This makes it easier to see what's the effect of some settings in the look of the editor.

Native Mac toolbar

Xamarin Studio on Mac now has a toolbar with a native look and behavior. On Yosemite, the new toolbar blends with the title bar, thus providing more vertical space in the work area.

NuGet Support

  • The Packages folder is now always visible in Solution pad.
  • Target Framework changes are now detected on project reload. The iOS Classic to iOS Unified migration tool changes the project’s target framework in the project file. Xamarin Studio will now detect this has been changed and the NuGet packages will be checked for compatibility with the new target framework.
  • Updated to NuGet 2.8.3: it allows NuGet packages that explicitly target NuGet 2.8.3 or use the new ASP.NET Core target frameworks to be installed into a project, such as xunit.

Configurable Components Directory

A solution can now specify a directory where Xamarin Components will be extracted to before being referenced by a project. This allows multiple solutions to use the same directory and prevents the assembly references from being modified when a project is opened within the context different solutions.

To configure the components directory a components.config file should be created, as shown below.


<components>
    <config>
       <add key="cachePath" value="..\Components"></add>
   </config>
</components>

When a solution is opened Xamarin Studio will check for a components.config file in several locations based on the solution's directory. The full set of locations checked is as follows, assuming the solution directory is /a/b/c

  • /a/b/c/.components/components.config
  • /a/b/c/components.config
  • /a/b/components.config
  • /a/components.config
  • /components.config
  • ~/Library/Preferences/Xamarin/Components/components.config
  • On Windows: %AppData%\Xamarin\Components\components.config

If the components.config file exists then Xamarin Studio will use the cachePath to determine the Components directory that the solution should use. The path specified can be a full path or a relative path. If it is a relative path then it is relative to the directory containing the components.config file.

Sketches

New View Options

  • There is a new "Sketch" layout available in the View menu, which includes the new Sketch Properties pad. The pad can also be toggled from View → Pads → Sketch Properties.
  • You can toggle the display of the Console Output in the sketch timeline with View → Sketches → Console Output.
  • You can restore all CaptureValue visualizers for a sketch with View → Sketches → Restore CaptureValue Visualizers.

Resource Management UI

In Xamarin Studio 5.7, we introduced the ability to add resources to your sketch files by creating a folder called "{yoursketch}.sketchcs.Resources". Now, this can all be managed from within Xamarin Studio.

The Sketch Properties pad shows the contents of your sketch's resources folder. You can add and remove resources right from the pad by right-clicking the Resources folder, or by dragging and dropping files into the folder.

If your sketch is in a project, you can also manage your resources in the solution explorer, by expanding the sketch file node to reveal the resources folder node within it.

Be aware that if you delete a sketch in Xamarin Studio, the resources folder will also be deleted.

On iOS and Mac, resources are exposed via NSBundle.MainBundle. However, keep in mind that some Apple APIs cache resources. So, if you access an image using NSImage.ImageNamed(resourceName), and then modify the image, you won't see the changes in the sketch, because NSImage caches by name. To work around this, use NSBundle.MainBundle.ImageForResource(resourceName), or new NSImage(GetResourcePath(resourceName)).

Improved Security

If you downloaded a sketch from the internet, we will not execute it until you approve it.

Xamarin.Forms Sketches Upgraded

Xamarin.Forms 1.3.2 contains many bugfixes. Your Android and iOS Xamarin.Forms sketches can now use new features like element styles.

Other Changes

When a Mac sketch file is open, a dock icon now appears from the agent app (the process that actually evaluates sketch code). This makes it easy to bring the RootWindow back to the foreground, or quit the process if it's causing problems.

iOS Designer

  • Fixed a crash caused by clicking on the 'Events' tab of a custom control when the corresponding source code for that class is missing
  • The labels have been restored to all the properties which were missing them
  • Improved support for unwind segues in the property panel
  • Improved the initial loading performance of large storyboards
  • Fixed more cases where incorrect resize handles were showing
  • Improved rendering accuracy when using NavigationBar or TabBar simulated metrics
  • WKInterfaceSwitch and WKInterfaceSlider will now have default 'click' actions in the Events panel
  • Improved property panel support for the 'Storyboard ID', 'Restoration ID' and 'Use storybosard id as restoration id' properties
  • The 'Identity' panel shows up for Custom NSObjects again
  • Many minor performance improvements for common situations like opening a storyboard, syncing the generated code and re-rendering after changing a property.
  • Improved rendering accuracy for NSNotificationCategory
  • It is now possible to use drag and drop on the design surface to re-order UITableViewCells

Other fixes and improvements

  • The Welcome Page now shows a Start Trial button when a trial is available.
  • The Help menu now has links to the release notes of every installed Xamarin product.
  • Updated Japanese translation.