Stable Release: XamarinVS 3.11.1443, iOS 9.0 upstream release

BrendanZagaeskiBrendanZagaeski USForum Administrator, Xamarin Team Xamurai

Windows

  • Xamarin.VisualStudio_3.11.1443.msi (39031d3)

Mac Build Host

  • monotouch-9.0.1.18.pkg (d230615)
  • monotouch-9.0.1.20.pkg (d8e9592) Hotfix

Reason for release: Updated SDK bindings and compatibility support for upstream iOS 9.0 and Xcode 7.0 Final versions.

Release notes: http://developer.xamarin.com/releases/vs/xamarin.vs_3/xamarin.vs_3.11/

Date published: See https://releases.xamarin.com/.

NOTE: This is a Xamarin.iOS feature release that contains a large number of changes compared to the previous Stable version. In addition to support for iOS 9 and Xcode 7, it contains larger changes to the existing parts of Xamarin.iOS than any of the recent smaller service releases. On top of that, as with any Xamarin version that is published in response to an upstream release, these builds have primarily been tested against preview versions of the upstream components. For these reasons the stability of this Xamarin.iOS 9 release is less certain than "Cycle" feature releases and service releases. It has passed the minimum threshold for being accepted to the Stable channel, but it has not undergone the more thorough and diverse user feedback process that Xamarin hopes to achieve via the upcoming "release candidate" for the Cycle 6 Stable feature release.

Previous versions, downgrading

You can downgrade back to the previous Stable version by manually reinstalling each old package. See the KB article on downgrading. If you have a Trial or Starter subscription (or simply would prefer an email with all the installer links you need), feel free to contact hello@xamarin.com to request the older versions.

Older Mono package versions are not currently listed on https://store.xamarin.com/account/my/subscription/downloads. The Mono package for the previous Stable version ("Service Release 4") is available here:

Guidelines for this thread

  1. This first post will be updated regularly.

  2. The goal of this thread is to help answer "what might break if I update to this release?"

  3. If you find a new problem that is specific to this version:

    a. If you can share some specific error messages or can reproduce the problem consistently, please email the information you have so far to contact+xamarinios9.0@xamarin.com.

    b. If you only have a general description of the problem, you can post it directly on this forum thread so that hopefully a member of the Xamarin team or another user will recognize it and be able to help fill in some details.

New known issues in this release, with more common or severe issues near the top

