Updates for iOS 7

Today we're pleased to announce a host of changes that enable Background Push on iOS 7. We're releasing a brand new iOS SDK that takes advantage of all the latest iOS platform features, as well as an updated legacy SDK for those that need it. Additionally all of our API's have been cut-over to use the latest APNS Binary Protocol, and updated to handle Background Push.

Our 3.0.0 iOS SDK has been fully modernized for iOS7, Xcode 5 and the latest Objective-C language features.

What's New?

  • Background Notification Support
  • 64-bit support (iOS6+)
  • Automatic Reference Counting
  • Built for Xcode 5:
  • Inline documentation based on header docs
  • Framework Auto-linking Support
  • Replaced third-party libraries with Cocoa-based functionality (JSON parser, Core Data)
  • See our CHANGELOG  for the full list

In addition to 3.0.0, we are also releasing 2.1.0, which is a drop-in replacement for any of our 2.x library releases. This version provides background push support, but still uses manual reference counting and is API compatible with all of the 2.x releases. While we're incredibly excited about the improvements in 3.0.0, we realize that any upgrade process requires work, so we back-ported the most important iOS 7 features to our 2.x codebase so you can take advantage of background push immediately. This is the last release that will use manual reference counting.

And finally all of our API's now accept "content-available" as a part of the APS payload for triggering Background Push execution. For our legacy API versions (v1 and v2) you can sent this JSON key to request Background Execution as a part of any normal push message as long as it also includes at least one user visible component (Badge, Alert, Sound). This will be safely ignored on iOS 6 devices, but will trigger the request for execution properly on iOS 7 apps that have this implemented. It is important to note that the request for execution is still governed by Apple's "handful per hour" rule of thumb, even though the push is delivered immediately. If you want to take advantage of the "silent push" aspect of Background Push, you must use Urban Airship's API v3, which exposes the "priority" setting. Here is an API v3 sample:

{
    "notification" : {
        "alert" : "You've got mail",
        "ios" : {
            "content-available" : true,
            "priority" : 5
        }
    },

    "audience" : {
        "device_token" : "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
    },

    "device_types" : ["ios"]
}

As you can see "priority" is the new attribute which has two valid values: 10 or 5. It is optional and defaults to 10 if not supplied. A complete migration guide for APIv3 is available to help with the transition.

We're excited to see what our customers do with this new functionality. As always don't hesitate to contact us with questions at support@urbanairship.com

Quick Links

Updated Documentation

Last non-ARC release (2.1.0):