Patch release to fix a crash related to sending In-App Messages through push notifications. Applications running 14.0.0 that use In-App Messages should update.
Patch release to fix a crash related to sending In-App Messages through push notifications. Applications running 14.0.0+ that use In-App Messages should update.
Patch release fixing a crash in the Airship and AirshipAutomation XCFramework. Apps using XCFrameworks should update.
- Added missing resources to Airship and AirshipAutomation modules
- Fixed XCFrameworks build issues for AirshipAccengage
- Fixed sample app build issues when targeting macOS Catalyst
Minor release that adds support for iOS 14 features and Swift package manager.
- Requires Xcode 12+
- Swift package manager support
- Support for App Clips and ephemeral notification authorization
- Support for reduced accuracy location
- Support for list and banner notification types
Airship SDK 14 is a major update that prepares our automation module to support future IAA enhancements, revamps the Channel Capture tool, and provides other improvements.
The majority of apps will only be effected by the new UAURLAllowList
behavior changes.
- BEHAVIOR CHANGE All URLs are not verified by default. Applications that use open URL action, landing pages, and custom in-app message image URLs will need to provide a list of URL patterns that match those URLs for SCOPE_OPEN_URL. The easiest way to go back to 13.x behavior is to add the wildcard symbol
*
to the array under theURLAllowListScopeOpenURL
key in your AirshipConfig.plist. - Channel Capture tool now detects a
knock
of 6 app opens in 30 seconds. Instead of displaying anything to the user, the tool will write the current channel ID to the clipboard. UAWhitelist
class and terminology removed and replaced withUAURLAllowList
.UAActionAutomation
class and functionality has been moved toUAInAppAutomation
, which covers both Action Automation and In-App Messages.- In-App Automation APIs have been updated to support future IAA enhancements.
- Removed deprecated APIs.
See the Migration Guide for further details.
Patch release to fix quiet time being applied to channels even if quiet time is disabled. This only affects channels that have set a quiet time using setQuietTimeStartHour:startMinute:endHour:endMinute
.
Patch release to fix a bug in analytics that could result in events being uploaded with stale session IDs. Apps using reports are encouraged to upgrade.
Patch release to address Dynamic Type build warnings and Message Center Inbox UI issues. Message Center customers who support Dynamic Type are encouraged update to this version.
Patch release to fix a crash with Accengage data migration. Accengage migration customers should update.
Patch release to improve iOS 14 support, add a missing XCFramework, and fix In-App Automation issues. Apps that support in-app automation, or are experiencing any of these issues are encouraged to update.
- Disable Channel Capture by default to prevent new iOS 14 notifications.
- Add missing AirshipAutomation.xcframework to GitHub releases.
- Handle GIFs in a different way so modal messages have the correct height.
- Fix IAA version trigger to only fire on app updates instead of new installs.
- Enable font size accessibility in IAA and Message Center messages.
Patch release for compatibility with Xcode 12, adding new messageCenterStyle properties to the default message center UI classes to avoid conflicting with UIKit changes in iOS 14. The original style properties will continue to be available when compiling with Xcode 11, but are not available in Xcode 12. Apps that wish to remain on 13.x while developing on iOS 14 are encouraged to upgrade.
- Added new messageCenterStyle properties to the default message center UI
Early 14.0.0 beta that allows building SDK on Xcode 12.
- Fixed build issue on Xcode 12 due to
style
name collision.
Minor release adding support for application-defined locale overrides, and fixing issues in In-App Automation and the Actions Framework.
- Added UALocaleManager
- Fixed issue preventing display of inline videos in HTML In-App Automations
- Fixed issue causing crashes when running actions enabling location services
Minor release to add support for blank urls in messages, enhance airship-ready broadcasts and fix issues with in-app messages. Apps that support in-app automation, or require any of the support changes listed below are encouraged to update.
- Fixed issue that caused analytics events to fail to upload after enabling data collection in the same app session.
- Fixed In-App Message modal resizing and button text alignment.
- Added support to In-App Automation and Message Center Messages for opening target=_blank urls in an external browser.
- Added support for broadcasting a system notification containing the channel and app key when the channel is created.
Patch release to fix an issue with in-app automation banner messages and a namespacing issue. Apps that support in-app automation banner messages are encouraged to update.
- Fixed an issue with in-app automation banner messages displaying incorrectly at the top of the display.
- Make versionString const static to address link namespacing error.
- Fixed "MobileCoreServices" build warning.
Patch release to fix an issue with in-app automation audience condition checking. Apps that use version and locale-based audience conditions for targeting in-app messaging are encouraged to update.
- Fixed issue with in-app automation audience condition checking.
Minor release that adds support for named user attributes and fixes issues with YouTube video support and channel registration.
- Added support for named user attributes.
- Fixed YouTube video support in Message Center and HTML In-app messages.
- Fixed channel registration to occur every APNs registration change.
Patch release to restore public visibility to several header files. Apps whose builds are failing due to one of the following two files not being found should update.
- UAExtendedActionsResources.h
- UAMessageCenterMessageViewDelegate.h
Minor release that adds support for enhanced custom events and Mac Catalyst xcframeworks, expands the functionality of the native bridge and fixes bugs related to whitelisting and token registration after disabling data collection.
- Added support for enhanced custom events.
- Added support for Mac Catalyst xcframeworks.
- Added whitelisting for EU sites.
- Added message extras getter for Message Center native bridge.
- Added date attribute support.
- Fixed push token registration when data collection is disabled.
Patch addressing a regression in 13.1.0 causing channel tag loss when upgrading from SDK versions prior to 13.0.1. Apps not already on 13.0.1 or higher should avoid version 13.1.0.
Minor release adds support for number attributes, data privacy controls and the Accengage transition module to facilitate Accengage customers upgrading to Airship.
- Added AirshipAccengage module. This module migrates a device's attributes and ID to Airship, and allows devices to receive push notifications from Accengage during the upgrade.
- Added support for number attributes.
- Added
UAConfig#dataCollectionOptInEnabled
andUAirship#dataCollectionEnabled
to make it easier to control Airship data collection.
Patch release to restore Cocoapods static library support. Apps that wish to use static libraries installed via Cocoapods should update.
- Fixed static library support for Cocoapods.
Patch release to fix a crash on takeoff in iOS 11. Apps on 13.0.0 through 13.0.2 should update.
- Fixed crash on takeoff in iOS 11.
Patch release to fix several regressions introduced in 13.0.0. Apps on 13.0.0 or 13.0.1 should update.
- Fixed crash on app restore on a different device.
- Fixed accessing badge on a background queue during channel registration.
- Fixed NSValueTransformer warnings in console.
Patch release to fix a bug affecting tag migration for tags set through UAPush. This only affects devices that migrate to SDK 12.0.x-12.1.1. This patch release fixes the bug by combining previous tags with tags that have been set since the update to 12.x. Applications using 12.0.x-12.1.1, and 13.0.0 should update.
- Fixed migrated UAPush tags
- Fixed associating previously associated named user when a new channel is created.
Patch release to fix a bug affecting tag migration for tags set through UAPush. This only affects devices that migrate to SDK 12.0.x-12.1.1. This patch release fixes the bug by combining previous tags with tags that have been set since the update to 12.x. Applications using 12.0.x-12.1.1 should update.
- Fixed migrated UAPush tags
- Fixed associating previously associated named user when a new channel is created.
Airship SDK 13 is a major update that splits the SDK into modules. Apps can continue to use a single Airship framework in basic integration scenarios, but as of SDK 13 it is now possible to create custom integrations by selecting feature modules. Most of the changes in this release reflect the restructuring that makes this possible.
- Modularized the SDK. For breaking API changes, see the Migration Guide.
- Replaced
AirshipKit
withAirship
. - Replaced
AirshipLocationKit
withAirshipLocation
.AirshipLocation
is not compatible with withAirship
framework installation (xcframeworks or Carthage), and must be used with the core SDK and explicit feature modules - Added new
Airship
podspec that replaces bothUrbanAirship-iOS-SDK
andUrbanAirship-iOS-Location
.Airship
podspec now contains subspecs forCore
,Automation
,MessageCenter
,Location
, andExtendedActions
to make it possible to only specify which Airship features to use. - Added podspec
AirshipExtensions
that replacesUrbanAirship-iOS-AppExtensions
. The new podspec contains subspecs forNotificationContent
andNotificationService
. - Added new
AirshipNotificationContentExtension
that allows displaying multiple notification attachments in a carousel view. - Dropped static libraries. Applications should either use Cocoapods, Carthage, or the provided xcframeworks.
Stability release for 12.x.
- Fixed potential UAInboxAPIClient crash on startup due to a race condition with accessing UAUserData.
- Fixed Message Center not refreshing inbox on subsequent foregrounds.
Minor release adding support for channel attributes, which allow key value pairs to be associated with the application's Airship channel for segmentation purposes.
Custom channel attributes are currently a beta feature. If you wish to participate in the beta program, please complete our signup form.
As of SDK 13 static libraries will be removed from the binary distribution. Apps currently using these should begin migrating to the new xcframeworks replacing them.
- Added a new
UAAttributeMutations
class - Added a new
applyAttributeMutations
method toUAChannel
Patch release to fix stability issues with in-app automation. Applications using in-app automation should update.
- Fixed a crash in in-app automation.
Patch release with minor improvements to in-app automation delivery reliabiliy.
- In-app automations with a grace period are not deleted locally until the grace period has passed.
Customers using in-app automation may wish to update.
Major update for compatibility with iOS 13 and macOS Catalyst.
- Updated with support for iOS 13 and Xcode 11
- Updated minimum target to iOS 11, removing support for iOS 10 and below
- XCode 11 is now required for building the SDK
- Added support for macOS using Catalyst
- Added multi-window and target scene compatibility
- Added dark mode support and named color styling for Message Center
- Added spoken notification compatibility
- Added support for new iOS 13 location permissions
- Introduced a new
UAChannel
class - Deprecated channel-related functionality in
UAPush
, in favor ofUAChannel
- More robust user creation and background task usage
- Fixed error logs involving
UALandingPageActionPredicate
- Fixed an issue where In-App Automation messages were continuing to display after they were cancelled.
Apps using In-App Automation are encouraged to upgrade.
Some apps may be using the UAInAppMessageManager
's scheduleMessageWithScheduleInfo
or scheduleMessagesWithScheduleInfo
methods to directly schedule In-App messages through the SDK.
The first time the app runs with this version of the SDK, any In-App Messages that were directly scheduled
by the app will be canceled and removed. The app will need to re-schedule those messages.
Apps whose in-app messages are scheduled only through the Airship message composers (go.urbanairship.com) don't need to take any additional action after upgrading to this version.
- Fixed an issue where Message Center messages were not being properly marked as read after displaying via in-app automation.
Minor update that fixes an issue with the location kits header import, and adds an option to the HTML in-app automation style to hide the close button. There are no critical changes in this release, so only apps that want the new behavior or are having issues with the location kit import should update.
- Updated the AirshipLocationKit header import statement for AirshipKit
- Added an option to the HTML in-app automation style to hide the close button
Major update removing the UALocation
module from the core SDK. Location services are now available
in an optional external module named AirshipLocationKit
. This version also adds support for
localized messages in In-App Automation.
- Removed
UALocation
and allCoreLocation
framework references from the core SDK - Added the
UALocationProviderDelegate
protocol - Added
AirshipLocationKit
andAirshipLocationLib
targets - Apps that don't use location services no longer need to include location usage descriptions
in their
Info.plist
files when submitting to the App Store - Added support for localized messages in In-App Automation
New apps or apps experiencing difficulties with App Store submission regarding location usage descriptions are encouraged to update.
Patch release to fix issues with the Message Center message view and channel registration.
- Fixed an issue where the Message Center's loading view container intercepted touch events.
- Fixed a registration regression introduced in 10.2, which could delay channel updates in some cases.
Apps using the Message Center or segmentation are encouraged to update.
Patch release to fix Carthage build error in Xcode 10.2. Apps that use Carthage are encouraged to update.
- Removed armv7s from architectures
- Streamlined expired message handling
Minor release with enhancements to In-App Automation and modifications to make keychain access asynchronous throughout the SDK. This latter change is to fix a rare issue with slow takeOff that can potentially affect the app review process. Apps experiencing this issue are encouraged to update.
Changes:
- GIF support for In-App Automation on iOS 11 and above.
- Display coordinator architecture for more flexible custom IAA display management.
- IAA button resolution events can be generated from HTML messages via the native bridge.
- Keychain access is fully asynchronous. Synchronous properties on UAUser are now deprecated.
Minor release that deprecates UAURLProtocol that was historically used for caching message center and landing pages, but was no longer being used because it's not compatible with WKWebView.
- UAURLProtocol is deprecated and no longer used.
- Reuse a single NSURLSession for all Urban Airship requests.
Patch release to fix a few minor issues. Apps experiencing any of these issues should update.
- Fixed how build architectures are specified for AirshipKit.
- Addressed "missing creator for mutated node" warning in AirshipResources build.
- Addressed warning when displaying a Message Center message with an invalid identifier.
- Fixed handling of text styles in In-App Automation.
- Allow HTML IAA messages to be closed using the native bridge.
- Updated project files for Xcode 10.1
Patch release to fix an issue with the "extra" object in In-App Automation.
Patch release to fix a crash in the rate app action involving timestamp storage. Apps that use the rate app action are strongly encouraged to update.
Patch release to fix calling a UI main thread access warning as well as a few In-App Automation issues. Apps that use In-App Automation banner messages, trigger delays, or schedule intervals should update.
- Fixed banners becoming modal (regression in 10.0.0).
- Fixed banners truncating header when using MEDIA_RIGHT template.
- Fixed in-app automation notification opt in audience check.
- Fixed rare crash when using in-app automation messages with an interval or delay.
Major release to support iOS 12
Major release to support iOS 12
- Added support for critical notifications.
- Added support for provisional authorization.
- Added support for summary category arguments.
- Updated UANotificationContent with thread id and new summary argument fields.
- Dropped support for iOS 9.
- Removed APIs deprecated in previous versions of the SDK.
Developer Preview of iOS SDK 10
- iOS 12 compatible preview.
- Dropped support for iOS 9.
- Removed APIs deprecated in previous versions of the SDK.
- Added support for critical notifications.
- Added support for provisional authorization.
- Added support for summary category arguments.
- Updated UANotificationContent with thread id and new summary argument fields.
Minor release thats adds support for tag group audiences, miss behaviors and resizable HTML messages in In-App Automation. HTML in-app messages are now displayed as dialogs by default, with an option to display fullscreen on smaller devices. This release also fixes a bug that could result in crashes when serializing JSON payloads for certain audience conditions. Apps using In-App Automation are encouraged to upgrade.
- Added support for tag group audience conditions for in-app messages.
- Fixed a bug that could prevent modal in-app messages from being displayed as fullscreen.
- Fixed a JSON serialization bug which could cause crashes for certain audience conditions.
Patch release to fix an issue with legacy in-app message attribution. Apps using legacy in-app messages are encouraged to upgrade.
Patch release to fix a problem with uairship:
schema links in our native bridge. Any applications using links in the Message Center, Landing Pages or any other uses of our native bridge are encouraged to upgrade.
- Fix native bridge
uairship:
schema links.
Patch release to fix a problem with in-app automation limits. Any applications using in-app automation or action automation are encouraged to upgrade.
- Changed UAAutomationEngine to compare unsigned integers instead of the pointers to the NSNumbers that contain them.
- Addressed causes of intermittent unit test failures in UAAutomation tests.
Minor release that adds support for:
- detection of quiet notifications vs. opted-out users,
- disabling 3D-touch in a message center message,
- rejecting whitelisted URLs before they are fetched.
This release also fixes an issue with incremental builds.
Apps interested in the new features or experiencing the incremental build issue are encouraged to upgrade.
- Separates notification options from notification settings. Options now represent what is requested and settings represent what was granted.
- Note: In UAPush.m, a new
authorizedNotificationSettings
property has been added. It will always return the current authorized settings, even if push notifications are disabled throughuserPushNotificationsEnabled
.
- Note: In UAPush.m, a new
- Adds mechanism to allow apps to disable message center link previews and callouts.
- Adds mechanism to allow apps to reject whitelisted URLs before they are fetched.
- Changes header generation script to use Apple's recommended temp directory. This solves a problem certain developers were having with incremental builds.
- Migrates keychain security attribute to only allow access after first device unlock.
Patch release to fix a bug with channel registration. Applications concerned with unnecessary channel registrations are encouraged to upgrade.
- Fixed a bug which was causing an unnecessary registration on every app foreground and background.
- Locale and Timezone info is now sent up with the channel registration even if analytics are disabled.
Minor release that exposes new methods in In-App Automation and Message Center.
- Added method to override Message Center loading indicator.
- Added method to allow for extending of In-App Automation messages.
- Added method to allow for pausing In-App Automation.
Minor release that updates the in-app message designs.
- Updated in-app message designs.
- Added support to display an in-app modal message as fullscreen on smaller screen devices.
- Added support to adjust current in-app message designs through a plist.
- Added a new UALegacyInAppMessageBuilderExtender protocol to make customizing the legacy in-app message easier.
- Updated for Xcode 9.3.
Patch release to fix bugs in landing page presentation and content resizing on rotation. Applications using landing pages are encouraged to upgrade.
- Removed zoom from webpage after rotation to allow its web content to properly resize.
- Fixed top view selection when displaying landing page views.
- Fixed landing page constraints to accommodate safe area.
- Updated project structure to hide private interfaces.
Patch release to relax URL whitelisting to include custom schemes, fix a delegate call that was happening off the main queue, and fix UI issues in the message center and in in-app message banners. Applications needing any of these changes are encouraged to upgrade.
- Relaxed URL whitelisting to include custom schemes.
- Fixed issue in the message center list view that prevented icons from properly loading.
- Fixed spacing issue in in-app banner view layout.
- Fixed a bug that resulted in UAInboxDelegate being called off the main queue.
Patch release to fix several UI issues, reduce the amount of code executed when Analytics are disabled, and make UAActionScheduleInfo constructor public. Applications needing any of these changes are encouraged to upgrade.
- Made close button more accessible in overlay pages on iPhone X.
- Fixed potential issues with full-screen in-app message display in particular configurations and image sizes.
Patch release to fix a crash with the deep link and landing page actions. Applications running 9.0.0 and 9.0.1 should update to this release.
- Fix crash in the deep link and landing page action.
- Added overlay behind the in-app message dialog.
- Added missing checks for identifier lengths for both in-app messages and message buttons.
Patch release to fix a CocoaPods iOS 9 deployment issue with the AirshipAppExtensions and fixes a Main Thread Checker warning when adding analytic events from a background thread.
- Fix CocoaPods iOS 9 deployment issue with the AirshipAppExtensions.
- Fix background thread warning when adding an event on a background thread.
Major release required for new in-app messaging capabilities.
- In-app messaging v2. The new in-app messaging module includes several different view types that are fully configurable, including modal, banner, and fullscreen. An in-app message is able to be triggered using the same rules as the Action automation module.
- Automation schedule priority: Used to determine the execution order of schedules if multiple schedules are triggered by the same event.
- Support for editing automation schedules.
- New active session automation trigger. The trigger will increment its count if it has been scheduled during an active session instead of waiting for the next foreground.
- New app version automation trigger. The trigger will increment its count if the app has been updated to a specified version.
- Extended whitelist URL checking for URL loading instead of just JS bridge injection. By default these checks are disabled, but you can enable them with the AirshipConfigOptions field enableUrlWhitelisting.
- A rate app action to prompt the user to rate the application.
- Updated localizations.
- Removed deprecated code. Please see Migration Guide.
Patch release to address "UI API called on a background thread" warnings. Applications should update to this release if they are seeing these warnings.
- Fix UI API access on background thread in Message Center.
Patch release to correctly parse "mailto:" URLs in message center messages and enable optional localization of Message Center's "Done" and "Edit" buttons. Applications should update to this release if they require this behavior.
- Correctly parse "mailto:" URLs in message center messages.
Patch release that fixes a registration delegate issue that prevents the authorized types from being updated on foreground. Applications should update to this release if they require this behavior.
- Update authorized notification types on foreground.
Official release for iOS 11 & Xcode 9. Applications should update to this release if they want to support iOS 11 or build under Xcode 9. Applications using SDK 8.5.3 with Carthage should update to this release.
- Force execution of some UI code on the main queue.
- When executing a Display Inbox action, if the message ID is the empty string, just show the inbox.
- Turn off code coverage to work-around this Carthage issue.
- Add support iOS 11 Hidden Notification Content to UANotificationCategory.
Patch release that fixes missing symbol issues for the static library and removes
the use of dispatch_sync
when calling UIKit from a background thread. Applications
that use the static library or have had concerns about the use of dispatch_sync
should update.
- Fixed missing symbols for StoreKit and WebKit when using the static library.
- Removed use of
dispatch_sync
within the push module.
Patch release that fixes issues with message center, applications that use protected data and background services, and issues with deep link and tag actions running when a push is received in the foreground. Applications that use any of those features should update to this release.
- Fixed Core Data crash when the application uses protected data and wakes up in the background before the device is unlocked.
- Fixed deep link and tag actions running when a push is received in the foreground due to the predicate not being applied (Regression from 8.4.0).
- Fixed message center not deep linking into the message view from a push notification.
- Fixed message center edit mode not exiting after performing an action.
- Fixed keys for rate app action's optional title and body arguments.
Patch release that fixes app submission problems when using Carthage or manual installation methods. CocoaPods users are unaffected by this issue.
- Fixed submission problems due to the AirshipResources.bundle containing an executable.
- Fixed minor Xcode 9 beta warnings in the samples and the new rate app action.
Feature release relevant for users that require the UARateAppAction or meet the following conditions:
- Implement the UAInAppMessageControllerDelegate and provide their own custom in-app message views.
- Use custom message center styling in a split view.
- Fixed header generation for the static library.
- Fixed background permissions check when enabling channel capture.
- Fixed default in-app message animation for custom in-app messages.
- Fixed message center styling issue that prevented specified style from being properly applied in a split view.
- Added UARateAppAction that can prompt a user with a rating dialog or link directly to the App Store rating page.
- Fixed marking message centers messages as read.
- Fixed inbox coredata warning.
- Fixed calling UI calls on background threads (Xcode 9 warnings).
- Fixed deadlock with UAChannelRegistrar.
- Fixed channel capture being enabled when it has never explicitly been enabled.
- Fixed setting conversion send ID on non-alerting push notifications.
- Fixed potential crash in UAEventManager.
- Fixed potential crash in UAPush when sending an NSNotification when channel is created.
- Added better error handling in UAInboxDBManager.
- When a nil file path is passed to
UADefaultMessageCenterStyle styleWithContentsOfFile:
, return the default style without attempting to find and parse the style file. - Fix blurry message center unread indicator on retina devices.
- Fix iOS warning by delaying the setting of preferredDisplayMode on message center's split view until after the split view has view controllers added to it.
- Stop updating the message center refresh control UI from a background thread.
- Fixed "invalid prototype declaration" warnings.
- Fixed calling UIKit on background threads.
- Fixed deprecation warnings when targeting iOS 10+.
- Added support for tvOS.
- Added loading indicator to Message Center message view controllers.
- Added new UAInboxDelegate protocol method
showMessageForID:
that will be called immediately after a notification is tapped that is associated with a Message Center message. - Added support to update authorized notification options during a background app refresh.
- Added support to style the select all, delete, and mark read buttons in the message center.
- Alias is now deprecated. It will be removed in SDK 10.0.0.
- UAInboxDelegate's
showInboxMessage:
, replaced withshowMessageForID:
. - UADefaultMessageCenter's
displayMessage:
anddisplayMessage:animated:
, replaced withdisplayMessageForID:
anddisplayMessageForID:animated:
methods. - UADefaultMessageCenterListViewController's
displayMessage:
anddisplayMessage:onError:
, replaced withdisplayMessageForID:
anddisplayMessageForID:onError:
. - UAInAppMessage's unused property
notificationActionContext
.
- UARegistrationDelegate's notificationRegistrationFinishedWithOptions:categories: is now called with the user opted in options instead of the requested types. Fixed this method being called before the user has a chance to accept permissions on iOS 8 & 9.
- Fixed UARegistrationDelegate's notificationAuthorizedOptionsDidChange: being initially called with the wrong value and not being called when types go from undetermined to none.
- Authorized notification option will be checked when the application wakes up in the background.
- Added files missing from static library libUAirship.a
- Fix compiler warnings
- Fixed bug with decoding action values from the Urban Airship JS bridge.
- Added support for WKWebView. Enable in AirshipConfig.plist using useWKWebView flag. Disabled by default.
- Deprecated support for UIWebView.
- Added support for delayed automation action schedules. The execution of an automated schedule can now be delayed by up to 30 seconds or made contingent on some condition.
- Added EnableFeatureAction that can enable background location, location, or user notifications.
- Added an automation trigger for app init events.
- Added new UARegistrationDelegate methods apnsRegistrationSucceededWithDeviceToken: and apnsRegistrationFailedWithError:.
- Fixed compatibility issue with Firebase.
- Fixed duplicate analytic uploads on iOS 8.
- iOS migration guides moved to this repository.
- Correctly handle local project paths that contain spaces.
- Added missing file references to static library.
- Added extra validation to message list response body.
- Added UATextInputNotificationAction to support text input notification actions.
- Added accessor to get the app key in the Javascript native bridge.
- Message center will automatically refresh the message listing in the background when receiving a content-available push.
- Fixed in-app messaging not being cleared from a notification action button.
- Fixed in-app messaging not being cleared at all if displayASAP is enabled.
- Fixed inbox database file name to be stored under the app key.
- Fixed schedule action not being able to parse variations of an ISO 8601 timestamp.
- Improved Message Center cell text animations when entering "Edit" mode.
- Channel Capture tool is now disabled by default if the app is able to receive background push. A new action has been added to enable the tool for a limited duration.
- Fixed an analytics bug for cold start direct opens.
- Fixed a message selection bug in edit mode for the Message Center.
- Fixed the SDK pod failing to install on some machines.
- Fixed memory leaks with the default message center.
- Removed
.js
extension on the UANativeBridge resource. - Removed
AirshipKit.h
fromAirshipLib.h
header file. - Added missing Content-Encoding header when gzipping analytics requests.
- Fixed isSilentPush check.
- Ensure device token registration starts.
- Fixed a potential crash due to UAAsyncOperation not being thread safe.
- Added conversion methods for UNNotificationAction and UIUserNotificationAction in the public header for UANotificationAction.
- Fixed set tag group operation issues.
- Added support for resizable landing pages.
- Added support for being able to perform
set
operation on tag groups. - Added support for tag groups in the add and remove tag actions.
- Added two new push registration delegate methods
notificationRegistrationFinishedWithOptions:categories
andnotificationAuthorizedOptionsDidChange:
to be notified when notification registration changes occur. - Added UAFetchDeviceInfoAction to get an updated snapshot of the devices information from the JS bridge.
- Changed default predicate on the UAAddCustomEventAction to accept more situations.
- Changed RetailEventTemplate to only set
ltv
on purchase events. - Replaced usage of NSURLConnection with NSURLSession.
- Fixed iOS 8-9 compatibility with UANotificationActions by providing a UA version of UNNotificationActionOptions and UNNotificationCategoryOptions.
- AirshipKit is now distributed with full source code.
- Pod specs have been moved into main repo.
- Updated docs build to use Jazzy instead of Appledocs to provide swift and obj-c docs.
- Backported fixes from newer SDK versions:
- Fixed an analytics bug for cold start direct opens from 8.1.6.
- Message Center display fix from 8.1.5.
- Message Center memory leak from 8.1.4.
- Added better file type detection for extensionless media attachment URLs.
- Fixed crash on iOS 10.0 beta users.
- Fixed crash in UAAnalyticsDBManager's dealloc method.
- Fixed a regression affecting direct opens.
- Fixed bug that caused duplicate handling of content-available pushes.
- iOS 10 compatible release.
- Dropped support for iOS 6 and iOS 7.
- Removed deprecated APIs from 7.x.
- Added support for media attachments. Requires applications to provide a notification extension that
extends the class
UAMediaAttachmentExtension
that is provided in the AirshipAppExtensions.framework. - UAPushNotificationDelegate has been rewritten to be more aligned with iOS 10.
- Manual application integration methods have been moved to UAAppIntegration.
- Added foreground presentation flag (UAActionMetadataForegroundPresentationKey) to action arguments when running actions in situation UASituationForegroundPush
- Added support for foreground presentation options. Default options can be set on UAPush, or per notification with presentationOptionsForNotification: method on the UAPushNotificationDelegate.
- Fixed analytics upload issue.
- Fixed memory leaks with the default message center.
- Fix analytics events failing to upload.
Warning: This version has an issue with analytics not uploading and should be avoided.
- Added a new simplified location module.
- Added Custom Event templates.
- Added action automation to schedule actions to run when predefined conditions are met.
- Added action situation
UASituationAutomation
for actions that are triggered from automation. - Added action "schedule_actions" to support scheduling actions from the Actions framework.
- Added action "cancel_scheduled_actions" to support canceling scheduled actions in the Actions framework.
- The Named User is now accessible from UAirship.
- Added the Named User ID and Channel ID to the JavaScript bridge.
- The NSNotification UAChannelCreatedEvent is posted when the channel is created.
- Fixed bug that caused channel creation to potentially be disabled on first run.
- Removed reference to the Passkit framework. This is to work around the App Store
incorrectly showing an app
Supports Wallet
when it does not contain wallet capabilities (Radar #24942020). - Replaced the wallet action with the open external URL action.
- App version segmentation now uses the short version string instead of the build number.
- Added optional navigation bar opacity to Message Center styling.
- Fixed tint color bug affecting some Message Center toolbar items.
- Added cell tint and unread indicator color to Message Center styling.
- Fixed a message deletion bug in the Message Center for Sample and Swift Sample.
- Added Message Center unread indicator styling.
- Added Message Center styling from a plist.
- Added Message Center filtering.
- Added Associated identifiers support and limited ad tracking.
- Added new notification action categories.
- Increased custom event property limit to 100.
- Broadened localization support.
- Preserve transparency for scaled Message Center icons.
- Added more specific UAConfig validation logging.
- Improved custom Event logging.
- Added PushHandler class and Message Center badging to Samples.
- Improved support for when AirshipResources.bundle is unavailable.
- Fixed submission problems due to the AirshipResources.bundle containing the CFBundleExecutable key.
- Fixed unnecessary AirshipKit recompilations for build directories with spaces.
- Fixed Urban Airship JavaScript bridge when using the default Message Center.
- Added tint color to the Swift Sample's Message Center.
- Includes support for default Message Center. The Message Center can be themed to match the application or it can be overridden with a custom Message Center implementation.
- Landing pages will no longer show error pages, instead they will retry indefinitely every 20 seconds until either the page loads successfully or the user exits the page.
- Packaged SDK resources in Airship resources bundle.
- Removed out dated Sample UI classes.
- New unified sample that replaces the previous inbox and push sample. The sample is available in both Swift and Objective-C.
- detectProvisioningMode now defaults to YES if neither detectProvisioningMode and inProduction are explicitly set.
- Fixed detectProvisioningMode incorrectly detecting the app running on a simulator.
- Added a flag to disable sending the device token with channel registration.
- Added support for screen tracking.
- Updated sample UI to search for bundle resources by class.
- Added support for custom defined properties in custom events.
- Added support for setting associated device identifiers for analytics.
- Added install attribution event to track install attributions.
- In-app messaging now has a display ASAP mode, which will display incoming messages as soon as possible when they arrive in the foreground.
- Fixed displaying in-app messages and landing pages in split view multitasking.
- Disabled modules in the static library to resolve Xcode 7 module cache warnings. Note: While this change should be backwards compatible with most existing apps, Swift apps built against the static library will need to explicitly link against CoreTelephony.framework when building with Xcode 6.4.
- Added a separate build compiled with Xcode 7 for bitcode support.
- Updated UAirship, UAPush, UAInbox, and UAUser nullability attribute to be null_unspecified instead of nullable.
- Fixed rotation in push sample.
- Added nullability attributes.
- Added lightweight generics support.
- Added basic support for text input behaviors in interactive notifications.
- Minimum Xcode version is now 6.4.
- Fixed race condition that prevented the SDK from associating a channel with the user in some firstrun scenarios.
- Location service now sets allowsBackgroundLocationUpdates on iOS 9 devices if background location is enabled in the application's capabilities.
- Added a UA-UI-Bridging.h header for Swift applications.
- Samples are now compatible with AirshipKit.
- Fixed crash in the Inbox sample caused by displaying the message list when it is already visible.
- Fixed possible NSInvalidArgumentException on app foreground due to data decoding error.
- Improved tag group error logging.
- Fixed nullability warnings.
- Support for channel and named user tag groups.
- Added new action "open_mc_overlay_action" that displays an inbox messages in a landing page.
- Updated "open_mc_action" action to fall back to displaying an inbox messages in a landing page if the inbox delegate is not assigned.
- Notification opens that are associated with an inbox message will now automatically trigger the "open_mc_action" action if neither the "open_mc_overlay_action" or "open_mc_action" is present.
- Added pasteboard action that allows copying text to the pasteboard.
- Added channel capture test tool to retrieve the Urban Airship Channel ID from a device for testing and diagnostics in end user devices.
- Added new action "wallet_action" that allows downloads and displays a Passbook pass.
- Fixed coredata concurrency violations.
- Fixed automatic app delegate setup for swift applications.
- Fixed invalid architectures issue when building applications with AirshipKit.
- Prefixed all constants in public headers with 'UA'.
- Fixed race condition preventing the display of in-app messages on some devices.
- Fixed missing InboxMessage metadata when running an action from a WebView with an associated message.
- Fixed Urban Airship JavaScript bridge when running actions that returns a result with unescaped JSON values.
- Fixed issue where displaying an in-app message in certain circumstances could cause an autolayout crash.
- Support for in-app messaging.
- Support for associating and disassociating a channel to a named user.
- Added new region events for proximity triggers.
- Added a flag to enable/disable analytics at runtime. Useful for providing a privacy opt-out switch.
- Disabling 'userPushNotificationsEnabled' in UAPush is now prevented by the flag 'requireSettingsAppToDisableUserNotifications' in iOS8. It is strongly recommended to link the Settings app instead of providing an in-app toggle to turn on and off push. This is to work around ongoing bugs in iOS8 (Radar #17878212).
- Modernized public BOOL properties to include the prefix "is" on the getter.
- Reduced the number of internal singletons. UAPush, UAInbox, UAUser, UAActionRegistry shared methods have been deprecated and are now accessible from class methods on UAirship.
- Removed action name from action method signatures. The action name is now available with the action arguments metadata.
- UAPushNotificationHandler is no longer automatically set as the push handler if the class was present.
- Fixed Urban Airship JavaScript bridge when the associated InboxMessage contains invalid characters in its title.
- Fixed Inbox not repopulating its messages when an upgrade causes the inbox's internal cache to be dropped.
- Add workaound for possible CoreTelephony crash.
- Fix compiler warnings in UAInboxMessageListController.
- Added whitelisting to Urban Airship JavaScript interface injection.
- Added UAWebViewDelegate to simplify Urban Airship JavaScript interface injection into custom webview implementations.
- Prevents the Urban Airship JavaScript interface from being injected multiple times into a page with frames.
- Fixed crash when using the Share Action on iPad devices.
- Fixed missing headers in AirshipKit.
- Fixed custom events attribution from a message center page if the page was displayed using the UALandingPageOverlayController.
- Fixed issue where inbox messages were coming back after being deleted.
- Verify channel location exists during channel creation.
- Fixed "No Messages" not being displayed for Inbox.
- Updated build scripts to handle paths with spaces.
- Full support for iOS 8, including compatibility with Swift applications.
- Includes an Embedded.framework for use in applications with a minimum SDK version of 8.0.
- Includes support for interactive notifications and the new iOS 8 notification registration model.
- Includes more than 25 built-in interactive notification sets, including button resources for 9 languages.
- Additional/replacement localization strings may be added to built-in actions.
- Includes a new action for social sharing that can be called from pushes or web views.
- Includes support for defining custom events in our reporting system.
- Background push can now be used without an opt-in prompt (request remote-notification background type in your Info.plist).
- The inbox now stores local state for read/delete. The UI no longer needs to block while updates are made.
- Inbox core data operations are now performed on a background queue.
- User notifications (badge, alert, sound) now default to OFF. This change is designed to make it easier to prompt for permission in the right spot. If you were relying on the old default (push enabled at start), you will need to update your registration logic.
- Supports iOS 6+. (Support for iOS 5 has been removed).
- UA location now handles iOS8-style authorization. Once location reporting is started and an authorization prompt is presented, changes to the authorization level are not possible without updating the app in the App Store. By default, "always" authorization will be requested. To request "when in use" set the property 'requestAlwaysAuthorization' to NO on UALocationService.
- Replaced existing tag modifiers on UAPush with more concisely named methods: addTag, addTags, removeTag, and removeTags.
- FOR DETAILED INFO: http://docs.urbanairship.com/topic_guides/ios_migration.html
- Removed UAInboxUI and UAPushUI protocols. Sample code now displays views directly.
- Refactored the localization in both sample projects.
- Moved sample resources to a new common folder (including those used in the interactive notifications).
- Sample projects now include targets that use the embedded framework (static library still used in the original targets).
- Modernized init and factory methods. All now return
instancetype
rather thanid
or concrete classes. - NS_ENUM and NS_OPTIONS are now used throughout.
- Removed previously deprecated methods and classes.
- Removed use of methods deprecated in iOS 6 (now that iOS 5 support has been dropped).
- The SDK distribution now includes the API reference documentation in the
reference-docs
folder. - The generated (header) documentation (in reference-docs) now has complete coverage of our public interface, including enums and block types.
- Fixed iOS 8 push prompt on first-run and immediate opt-out.
- Fixed quiet time setting not persisting between application restarts.
- Added work around for iOS 8 registration bug where disabling push registering prevents registering for notification types without a device restart. Instead of registering for 0 notification types, the device will just be marked as opted-out. This only affects newer iOS 8 devices. For more information, see the documentation for allowUnregisteringUserNotificationTypes on UAPush.
- UA location is now compatible with iOS 8 authorization modes. If building against Xcode 6, make sure to add the new authorization keys (NSLocationAlwaysUsageDescription and NSLocationWhenInUseUsageDescription) to the application's info.plist. You must also manually request the correct authorization before starting location on Urban Airship by calling either requestWhenInUseAuthorization or requestAlwaysAuthorization on CLLocationManager.
- Fix undefined symbols build issue when building against the iOS 5 version of the static library.
This update is only required if building against the iOS 8 SDK.
- Add basic support for new iOS 8 notification registration.
- Tag utility now uses OS preferred language.
- Renamed methods to prevent false positives when apps are scanned by Apple for use of undocumented APIs.
- Aliases and tags are now trimmed to prevent device registration errors.
- Added custom inbox UIs are now checked that they conform to the UAInboxUI protocol.
- UAInboxMessage no longer extends NSManagedObject to protect against possible inbox message crashes.
- Prefixed internal category extension names with 'UA' to prevent name conflicts with other libraries.
- Fixed possible crash with background tasks.
- Added Urban Airship Actions framework - a generic framework that provides a convenient way to automatically perform tasks by name in response to push notifications, Rich App Page interactions and JavaScript.
- Introduced a new device identifier, the Channel ID, which will replace the device token as the push address in Urban Airship API calls.
- Use background tasks for all registration and analytics traffic.
- Refactored Urban Airship JavaScript interface injection and webview url interception into UAWebViewTools and UIWebView+UAAdditions.
- Deprecated Urban Airship scheme "ua" in favor of the new scheme "uairship".
- Added JavaScript interface methods - getMessageSentDateMS, getMessageSentDate, getMessageTitle, getMessageId, getUserId and getDeviceModel to match the Android Urban Airship JavaScript interface.
- Added logging channel id
- Added 3.0.2 changes:
- Moved headers to project level.
- Fixed possible crash on iOS5 when opening rich push messages with embedded images.
- Fixed duplicate notification handling on background push applications.
- Fixed possible crash with auto app integration when sending performSelector methods to the app delegate.
- Allow registrations in the background.
- Fix an issue with inbox count.
- Fix detectProvisioningMode behavior when inProduction is not set.
- Moved headers to project level.
- Fixed possible crash on iOS5 when opening rich push messages with embedded images.
- Fixed duplicate notification handling on background push applications.
- Fixed possible crash with auto app integration when sending performSelector methods to the app delegate.
- Added ability to address opted out devices through channels.
- Added Inbox message caching through UAURLProtocol.
- Added deleting expired Inbox messages even when the device is offline.
- Added deviceToken validation checks when being set in UAPush.
- Fixed bug where server side deleted Inbox messages were not being deleted on the client.
- Fixed several 64 bit warnings.
- Removed iOS 4 support. This library version supports iOS 5, 6 and 7.
- Converted to ARC (Automatic Reference Counting).
- Removed SBJSON and replaced with NSJSONSerialization.
- Removed FMDB and replaced with CoreData.
- Removed UAInboxCache.
- Use Urban Airship API V3 'Accepts' Header.
- Send Push Address in request header for location events.
- Added logging for iOS registration.
- Deprecated UAObservable and all related protocols/methods.
- UAPush has a registrationDelegate and the "delegate" property has been deprecated and renamed pushNotificationDelegate.
- UAInboxMessageList/UAInboxMessage exposes new block and delegate-based APIs.
- Added background push notification support.
- Added 64bit compatibility when building from source (Shipped binaries only contain 32bit support).
- Improved the automatic integration feature by allowing app delegates to inherit from additional classes and protocols.
- Fixed inbox message webview layout for iOS7 in sample UI.
- Fixed a possible crash in UAObservable.
- Fixed a bug that could cause failing Inbox API requests to retry indefinitely.
- Fixed Inbox database schema error resulting in the Inbox message list to be unavailable when the device is offline.
- Fixed an analytics bug where opening an application for the first time from a push notification would not count it as a direct open.
- Added the entire raw message object to UAInboxMessage to be able to retrieve data that is missing from the model.
- Fixed a bug in UAHTTPConnectionOperation causing intermittent crashes during push registration.
- Replaced the NSDictionary passed to takeOff with a UAConfig model object. More configuration options are available and can be set directly on the object (or through the AirshipConfig.plist).
- New AirshipConfig.plist format. The new key names match the property names on UAConfig, though the old keys are still valid.
- Added an auto-integration feature. By default, it is no longer necessary to add remote notification callbacks to your app delegate or explicitly register for push. This can be configured with a UAConfig option.
- The UA app key can now be automatically toggled between development and production based on the status of an app as indicated in the embedded .mobileprovision file.
- Push conversion events are now automatically collected - no integration required.
- Simplified the UAPushNotificationDelegate and UAInboxNotificationDelegate so that they provide callbacks when the app is launched from a notification and when one is received while the app is already in the foreground The Inbox delegate protocol also provides methods for receiving callbacks when a new or launch message is available for viewing.
- Renamed the UAInboxUIProtocol methods for clarity.
- Removed fragile Inbox header badge in sample UI, and replaced with Mail.app style (%d) unread count.
- Rich Push Inbox cache is now optional.
- Removed In-App Purchase and Subscriptions.
- Replaced ASIHTTPRequest with a wrapper around NSURLRequest/Connection.
- Added KIF (functional) tests to PushSample (available in our GitHub repo).
- Reports data now includes the Olson/IANA timezone and Locale. This will enable future reports and push segmentation features.
- Updated much of the code with more modern Obj-C features.
- Improved header documentation (which feeds http://docs.urbanairship.com/ios-lib/).
- Removed deprecated methods from UAPush.
- Direct access to the device token registration API can now be done directly with UADeviceAPIClient.
- UAUser now uses the same tags and aliases as the device token.
- The Urban Airship API and UI now provides a mechanismm for addressing a rich push user by the device token, rather than the User ID.
- User ID is now displayed in the PushSample application.
- Updated localization bundle strings.
- Removed outdated library macros.
- Added built-in variables for JavaScript embedded in rich push messages: UAirship.messageSentDate, UAirship.messageSentDateMS, and UAirship.messageTitle.
- Removed all IAP/Subscriptions code from libUAirship-version.a. Applications using subscriptions or in-app purchase must use libUAirshipFull-version.a. libUAirshipPush is no longer distributed as libUAirship is taking its place.
- Updated projects for Xcode 4.6 compatibility.
- Added AppleHostedStoreFrontSample - a modified version of our StoreFront sample that uses Apple's StoreKit download feature.
- Removed original files for external dependencies
- Updated the README with more documentation and a section on contributing code.
- Added more explanatory comments to the sample app delegates.
- The library no longer displays UIAlertViews with error messages - look for errors in the console log.
- Added hooks for internal CI systems.
- fixed crash in UAAnalyticsDBManager that occured when adding events in a background task
- fixed crash on [UAirship land] associated with releasing key/value observers in the wrong order
- updated logging, added UALogLevel enum to set logging preferences in UAGlobal
- changed device token handling in UAUser to fix issue with device tokens not being updated properly
- updated splash screens and GUI to support iPhone 5
- started caching UA-ID to speed up analytics
- fixed crash because of weak reference in UAPush to NSUserDefaults
- fixed issue in UAPush when unregistering with a nil device token
- added ability to set a default value for push in NSUserDefaults, previously defaulted to yes
- updated PushSample app to demonstrate new push functionality
- updated README with new documentation
- fixed issue when displaying cached Rich Push messages with UTF8
- fixed edge case where a location event could be discarded while waiting for user to allow location based services
- fixed analyzer issues in UAInboxURLCache, UAInboxOverlayController
- library now disables analytics if no server is specified
- moved deviceTokenHasChanged observation to UAUser
- added queuing for analytics read/write access
- Updated projects for iOS 6 and Xcode 4.5
- Added exception when [UAirship takeOff:] is called on a thread other than the main thread
- Fixed registration error that occurred when a device unregistered, then re registered
- Added delegate callback for the significant change location service
- Updated sample projects and UI to reflect new registration workflow
- Quiet time fixes in sample app
- Fixed alias migration bug
- Setting the pusheEnabled property registers and unregisters device tokens
- Deprecated unRegisterDeviceToken
- Fixed unit tests
- Fixed issue with unregistration that prevented subsequent registration
- Deprecated registration related methods in UAirship and moved them to UAPush
- Changed behavior for alias,tags, and quiet time, property setters no longer automatically trigger a registration API call, refer to UAPush.h for details
- Device metadata (tags,alias,quiet time) is now persisted before a successful registration update
- Added auto retry for certain server responses in UAPush during registration
- Fixed problem reporting hard push conversions in some situations
- Updated UALocationService to shut down single location tasks in a timely manner when unrecoverable CLLocationManager errors occurred
- Modified UALocationService single location settings to prevent high accuracy location calls from constantly timing out in poor GPS conditions
- Changed UALocationService delegate callbacks when the location service cannot retrieve a location that meets accuracy requirements
- Dropped support for iOS versions prior to 4.0
- Location service improvements
- Fixed crash when reporting location to UALocationService from background thread
- Modified UALocationServiceNSDefaultsKey values to contain the "UALocationService" prefix
- CoreTelephony is now required
- Added location support
- IAP and Subscription content URL cache fixes
- Removed all UDID usage
- Added UA-specific device ID
- Added the ability for devs to access the UAUser ID through a Settings.bundle for support purposes
- Added nil product check to pending download and decompression logic
- Cleared sessions have an empty string session_id value after app backgrounding
- Fixed incompatibility between ASIHTTPRequest and UA_ASIHTTPRequest introduced in recent update
- Fixed Subscriptions decompression path bug that resulted in content unzipping into a content key subdirectory
- Updated HTTP client libraries
- IAP and Subscription content URLs are cached for 24 hours after purchase
- Improvements to resuming incomplete installs for IAP and Subscription content
- Subscriptions UI now supports free subscriptions
- Subscriptions checks if products are available before submitting receipts
- FIX: takeOff no longer crashes if the build field in Xcode is not set
- FIX: Downloaded content is stored in Caches on iOS 5.0 and marked with the "do not back up" attribute on iOS 5.0.1
- FIX: Tag API is working properly
- FIX: Inbox "Mark as Read" button is unavailable once a message is marked as read
- Registrations will no longer be performed when the app is running in the background
- FIX: Background download tasks will only be created when there are pending downloads.
- FIX: Properly release UIAlertView displayed in the Inbox UI when messages arrive while the app is running.
- Code-level docs are available at http://urbanairship.com/docs/ios-lib/ (a work in progress)
- Silenced analytics/reports-related logging by default.
- Added new iOS5-related analytics events
- Trim whitespace from AirshipConfig.plist keys and secrets
- Removed the need for extra linker flags (all_load and the weak ref to libSystem.B)
- Fixed decompression failure error message text in In-App Purchase
- Fix URL-encoding issue in UAPush single-tag methods
- UAPushNotificationDelegate's methods are now optional
- Fixed a UAPushNotificationDelegate selector with an empty parameter name
- Fixed a bug in the autorenewable product renewal flow. Renewals are now handled properly.
- Fixed a bug in the SKTransaction handling when both SubscriptionLib and StoreFrontLib were used.
- Fixed a bug in subscription receipt validation. Transactions are now kept open until a receipt is validated.
- Major updates to InboxLib and the Rich Push Inbox sample
- Methods and properties related to setting the "active" inbox have been eliminated or renamed
- UAInboxAlertProtocol has been removed
- The inbox database has been renamed from "Airmail.db" to "UAInbox.db"
- Inbox messages can carry an explicit content type other than text/html
- UAInboxMessageList supports concurrent batch updates
- Message extras are now retrieved and cached locally
- Improvements to message and asset cache for performance
- Improvements to Obj-C <-> JavaScript bridge
- Added message id and user id values to the message detail's JS environment
- See http://support.urbanairship.com/customer/portal/articles/200710-upgrading-to-rich-push-in-1-1- for information on specific items added, removed or modified
- UAInboxMessageListObserver breaks out batch update events in explicit success/failure methods
- Cleaner separation from UAUser observer patterns
- New UAInboxPushHandlerDelegate protocol allows for a user-specified delegate to respond to incoming in-app messages
- iPad specific classes and xib files have been removed
- iPhone interfaces have been generalized to be adaptable to the iPad UI idiom
- New UAInboxOverlayController allows for displaying incoming Rich Push messages in an overlay window superimposed over your content
- UAInboxMessageListController and UAInboxMessageViewController have been redesigned to be embeddable in non-modal contexts, like navigation controller stacks and tab bar controllers
- New UAInboxNavUI embeds the inbox in a navigation controller or popover controller
- The InboxSample project allows you to select between multiple UI classes on the fly as a quick overview of the different inbox interface styles
- Rebuilt 1.0.6 in Xcode 4.1 to address an armv7 issue in the Xcode 4.2 generated static library
- Added Autorenewable subscription support. Purchasing is identical to the non-autorenewable process.
- Added a restore process that will work on multiple devices without email entry. To trigger a restore, call UASubscriptionManager's restoreAutorenewables method. The subscription list will be automatically reloaded when the restore is complete.
- Added new events in UASubscriptionManagerObserver (see UASubscriptionManager.h for details on their use).
- Added UASubscriptionAlertType value that indicates restore failure: UASubscriptionAlertFailedRestore
- The inventory now has an availableProducts property that contains items that are available for sale.
- Added contentForKey: convenience getter to UASubscriptionInventory
- Added publish date for subscription content
- Added option to set custom download directory for subscription content
- Subscription content is now placed in a subdirectory named with the content key OR the specified product ID if it is available
- The "Settings" button has been replaced with a "Restore" button.
- The email entry interstitial UIAlertView has been removed.
- Modified sample app to use the product ID string rather than the subscription product object
- Fixed modal view issues in each sample UI
- Fixed a crash caused by the unread count graphic in the Inbox UI
- Updated purchase calls so they no longer use iOS5-deprecated purchase methods
- UAUser may now be instantiated before takeOff so that you can add observers for the creation process.
- Added UAUserStateCreating value to the UAUserState enum
- Fixed crash in IAP library caused when a product was purchased multiple times in a single app session.
- Added flexibility to UAHTTPConnection. Supports multiple methods, auth.
- Disabled reports uploads when app is not active
- The library header imports have been cleaned up to prevent conflicts. You may need to add some additional imports to any custom UI classes (e.g., UASubscriptionProduct.h)
- Instance variables are now private
- Better documentation. New AR functionality is documented in headers.
- Updates for Xcode 4.1 and 4.2 beta
- Fixed bug where the StoreFront sample UI would not return control to the original window.
- Fixed bug where product_id was missing from subscription objects.
- Fixed enum collisions with external libraries.
- Fixed multiple exec_bad_access crashes in StoreFront UI.
- Fixed bug that would append product_id to download custom download directories.
- Fixed bug that would append trailing slashes to tags.
- Fixed bad property assignment in UAInboxUI.
- Fixed early SKTransaction finish calls that could cause a crash.
- Fixed bug that could cause downloads to fail on retry and appear stuck.
- Fixed bug where StoreFrontDetails viewcontroller could be pushed twice and crash.
- Fixed arm6 LLVM bug that would cause crashing on older devices when launching UAirship.
- Moved UAInboxMessageListCell to shared.
- Removed extra logging, and changed logs to be triggered by a takeOff options flag LOGGING_ENABLED
- Removed all non-essential code files from Airship/External directory.
- Library is now a single arm6/arm7/i386 universal release file.
- Xcode4 support for all projects.
- Added Analytics to all products and samples. Gathering basic device data and tracking app state to determine push conversion related data. Can be enabled/disabled via takeOffOptions, on by default.
- Added a completely re-worked PushLib with an all new sample project and UI. Includes a number of handlers for making push, alias, tags, and auto-badge much simpler to use.
- Add ability to send key/secret and other settings via takeOffOptions.
- Added cleaner exits and error handling for missing UI classes.
- Renamed log macros to have a UA_ prefix.
- Fixed enum linker collisions on Reachability and asihttp.
- Fixed IAP iPad UI crash in landscape mode.
- Updated copyrights
- Fixed storeFrontWillHide delegate call. Removed storeFrontDidHide.
- Updated all projects to use Clang/LLVM 1.6 as default (fully compatible now)
- Fixed numerous LLVM/Analyzer warnings
- Fixed bug causing downloads to still go to NSDocuments instead of NSLibrary
- Removed category on UIDevice, eliminating -all_load flag requirement, and moved the functionality to UAUtils
- Fixed dateFormatter to require GMT and en_us_posix locale
- Fixed bug where download directory intermediate dirs were not initialized
- Fixed bug that would erroneously cause subscription transactions to finish early with rare network issues.
- Moved keys to AirshipConfig.plist
- Added missing -all_load linker flags
- Added UATagUtils helper class for setting typical device tags
- Removed unused class UAInboxDelegate
- Updated README
- First Static Library Release