Many of these issues are fixed in the follow-up "service release" now available on the Beta updater channel.

  • Bug 33124 - [iOS] Certain libraries that were compiled by the Microsoft C# 5 compiler (VS 2013) cause "error MT2001: Could not link assemblies. Reason: Can't not find the nested type" during the linking phase of the Xamarin.iOS build process. (For example, any library compiled by VS 2013 that uses an async lambda within a constructor will hit this problem.) Unfortunately this problem affects several existing NuGet packages and Components. Now hotfixed in the Stable channel.

  • Non-public Bug 34163 - [XamarinVS] [iOS] Error similar to: "System.IO.FileNotFoundException: Could not find file "/Users/macuser/Library/Caches/Xamarin/mtbs/builds/Unified.ClassLibrary.iOS1/242ab4564ac5785ce41fda606805edad/obj/Debug/ibtool/IPhoneViewController1.nib"" or "System.IO.FileNotFoundException: Could not find file "/Users/macuser/Library/Caches/Xamarin/mtbs/builds/Unified.ClassLibrary.iOS1/242ab4564ac5785ce41fda606805edad/obj/Debug/optimized/button_black_135x40.png"" when class library assembly name includes dot "." characters. Now fixed in the Beta channel. (Old temporary workaround: Change "Project properties -> Application -> Assembly name" so that it includes no "." characters. Change the project name to match the modified assembly name.)

  • Non-public Bug 34173 - [iOS] [Designer] Storyboard fails to load in designer with "There was a problem parsing the XML" for storyboards that contain a <constraint> element with an attribute of multiplier="0". Workarounds: Open the storyboard in Xcode Interface Builder and re-save it from there. Or edit the storyboard in a text editor and manually remove the multiplier="0" attribute.

  • Non-public bug 34202 - [XamarinVS] [iOS] Error similar to: "The OutputPath property is not set for project 'iOSClassLibrary1.csproj'. Please check to make sure that you have specified a valid combination of Configuration and Platform for this project. Configuration='Debug' Platform='iPhone'." after adding an iOS class library to a solution where an iOS app project is set as the startup project. Now fixed in the Beta channel. (Old temporary workaround: Open the iOS class library .csproj in a text editor and delete all occurrences of the following 2 strings: "|$(Platform)", "|AnyCPU".)

  • Non-public Bug 34144 - [XamarinVS] [iOS] Redeploying an app that references a library project without first cleaning the library project causes all resources to be replaced with 0-byte files if any of the resource files was modified. Now fixed in the Beta channel. (Old partial workaround: Clean the library project before redeploying the app.)

  • Bug 34220 - [iOS] The new iOS 9 ReplayKit APIs currently hit an error: "Cannot cast from source type to destination type". Now fixed in the Beta channel.

  • Bug 34205 - [iOS] Changes to WatchKit app storyboards do not appear on the simulator after the first deployment. Workaround: Manually delete the app from the iPhone simulator before re-deploying.

  • Bug 34186 - [iOS] "MTOUCH: error MT5212: Native linking failed, duplicate symbol" and "Duplicate symbol in: ... libmonotouch-sgen.a" errors appear if using the -all_load linker flag under "Additional mtouch arguments". Now fixed in the Beta channel. (Old partial workaround: remove the -all_load liker flag.)

  • Non-public Bug 34198 - [XamarinVS] [iOS] Visual Studio sometimes disallows loading Xamarin projects with: "An equivalent project (a project with the same global properties and tools version) is already present in the project collection". Temporary workaround: Attempt to load the project again, or if that still fails quit and reopen Visual Studio and then reload the project.

  • Non-public Bug 33706 - [iOS] Storyboards produce many warnings similar to: "/Applications/Xcode-beta.app/Contents/Developer/usr/bin/ibtool: 2015-09-04 18:01:03.651 Interface Builder Cocoa Touch Tool[72838:13678534] CoreUI: CUICatalog: couldn't get 'kMGArtworkGraphicsFeatureSetClass' from MGCopyAnswer got '{ (CollectionView)". These warnings can be ignored for now. The problem is that Xamarin is currently surfacing diagnostic messages from ibtool that are not surfaced by the default Xcode build process. Now fixed in the Beta channel.

  • Non-public Bug 33819 - [XamarinVS] [iOS] Attempting to stop a WatchKit app in Glance mode does not stop the app. Workaround: Kill the app manually.

  • Non-public Bug 33695 - [iOS] Attempting to install a new version of an application on device using a different provisioning profile from the original install is not supported by Xcode 7. Unfortunately, the corresponding error message produced by Xamarin does not describe the problem clearly: "error MT1006: Could not install the application ... on the device ... Application Verification Failed Error (error: 0xe800003a)." This error message will be improved in a future release. Workaround: Manually uninstall the app from the device and try installing it again.

  • Non-public Bug 33880 - [Upstream] [iOS] Attempting to stop a WatchKit app in Notification mode does not stop the app. (The same problem occurs with an Objective-C or Swift app deployed from Xcode, so this is an upstream issue.) Workaround: Kill the app manually.

  • Non-public Bug 33888 - [XamarinVS] [iOS] VS 2010 only. Opening a second Xamarin.iOS solution when already connected to the build host causes VS to disconnect from the build host. The user must refresh the connection manually via the "Refresh build server info" button.

Important changes introduced by Xcode 7 and iOS 9

