iOS SDK Release Notes¶
Version 8.3.0 - 10/12/2017¶
- Fix for UIKit APIs called from background thread
Version 8.2.2 - 10/05/2017¶
- Fix for ad calls blocking main thread
Version 8.2.1 - 09/12/2017¶
- Fix for potential race condition during app foreground/ background transitions
Version 8.2.0 - 08/28/2017¶
- Minor bug fixes
Version 8.1.0 - 05/30/2017¶
- Support for re-engagement ads
- Support for 3P viewability criteria for static ads
- Added new 3P beacon for partially viewable ads
Version 8.0.2 - 4/25/2017¶
- Updated analytics session reporting. A session fragment sent for a crashed session will now contain all events and errors that occurred during that session.
Version 8.0.1 - 04/05/2017¶
- Updated pod file to reflect minimum version support as iOS 8.
Version 8.0.0 - 04/04/2017¶
- Moved the Minimum OS version supported to iOS 8.
- Ads video player update.
- Added fixes for Revenue receipt validation.
- Removed Flurry static Ads APIs.
- Deprecated Tumblr in-app sharing APIs.
- Bug fix for Ad Targeting.
Version 7.10.0 - 02/23/2017¶
- Fix for native video ad callback delegate
Version 7.9.2 - 01/11/2017¶
- Bug fix for memory corruption issue
Version 7.9.1 - 01/05/2017¶
- Added API to enable auto-logging IAP as Revenue Analytics events
- Deprecating API setEventLoggingEnabled
- Minor bug fixes
Version 7.8.2 - 11/17/2016¶
- Fix for crash in FlurryAdManager module
- Support for new image ad asset called Thumbnail (180x180)
- Minor bug fixes
Version 7.8.0 - 10/03/2016¶
- Revenue Analytics to track revenue through inApp purchases. Learn more on Revenue Analytics here
- Fix for crash in the FlurryContentLoadingManager module
- Fix for crash in FlurryAdManager module
Version 7.6.6 - 07/07/2016¶
- Portrait video support on interstitial ad spaces
- Fix for crash in the FlurryContentLoadingManager module
- Fix for Pulse crash caused during retransmission attempts
Version 7.6.4 06/07/2016¶
- Improved synchronization for Pulse
- Fixed crash when using avro to build Flurry Pulse requests
- Pausing video on collapse
- tvOS Support added
Version 7.6.3 05/12/2016¶
- Fixed issues in Moat 3rd party video viewability
Version 7.6.0 04/04/2016¶
- Support for Moat 3rd party video viewability, which allows demand side to attract additional brand advertisers who have Moat viewability as a table stakes requirement
- Fixed crash with battery monitoring
- Fixed unrecognized selector in Pulse
Version 7.5.2 03/09/2016¶
- Flurry is dropping support for iOS5 from both analytics and Ads SDK. Minimum supported version from this release onwards is iOS6
Version 7.5.1 02/20/2016¶
- Fix for unrecognized selector errors seen on iOS7 and below
Version 7.5.0 02/16/2016¶
- Flurry Analytics support for watchOS 2
- Support for VAST video demand from RTB Marketplace in native ad unit.
- Fixed crash in data sender and ad manager asset loading modules
- Fixed the corner scenarios when the video ads appear cut off
Version 7.3.0 10/29/2015¶
- Moved SDK code to ARC to provide more stability
- Support for expandable ad views for Gemini native ads. Publishers can construct an ad unit that is viewable in both collapsed and expanded format utilizing more detailed assets in the larger view.
Version 7.2.1 10/02/2015¶
- Fixed issue with gesture handler that could cause accidental clicks on native ads
Version 7.2.0 9/24/2015¶
- Support for Pulse 2.0, providing more flexibility to share app data to mobile partners without integrating their SDKs. Learn more on Pulse here
- Fix for race condition where UI freezes when multiple ads are fetched
Version 7.1.1 9/15/2015¶
- Fixed warning about bitcode compatibility on iOS 9. “ld: warning: full bitcode bundle could not be generated. The library must be generated from Xcode archive build with bitcode enabled (Xcode setting ENABLE_BITCODE)”
Version 7.1.0 9/08/2015¶
- iOS 9 Compatibility
- Support for Bitcode
- Ads SDK will open URLs in Safari view controller for iOS 9 devices
- Minimum iOS version support moved to iOS 5 for both ads and analytics SDK, dropping support for armv6
Version 7.0.0 8/25/2015¶
- Introducing Tumblr in-app sharing functionality that allows publishers to share content and deeplinks on Tumblr to drive installs and reengagement
Version 6.7.0 7/21/2015¶
- Added support for Gemini native infeed video ads
- Added call to action text, app categories, and app star ratings for native ads
- Improved memory management for native ads
- Introducing support for specific attributes to be associated with sessions
- Improved session reporting resulting in reduced report size
Version 6.6.0 6/26/2015¶
- Safeguards against premature removal of native ad objects
- Fixed crashes in asset precaching
Version 6.5.0 5/21/2015¶
- Fixed conversion attribution in native ads
Version 6.4.0 4/22/2015¶
- Analytics support for Apple watch. Please read Analytics readme included in 6.4.0 SDK package to integrate Flurry analytics in watchkit extension
- Ad requests are queued if session is not yet created
- Improved serving of install ads
- Improved logging of ad events
- Added spaceDidDismiss delegate callback for native ads
- Support for legacy Static Ad APIs is deprecated
Version 6.3.0 3/26/2015¶
- Support for new product - Flurry Pulse - currently in developer preview, which allows applications to send app usage data to comScore through Flurry SDK.
- Fixed issue with slowness in main thread when using native ads
- Fixed crashes in httpTaskDelegate, ad delegate callbacks and viewabilityTracker
- Provided an API to check if native ad has expired
- Provided an API to get current session ID and added callback at session start
- Fixed issue with time stamp in session reports
- Updated SDK support for display ads mediation Admob, Millennial and inMobi
Version 6.2.0 2/17/2015¶
- Introduced Yahoo Gemini Native ads support. Flexible ads that can be tailored to fit the design of any app
- Support for Brightroll demand in video adspaces
- Minor fixes for MRAID and Video ads
Version 6.0.0 12/09/2014¶
- New object oriented APIs to make integration easier. It is recommended to use these APIs.
- Use of HTTPS is now mandatory
- Inform server of launch options and developer’s preference on tracking background sessions
- Fixed issues with VAST wrapper
- logEvent() returns status code to indicate if event was recorded successfully
Version 5.4.0 09/23/2014¶
- Support for iOS 8 and Xcode6 GM
- Adapted to the view architecture of iPhone 6/iOS 8
- Removed nonmodal view controller support for banners and full screen ads.
- displayAdForSpace:modallyForViewController has been deprecated.
- displayAdForSpace:onView:viewControllerForPresentation and fetchAndDisplayAdForSpace:view:viewController are the updated versions of banner and interstitial ad APIs and take in a view controller that will be used for presenting full screen ads.
- Improved caching for videos served through VAST
- Handles situation where no iOS identifiers are available for background apps
Version 5.3.0 08/20/2014¶
- Support for iOS 8 and Xcode 6 builds (Tested with iOS 8 beta5)
- Removed MAC address access for iOS 7 and above
- Improved video ads caching for iOS 8
- Support for mediation of Facebook audience network
Version 5.2.0 07/01/2014¶
- Support more DSP partners for VAST ads
- Improved handling of Client side RTB auction
Version 5.1.0 06/16/2014¶
- Improved in-app iTunes store experience through VAST ads
- Fix for “video did not play” error
Version 5.0.0 - 04/25/2014¶
- Pre-caching feature is available for video ads
- Support for VAST videos over RTB marketplace
- Video ads can be made non-skippable through developer controlled setting
- Support for client initiated marketplace auction at time of display
- Stabilized experience for in-app app-store
- Improved display of banner and full screen ads
- logAllPageViews method is deprecated. logAllPageViewsForTarget and stopLogPageViewsForTarget should be used instead of the deprecated method.
- Changed the adWillDisplayForSpace and adRequestComplete methods in FlurryCustomAdNetwork protocol to pass the ad space.
Version 4.4.0 - 03/27/2014¶
- Fix to prevent pixel from firing early for banner ads served on marketplace
- Support for click tracking on marketplace interstitials
- Prevent back to back auctions
- User Agent is included in the ad requests
- Device orientation is included in ad request to get better sized ads
- Fix to prevent crash in opening in-app appstore from landscape only application
- Preventive check in logEvent to avoid crash if bad parameters are passed in
- Enhanced user experience for banner ads and post view on video ads
- Video completion callback (videoDidFinish) is only supported for rewarded ad spaces
Version 4.3.2 02/06/2014¶
- Addressed issue related to referencing IdentifierForAdvertisers that could lead to app being flagged during Apple review process.
Version 4.3.1 01/09/2014¶
- Fix for app freeze if user clicks multiple times while auto-redirecting to app store after watching a video
- Fix for race condition that can cause video to close abruptly
- Fix for crash reports showing up if application uses another solution with same underlying crash tool
- Prevent Rich Media ads from showing two close buttons
- Prevent ads from opening in external view before display has been called
- Maintain different cache for portrait and landscape interstitial ads
Version 4.3.0 10/17/2013¶
- Support for 64bit ARMv8 architecture
- Fix for events logged during app resume to have correct event identifiers
- Invalidate ads cache when values for keyword targeting are changed
- Fix for race condition that can cause banner ad to disappear
- Added support to honor frequency cap of 1
- Appcircle & Appspot takeover ads in non-modal view will be locked to the screen orientation in which they were fetched
- Please note that if app uses Flurry SDK for mediation of third party networks and is built with ARM64 slice, there may be issues in rendering of ads from those networks on iPhone5s and other ARM64 iOS devices. This is because some third party networks have not updated their SDKs to support ARM64.
Version 4.2.4 09/11/2013¶
- Fix to prevent reporting of existing crashes on an abnormal exit of application
- Fix for session reporting issue when application is in background
Version 4.2.3 - 08/09/2013¶
- Compatible with iOS 7 beta releases
- Updated getFlurryAgentVersion routine to retrieve a string that has the Flurry SDK release version number in addition to the agent version
- Crash Analytics has been promoted from Beta to General Availability and is now recommended for all users. It is disabled by default to avoid conflicting with other crash reporting tools that may be in use
- iOS Security framework is now required for Flurry Analytics
- Improved handling of network connectivity loss for ads and analytics
- Ad support framework is now required for Flurry Ads
- Better error handling and improved ad rendering on interstitials
- Improved metrics collection for ads
- Jumptap mediation has been deprecated
- Mobclix mediation supported through mobclix 3.2.0 only
Version 4.2.2 - 06/24/2013¶
- Changed the library names from libFlurry*.a to libFlurry*_<ReleaseVersion>.a
- Support to display ads modally on a view. Please refer to advertising readme for more information
- New api setBackgroundSessionEnabled() to indicate if app is a background app. This setting is suitable for music and radio apps. Please refer to analytics readme for more information
- New api setLogLevel() allows app to control Flurry’s log level
- Support for InMobi SDK 3.7.0
- Support for Millenial Media SDK 5.0.1
- Fix for inapp appstore crash
- Bug fixes for CPC/CPI ads, video ads
- Support for oriented cache to show correct banner ads when screen orientation changes
- Support for Click tracking for RTB
- Secure transport option for ad request
Version 4.2.1 - 4/29/2013¶
- Fix for linking errors associated with the Crash Reporter framework. Crash reporting is only supported for applications that target armv7 architectures (armv7s inclusive). If an applications is built for both armv6 and armv7 then it will continue to work as before when it runs on an armv6 device and will have crash reporting disabled.
Version 4.2.0 - 4/8/2013¶
- Linked with a crash reporter framework that has fix for device kernel panics that were seen on iOS 6 devices with the earlier framework in version 4.1.1
- Crash reporting and capturing stack traces for logged errors is turned off by default. Please see documentation on how to enable.
- Fix to make video banner rotations consistent.
- Fix for iAD blank banner ads.
- Fix to prevent banner refreshes while the app is backgrounded.
- Fixes incorrect ad impression counting for third party networks.
- Improved handling of errors from third party networks.
- Improved network usage while sending ad reports
- Added change to reload mraid ad on takeovers.
- Added change to support server redirection from specific mraid providers
- Improved memory management.
- Use of in-app appstore, on ios 6, for some of the ads that re-direct you to the app store.
- Improvements to ad failovers in ad network waterfalls.
Version 184.108.40.206 - 3/14/2013¶
- Changes the temporary storage location for files.
Version 4.1.1 - 2/21/2013¶
- Crash Reporting (BETA)
- fixes mediation/waterfall for ads
- fixes for ad delegate callback not being fired
- fixed for removing uipasteboard, added in sanity check
- fixes for admob mediation takeovers
- fixes for missing adlogs after video completion
- fixes for no banners after video ads
- allow same adnetwork in ad request
- memory management in endTimedEvent
Version 220.127.116.11 - 2/13/2013¶
- Fixes the memory corruption in the case where the notification pane is shown after ads are fetched or shown
Version 18.104.22.168 - 2/01/2013¶
- Fixes crash in the case where ads are displayed on top of alerts.
Version 22.214.171.124 - 1/24/2013¶
- Fixes issue where blank interstitials are displayed on apps running on iOS 4.3
- Fixes crash that can arise with MallocScribble enabled
Version 4.1.0 - 11/29/2012¶
- Support for Mraid v1.0 specification.
- Fixes issue when app backgrounded with video confirmation dialog showing.
Version 4.0.9 - 11/16/2012¶
- Incorporates additional ids for better conversion and ad tracking.
Version 4.0.8 - 11/08/2012¶
- Fixes issue on letterboxed apps on iPhone 5. The close button on videos became non-responsive in landscape.
Version 4.0.7 - 10/28/2012¶
- Updates initial display for autoplay videos
- Updates video to disable FullScreen mode button
- Fixes scenario where ad showing in landscape can initially appear with portrait layout
- Updates to only reset window state for mraid ads if the ad was previously expanded
- Fixes crash related to UIPasteboard
Version 4.0.6 - 10/15/2012¶
- Updates ads from mediation networks to center within a view when the view is larger than the ad frame
- Fixes issue in landscape only apps where ad rotation can cause future alerts to appear in portrait
Version 4.0.5 - 10/03/2012¶
Adds the following methods to fetch, check and display ads. These allow for finer control of ad display:
- (void) fetchAdForSpace:(NSString*)space frame:(CGRect)frame size:(FlurryAdSize)size;
- (BOOL) adReadyForSpace:(NSString*)space;
- (void)displayAdForSpace:(NSString*)space onView:(UIView *)view;
- (void)fetchAndDisplayAdForSpace:(NSString*)space view:(UIView *)viewContainer size:(FlurryAdSize)size;
Deprecates following methods to show ads and check availability in favor of the above:
- (BOOL) isAdAvailableForSpace:(NSString*)space view:(UIView *)view size:(FlurryAdSize)size timeout:(int64_t)timeout;
- (BOOL)showAdForSpace:(NSString*)space view:(UIView *)viewContainer size:(FlurryAdSize)size timeout:(int64_t)timeout;
Introduces new and updated delegates in FlurryAdDelegate.h
- (void) spaceDidReceiveAd:(NSString*)adSpace;
- (void) spaceDidFailToReceiveAd:(NSString*)adSpace error:(NSError *)error;
- (BOOL) spaceShouldDisplay:(NSString*)adSpace interstitial:(BOOL)interstitial;
- (void) spaceDidFailToRender:(NSString *)space error:(NSError *)error;
- (void)spaceWillDismiss:(NSString *)adSpace interstitial:(BOOL)interstitial;
- (void)spaceDidDismiss:(NSString *)adSpace interstitial:(BOOL)interstitial;
Adds new method in FlurryAds to register a custom network
- (void) addCustomAdNetwork:(Class<FlurryCustomAdNetwork>)adNetworkClass withProperties:(id<FlurryCustomAdNetworkProperties>)adNetworkProperties;
Updates support for ad networks to the following versions:
- inMobi 3.6.0
- Mobclix 600
- Millennial 4.6.1
- Fixes issue where network calls at the end of a session could cause app to terminate instead of backgrounding
- Fixes issue where the loss of connection in the middle of ad serving could block the main thread.
- Updates all ad units to support larger display of iPhone5
- Updates metric collection to better represent fill rate for mediation
- Updates Custom ad network framework to make it easier to integrate ad networks that are not supported natively. The new files are included in the Mediation folder of the SDK download.
Version 4.0.4 - 09/17/2012¶
- Removes Debug symbols that cause warnings during compilation
Version 4.0.3 - 09/13/2012¶
- Built from Xcode 4.5 and includes support for iPhone 5 and armv7s
- Strips symbols to avoid conflict with other JSON libraries
- Disables context menu in ad
- Disables scrolling for banners
- Updates to Custom Network Framework
- Adds support for iAd takeovers
- Update to support Millennial 4.6
Version 4.0.2 - 07/30/2012¶
- Updates reachability status changed notification to be namespaced to avoid collisions
- Improvements to resolve memory leaks
Version 4.0.1 - 07/19/2012¶
- Improves responsiveness when user closes an ad
- Fixes issue of ads not appearing intermittently on iOS 4.3
- Add reachability methods to determine network availability before showing pre-cached ads
- Adds fix to prevent decoding issues in transmission of user cookies
- Removes extraneous file that referenced CoreLocation framework
Version 4.0.0 - 06/14/2012¶
- Adds method to check if an ad is available
- Adds method initialize to allow precaching of ads at startup.
- Adds methods setKeywordsForTargeting:(NSDictionary *)keywords and clearKeywords to allow campaign targeting based on developer supplied key-value pairs.
- Updates showAdForSpace:viewContainer:size:timeout method to include default size parameter
- Updates showAdForSpace:viewContainer:timeout to display ad completely asynchronously (without blocking) when timeout is set to 0. This is useful for the display of banners where interaction with the app can continue unimpeded by the ad display (in contrast to an interstital view).
- Updates addUserCookies:(NSString *)key value:(NSString *)value to setUserCookies:(NSDictionary *)userCookies to allow for input of multiple cookies in a single line of code.
- Updates ad tracking to specify unique key for every distinct frame.
- Fixes issue where banner would no longer refresh if the next ad was unavailable.
- Fixes issue where displaying a rewarded catalog only logged the impression for the first offer.
- Fixes issues where a video ad couldnâ€™t be closed and clicking on the fullscreen button caused the video to go black.
- Fix for retaining reported ids in raw byte form rather than converting to hex strings.
Version 4.0.a.83 - 05/18/2012¶
- Implementation of Rewarded Catalogs
- Added a method to enable setting up individual ad spaces to receive test ads.
- Fixes issue where adding an ad to a larger viewspace applies a double offset to the frame’s x and y coordinates, which caused misalignment.
Version 4.0.a.81 - 05/08/2012¶
- Implementation of AdNetworks
- iAd: banners
- Admob: banners, interstitials
- Millennial Media: banners, interstitials
- inMobi: banners, interstitials
- Greystripe: banners, insterstitials
- Mobclix: banners, interstitals
- Jumptap: banners, interstitials
- Allows finer control of ad display with new method [FlurryAds removeAdFromSpace:]. This method allows a publisher to decide exactly when to remove an ad from a view (e.g. - in the viewDidDissapear selector).
- Adds FlurryAdDelegate.h to FlurryAds bundle. This header file specifies the delegates that allow advanced interaction with ad serving.
- Removes loading activity indicator that appeared over banners when switching to a new ad.
- Prevents sending of ad logs at the end of session on devices and apps that do not support backgrounding. Invoking network connections in that scenario could lead to a crash.
- Fixes case in which an ad can be over-released leading to a crash.
- Fixes crash that can arise when automatically refreshing a banner ad.
Version 4.0.a.80 - 05/02/2012¶
- Initial Release of Alpha SDK
- Removed UDID collection
- Maintenance build to improve performance
- Fix mem leaks in Analytics
The Flurry iOS 3.0.7 SDK provides the following changes:
- Fix for referencing deallocated Ad delegate in Clips
- Reduce possible duplicate symbols between Analytics lib and Ad libs when compiling with -all_load option
- Fix for the issue where at times the Reengagement banner expands from the top even though the collapsed banner is at the bottom of the screen
- Update Reengagement documentation
The Flurry iOS 3.0.6 SDK provides the following changes:
- Unique Ids for events, errors, AppCircle ad logs
- Ad callbacks updated to use unique Id and ad state offset params
- In-App canvas view for AppCircle
- Checksum for validating data integrity
- Fix possible backup session file corruption
The Flurry iOS 3.0.5 SDK provides the following changes:
- prevents running startSession more than once if a session is already started
- fixes a memory leak
- fixes impression overcounting that can occur sometimes in updated banners
The Flurry iOS 3.0.4 SDK provides the following changes:
- resolves Pasteboard copy/paste issue
The Flurry iOS 3.0.3 SDK provides the following changes:
- Follows new policies on session data and backup rules for different iOS versions
- Fix to use most appropriate ad version request to improve bandwidth usage
- Reports another FlurryId which is expected to be more universal and easier for developers and partners to work with
- Remove duplicates in ad reporting which had previously inflated impression and click counts before the backend workaround was put in place
The Flurry iOS 3.0.2 SDK provides the following changes:
Adds an enhancement to the reporting protocol.
Updates to improve user experience of banners:
- Only accepts a single click
- No longer displays blank intermediary page
- No longer show canvas page
- Banner rotates when returning to app
The Flurry iOS 3.0.1 SDK renames appName to avoid a naming conflict for apps submitted to AppStore.
The Flurry iOS 3.0.0 SDK introduces a new modularized library structure, separating Analytics API functionality and AppCircle API functionality into FlurryAnalytics and FlurryAppCircle libraries.
Developers still get all the same functions and features as before but with the following added advantages of a new modularized library structure:
- logical groupings of API functionality and features
- reduced overhead of application size and memory footprint with independence to linking Advertisement libraries as desired
The FlurryAnalytics library has a new API method to optionally set session reporting requests to HTTPS.
Marks the first release including AppCircle Clips.
- Disabled check for Jailbroken devices
- Added a new recommendation type (takeover) for iPhone AppCircle
- Change multiple method signatures to standardize SDK methods in different platforms
- Remove libFlurryWithLocation and replaced with a generalized setLocation() function
- Added support for AppCircle in iPad applications including a new recommendation type (take over)
- Improved speed of reporting on session start
- Supports Xcode 3.2.3 and above
- Default pause session reporting is on for applications using iOS 4 features
- Configurable pause time before new session is started
- Displaying and closing canvas can be animated
- Allow endTimedEvent to update event parameters
- Change setAppVersion to be configured before session starts
- To support OS 3.x, please set Base SDK to iPhone Device 4.0 and iPhone OS Deployment Target to iPhone OS 3.0. Extra linker flags may be needed if NSConcreteGlobalBlock and UIBackgroundTaskInvalid runtime error occur under 3.x.
The linker flags are:
- weak_framework UIKit
- weak_library /usr/lib/libSystem.B.dylib
- Improve memory usage in pause/resume cycle
- Pausing the app will not send sessions by default
- Fix AppCircle image parse error
- Close AppCircle canvas on pause
- Send sessions data when paused.
- May create a new session depending on length of pause or will continue the current session on resume.
- Supports Xcode 3.2.3 and below
- Removed device data collection including Model Name, OS Version and Firmware Version
- Adds support for features from the old PinchMedia API including the ability to:
- Track page views
- Time events
- Acquire age demographics
- AppCircle is now available to all developers!
- Applications will attempt to send session reports at the end of the session by default to improve reporting speed. This can be disabled via the SDK.
- Note thatAppCircle is disabled by default, please enable AppCircle from the SDK before using AppCircle banners.
- AppCircle release candidate SDK for use in the Beta program
- Added tracking of when sessions are paused for new analytics
- Fixed jailbreak metrics reporting in the iPhone simulator
- Added the ability to detect jailbroken devices which will be shown as a metric soon.
- Add automatic detection of the AppStore Id of the application to make categorization easier.
- Includes minor bug fixes including minor memory leak fixes.
- Added the option to enable session reports to be sent at the end of a user session. This will increase the speed at which event data, error logging and session length metrics are updated as it does not require waiting until the next session to report.
- Added the ability to track user paths and event parameters to allow for more robust reporting around custom events.