Azure App Service Team Blog

How the App Service team functions

Azure Mobile Apps iOS SDK v3.3.0 Released

Today we are releasing the Azure Mobile Apps iOS SDK to CocoaPods and other online properties. This is a drop-in replacement for the existing SDK. We only have one feature fix in this release. We updated the authentication code to support the SFSafariViewController.

This release affects you if you use Google Authentication and a server-flow. If your code looks like this (Objective-C):

[client loginWithProvider:@"google" controller:self animated:YES completion:^(MSUser *user, NSError *error) {
    [self refresh];
}];

Or the Swift equivalent:

client.loginWithProvider("google", controller: self, animated: true) { (user, error) in
    self.refreshControl?.beginRefreshing()
    self.onRefresh(self.refreshControl)
}

Then you are affected by this change. Late last year, Google made changes to their OAuth authentication scheme. The net effect was that a mobile client could no longer use a WebView to deliver the authentication flow to the user. A secure web flow would be needed. The supported method on iOS is the SFSafariViewController and this release changes the underlying web view capabilities for authentication to this new mechanism. This wasn’t just a client-side code change. It involved changing the server-side authentication code worldwide in Azure App Service.

As with any release, we have done numerous small changes to make the experience for the developer better, particularly as it pertains to warnings that are delivered during the development process. We are also in the process of moving all our examples to Swift 3.0. The new SDK fully supports Swift 3.0 and XCode 8.2. We will be deprecating the support for Swift 2.x in the next release. Although we support XCode 7.0 for Objective-C usage, you will need XCode 8.2 for Swift support.

You can download the SDK from Cocoapods, take a look at the API directly or reference our tutorials and HOWTO documentation. We’re also active on Azure Forums and Stack Overflow.