See also: https://developer.xamarin.com/guides/ios/platform_features/introduction_to_ios9/troubleshooting/ and http://developer.xamarin.com/guides/ios/platform_features/ios9

  • [iOS] [Designer] The Xamarin iOS designer does not yet support Xcode 7 features. Storyboards will fail to load in designer with "There was a problem parsing the XML" when attempting to use new iOS 9 (Xcode 7) designer elements such as StackView. iOS designer support for Xcode 7 features is targeted for the upcoming Cycle 6 feature release. (The preview version of Cycle 6 is currently available in the Alpha channel.) Partial workaround for Xamarin Studio: Right-click the storyboard and choose "Open With -> Xcode Interface Builder".

  • [Upstream change] [iOS] Xcode 7 produces new warnings similar to: "warning MT5203: Native linking warning: warning: object file ... was built for newer iOS version (8.1) than being linked (8.0)". This is a new warning introduced by Xcode 7 to help app developers avoid potential problems that were silently allowed in Xcode 6. It affects Objective-C and Swift apps too. The warning message is accurate. For example, if you want to set the minimum version of your app to iOS 8.0 then you should not link against libraries that were compiled using the iOS 8.1 toolchain. Otherwise you risk running into compatibility issues (or missing symbols). In other words, Apple does not guarantee that a library compiled against iOS 8.1 will work when linked into an application targeting iOS 8.0 or earlier. Options for how to fix: (a) if the library does not require the newer APIs, recompile it for the lowest API level you wish to support, or (b) if the library does require the newer APIs, the proper fix is to set the minimum supported version of the app to 8.1. Ways to silence the errors (not recommended): pass the "-w" option to the linker using the "Additional mtouch arguments" in the project options.

  • [Upstream change] [iOS] iOS 9 has stricter requirements for setting a RootViewController. "Objective-C exception thrown. Name: NSInternalInconsistencyException Reason: Application windows are expected to have a root view controller at the end of application launch". Possible workaround: Set the Window.RootViewController property in the AppDelegate.FinishedLaunching() method. (See the troubleshooting guide for additional details.)

  • [Upstream change] [iOS] "Could not find a paired Watch device for the iOS device". By default Xcode 7 ships with 38mm and 42mm WatchOS simulators paired with the iPhone 6 and iPhone 6 Plus simulators respectively. However the default iPhone 5 and iPhone 5s simulators are not paired with any Watch simulator. To add an iPhone 5 simulator that is paired with a WatchOS simulator, open "Window -> Devices" in Xcode, then press the "+" button to add new simulator. In the "Create a new simulator" window select the desired "Device Type" and then add the desired Apple Watch simulator version under "Paired Apple Watch".

  • [Upstream change] [iOS] "App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file." (See also Apple's corresponding tech note.). One way to workaround: Add an NSAppTransportSecurity key to the Info.plist. Under that key, add a dictionary that contains a single NSAppTransportSecurity key set to true: <key>NSAppTransportSecurity</key><dict><key>NSAllowsArbitraryLoads</key> <true/></dict>.

  • [Upstream change] [iOS] Starting in iOS 9, initialization code within UIView subclass IntPtr constructors will not run when the view is initialized from a XIB file. See http://developer.xamarin.com/guides/ios/platform_features/ios9/#UIView_fails_to_init_with_coder_when_loading_a_view_from_a_XibNib for additional details and workarounds.

Remaining known issue in Xamarin.Forms 1.4.4 and higher that affects IntelliSense in Visual Studio

  • Bug 32988 - [XamarinVS] [Xamarin.Forms] Modifying XAML files causes IntelliSense for references to other PCLs to fail in the .xaml.cs code behind files with errors of the form "are you missing an assembly reference?" (This is a bug in Xamarin.Forms. It affects all versions of Visual Studio.) This seems to be another side effect of the same changes between Xamarin.Forms 1.4.3 and 1.4.4 that caused Bug 32341. Possible workaround: Downgrade to Xamarin.Forms 1.4.3.x (or earlier).

Fixes for known issues from recent release threads

  • Bug 31379, Bug 31560 - [iOS] Enabling the linker when the app references PCL projects that include "duplicate" System.Threading.Tasks references (for example when using the "Microsoft.Net.Http" NuGet in a .NET 4.0 PCL) causes "Could not load file or assembly 'System.Threading.Tasks'" on the simulator. This bug has in fact existed since the original April 29 release of Cycle 5, but until Service Release 2 it had been obscured by the closely related Bug 29211. The bug only affects simulator builds and has fairly easy workarounds, so it is minor in severity. Workarounds: disable the linker in the iPhoneSimulator configurations or add -linkskip=System.Threading.Tasks under "project options -> iOS Build -> Additional mtouch arguments".

Remaining known issues from recent release threads

Except for the "Fixes" mentioned above, the remaining known issues from the release threads are unchanged compared to Cycle 5 – Service Release 4.


EDIT Sep 18: Add iOS Bug 33124.
EDIT Sep 21: Update Bug 33124 about candidate fix. Additional update: the fix is now on the Stable channel. Add XamarinVS.iOS Bug 34144.
EDIT Sep 22: Add iOS Bugs 33706, 34502. Add XamarinVS.iOS Bug 34163. Add iOS designer Bug 34173. Add known iOS designer limitation with StackView.
EDIT Sep 23: Add XamarinVS.iOS Bug 34198. Add iOS Bug 34186.
EDIT Sep 24: Add iOS Bug 34205. Add iOS Bug 34220.
EDIT Sep 29: Indicate bugs now fixed on Beta channel (31424 34052 34224 34163 34202 34144 34220 34186 33706 34083 34054).

Posts

  • dawang2008dawang2008 USMember

    How can i download it? Not found download link.

  • FrankBuckleyFrankBuckley GBUniversity ✭✭

    The latest build fixes the repeated errors compiling strings resources in iOS class libraries. However, I am now seeing other issues.

    When building after changing a strings file in an iOS class library I get errors similar to:

    C:\Program Files (x86)\MSBuild\Xamarin\iOS\Xamarin.iOS.Common.targets(370,3): error : System.IO.FileNotFoundException: Could not find file "/Users/frankbuckley/Library/Caches/Xamarin/mtbs/builds/MyClassLibrary/f8c29dfe68525fbd4f723a5a74dedd3f/obj/Debug/optimized/en.lproj/MyStrings.strings".
    C:\Program Files (x86)\MSBuild\Xamarin\iOS\Xamarin.iOS.Common.targets(370,3): error : File name: '/Users/frankbuckley/Library/Caches/Xamarin/mtbs/builds/MyClassLibrary/f8c29dfe68525fbd4f723a5a74dedd3f/obj/Debug/optimized/en.lproj/MyStrings.strings'
    C:\Program Files (x86)\MSBuild\Xamarin\iOS\Xamarin.iOS.Common.targets(370,3): error : at System.IO.FileInfo.get_Length () [0x00000] in :0
    C:\Program Files (x86)\MSBuild\Xamarin\iOS\Xamarin.iOS.Common.targets(370,3): error : at (wrapper remoting-invoke-with-check) System.IO.FileInfo:get_Length ()
    C:\Program Files (x86)\MSBuild\Xamarin\iOS\Xamarin.iOS.Common.targets(370,3): error : at Xamarin.MacDev.Tasks.SmartCopyTaskBase.FileChanged (System.String source, System.String target) [0x00000] in :0
    C:\Program Files (x86)\MSBuild\Xamarin\iOS\Xamarin.iOS.Common.targets(370,3): error : at Xamarin.MacDev.Tasks.SmartCopyTaskBase.Execute () [0x00000] in :0

    If I then build again, there are no errors and I can launch an app referencing the class library.

    However, the string resources cannot be read from the app bundle.

    Having investigated, I can see the strings files in the app bundle created for the simulator on the Mac host, but they have nothing in them – they are zero bytes.

    (All these projects compile and run fine when built in Xamarin Studio on the Mac.)

  • FrankBuckleyFrankBuckley GBUniversity ✭✭

    Sorry – add to that – I am also seeing problems with image files in iOS class libraries not being copied to simulator builds.

    I think this is this confirmed bug: https://bugzilla.xamarin.com/show_bug.cgi?id=32608

    The behaviour is similar to the strings problem – build fails at first. Build again and it succeeds and app launches. However, image is missing from app bundle on simulator.

  • FrankBuckleyFrankBuckley GBUniversity ✭✭

    And, to be clear: this all worked fine in the last stable version before the iOS 9 updates.

  • BrendanZagaeskiBrendanZagaeski USForum Administrator, Xamarin Team Xamurai

    dawang2008, if you have an existing Xamarin installation, you can change the updater channel:https://developer.xamarin.com/recipes/cross-platform/ide/change_updates_channel/.

    If you do not have an existing Xamarin installation, you can run the combined installer to setup a new computer: https://xamarin.com/download.

  • BrendanZagaeskiBrendanZagaeski USForum Administrator, Xamarin Team Xamurai

    FrankBuckley, many thanks for the report. I see the test case you've attached in the email correspondence. I will follow-up on testing that and post back to this thread with the new bug number.

  • May I ask when you could fix the problem: Could not link assemblies. Reason: Can't not find the nested type" during the linking phase of the Xamarin.iOS build process?

    I'm using the AWSSDK.S3 lib which caused the problem.
    I can't build any release version after upgrading. :-(
    Or could you just release a fixed AWSSDK lib?
    Thanks.

  • DRRDRR USMember
    edited September 2015

    I too am finding bug 32608 to be a blocker since builds fail due to images in a class library project.

    Is there a workaround to get iOS builds from VS working again short of downgrading to build 894 on both Windows and the Mac (which I think also implies needing to downgrade to Xcode 6)? Last time there were similar issues in bug 26606 and bug 27665, I believe there was a way to tamper with the MSBuild targets to get the resources copied to the correct place.

    Thanks in advance.

  • DRRDRR USMember

    Building twice wasn't working for me before but is now, matching the behavior @FrankBuckley is seeing, so that helps get past the issue.

  • ZachGreenZachGreen USUniversity

    Any information on a release to fix bug 33124 or a workaround?

  • With the latest update it seems that a Bug 28299 has resurfaced. I have reported this to the support email above but I am posting here so others users are informed of this.

    There is also another bug which I am getting which is when I create a new iOS Class Library it displays all default reference as not found and compiles with the following error:

    The OutputPath property is not set for project 'ClassLibrary.csproj'. Please check to make sure that you have specified a valid combination of Configuration and Platform for this project. Configuration='Debug' Platform='iPhone'. This error may also appear if some other project is trying to follow a project-to-project reference to this project, this project has been unloaded or is not included in the solution, and the referencing project does not build using the same or an equivalent Configuration or Platform.

    Is anyone else getting this?

  • BrendanZagaeskiBrendanZagaeski USForum Administrator, Xamarin Team Xamurai

    @jiachuntang, @ZachGreen and others who might be hitting the "Can't not find the nested type" error, the Xamarin developers have now created a draft development build that appears to solve the problem.

    To request this build please send an email to contact@xamarin.com and refer to Bug 33124.

    I have updated the first post in the thread accordingly, along with a few additional details.

  • BrendanZagaeskiBrendanZagaeski USForum Administrator, Xamarin Team Xamurai

    StevenTsang, many thanks for the reports!

    it seems that a Bug 28299 has resurfaced

    The QA team was able to reproduce this, and they have created a new non-public bug 34163 to track it (since it's likely that the root cause of the problem is slightly different even though the end symptom is almost identical).

    I have added that bug to the list of known issues in the first post in the thread to track its resolution status.

    The OutputPath property is not set for project

    The QA team was also able to reproduce this, and they have assigned it to the engineering team to be fixed. I have again added the bug (search for "OutputPath") to the first post in the thread to track its resolution status along with one way to workaround the problem temporarily.

  • BrendanZagaeskiBrendanZagaeski USForum Administrator, Xamarin Team Xamurai
    edited September 2015

    The Xamarin team is working on reproducing errors similar to "System.IO.FileNotFoundException: Could not find file /Users/macuser/Library/Caches/Xamarin/mtbs/builds/Ios.Class.Library/b79fcd8e1a332f7a44b927d2282aea6b/obj/Debug/optimized/button_black_135x40.png", as mentioned by FrankBuckley and DRR earlier in the thread.

    Although the error message for this issue looks very similar to Bug 32608, the underlying problem appears to be something different. This new problem only affects Xamarin.iOS 9.0 and regular iOS library projects, while Bug 32608 can be reproduced on Xamarin.iOS 8.10 and only affects iOS binding projects.

    If by chance anyone has a test case they could easily share that demonstrates this problem, please do zip it up and email it to contact+xamarinios9.0@xamarin.com and leave a message in this thread to let me know. Feel free to delete the bin, obj, Components, and packages folders before zipping it to save space. In fact, for this problem, it would most likely be sufficient to just zip up and send all of the .csproj files from your solution. Thanks in advance! (See update below.)

  • JamesHousleyJamesHousley USMember
    edited September 2015

    Just to say that I am experiencing the same issue with image files in iOS class libraries being copied into the app bundle as empty files (i.e. 0 bytes). Cleaning first and building twice doesn't solve this for me however, unlike others. As a workaround, I have temporarily moved my class library images into my core project. (Copying doesn't work - they must not appear in the class library as well.)

  • BrendanZagaeskiBrendanZagaeski USForum Administrator, Xamarin Team Xamurai

    I was able to reproduce the described error message "System.IO.FileNotFoundException: Could not find file "/Users/macuser/Library/Caches/Xamarin/mtbs/builds/Ios.Class.Library/b79fcd8e1a332f7a44b927d2282aea6b/obj/Debug/optimized/button_black_135x40.png"", and I was able to reproduce the behavior where it is possible to deploy the app successfully on a second deployment attempt.

    It turns out this problem is a variation on non-public Bug 34163 ("." file in class libraries). The confusing result of being able to deploy on the second attempt (which I wasn't able to reproduce at first) is a funny little idiosyncrasy of the bug.

    This bug will be eliminated in the upcoming Xamarin.iOS 9 Service Release within the next week or so.

  • DRRDRR USMember

    Excellent, thank you for the update!

  • MatthewWaring.4722MatthewWaring.4722 GBUniversity ✭✭

    Hi Brendan,

    Just a quick note to ask if you think the "... Debug/optimized/button_black_135x40.png" is fixed?

    I just tried to install on my device today and get a similar error and no double building will help.

    Thanks

  • BrendanZagaeskiBrendanZagaeski USForum Administrator, Xamarin Team Xamurai

    MatthewWaring.4722, yes the specific test cases that were filed for non-public Bug 34163 no longer demonstrate the problem as of the follow-up service release. If you have a test case that still demonstrates the problem (after a thorough clean and rebuild), then please do submit a quick new bug report with the test case attached. Thanks!

  • MatthewWaring.4722MatthewWaring.4722 GBUniversity ✭✭
    edited October 2015

    Thanks @BrendanZagaeski :(

    EDIT: After updating to latest XCode + tooling (today), this has now gone away :)

    I have a repeatable case on my system I could possibly file for a non-public bug (as its company code), but not a test case, will look into it further and request via Business Support if cannot get moving at all.

This discussion has been closed.