SkyDrive breaking changes with Live SDK: update your apps!

Update: as the developer Graham Haley has reported me on Twitter, Microsoft has fixed the server sode issue and reported it in the official MSDN forum. This means that your application should work fine now even if you’re using a Live SDK version prior to 5.4.

Unlike the other posts I usually write, this post will be very quick Smile Microsoft has introduced a breaking change in the SkyDrive APIs offered by the Live SDK (which is the library, available on NuGet, that can be used to interact with Live services within a Windows Phone or Windows 8 application). If your application is using SkyDrive integration (like my app Movies Tracker), for example, to provide backup and restore features, you may notice that the downloaded file is corrupted, so the restore procedure will always fail.

The solution is simple: update your project to use the latest Live SDK release, which is the 5.4. Previous versions won’t work any more. The breaking change seems to be just server side: you don’t have to modify anything in your code. If you’re using NuGet, the operation is really simple: right click on your project, choose Manage NuGet packages and switch to the Updates tab. After a while, NuGet will find a new Live SDK version: just click on Update and you’re all set. Obviously, if your application is already using the 5.4 release you won’t have to do anything.

And if your application doesn’t support SkyDrive integration but you’re interested in implementing it, there’s a blog post I wrote a while ago about this topic.

Happy development!

This entry was posted in Windows Phone and tagged , . Bookmark the permalink.

7 Responses to SkyDrive breaking changes with Live SDK: update your apps!

  1. Mike says:

    Version 5.3 of the Live SDK is still working.

    • qmatteoq says:

      Really? On my app (and on many other apps I know) the backup feature wasn’t working anymore. The downloaded file was always corrupted, installing 5.4 fixed it.

  2. Thierry says:

    Hi, I’ve got a few questions which i hope you can help me with.
    1. Does the live sdk support mvvm pattern? I’ve tried implementing standard code to login in my viewmodel, but it keeps throwing me a strange error i.e. Filenotfound for presentation library. When i implemented on a view it works. Any idea?
    2. I know my internet speed is slow (poor connection from where i am on holidays!!), but should i really display a progress bar of some sort?
    3. My sign in button is in my settings page but I’m not sure where should i auto-login from as I’ve got a splash screen page that loads up first but based on options selected in my settings, the next page loading could be any of the 3 available and I’m not sure where i should implement this if it doesn’t support mvvm. Should i duplicate the code in all 3 pages? Then what, assuming i do and i auto-login to my skydrive, the data i want to upload is done from another page, what do i do for that? The idea is that i want login so i don’t have to do it when it’s time to upload the data.
    Any help clarifying these questions would be greatly appreciated. I’ll probably post them on a forum as well but it seems that your post was a good start. Thanks. T

    • qmatteoq says:

      Hi, let’see if I can help.

      1) The Live SDK is just a bunch of APIs to interact with Live services, you can use them anywhere you want. In my Movies Tracker application I’ve created a specific service (called SkydriveService) which offers the methods I need to provide backup and restore features, that I use in the ViewModel of my settings page. Double check that you’re doing everything right. The only thing to keep in mind is that the SessionChanged event can be managed only by the view, so if you need to communicate with the ViewModel you have to use other ways like behaviors or messages.
      2) Yes, every operation (including the login one) can take some time and it’s better to notify to the user what’s going on. See my Movies Tracker app if you want to see an example.
      3) Actually you can’t really do auto-login: the user will have, anyway, to confirm that the application can get access to Skydrive, for security reason. The only thing that the application automatically stores are credentials, so that the user won’t have to fill them every time.

Leave a Reply