All notable changes to this project will be documented in this file.
AFNetworking adheres to Semantic Versioning.
Released on Friday, May 04, 2018. All issues associated with this milestone can be found using this filter.
- Xcode 9.3 Support
- Implemented by Jeff Kelley in #4199.
- Update HTTPBin certificates for April 2018.
- Implemented by Jeff Kelley in #4198.
- Remove conflicting nullable specifier on init
- Implemented by Nick Brook and Jeff Kelley in #4182.
- Use @available if available to silence a warning.
- Implemented by Jeff Kelley in #4138.
- UIImageView+AFNetworking: Prevent stuck state for malformed urlRequest
- Implemented by Adam Duflo and aduflo in #4131.
- add the link for LICENSE
- Implemented by Liao Malin in #4125.
- Fix analyzer warning for upload task creation
- Implemented by Jeff Kelley in #4122.
Released on Friday, December 15, 2017. All issues associated with this milestone can be found using this filter.
AFImageRequestCacheimplementer if an image should be cached
- Implemented by wjehenddher in #4010.
- Implemented by skyline75489 in #3753.
- Enable custom httpbin URL with
- Implemented by 0xced in #3748.
AFHTTPSessionManagernow throws exception if SSL pinning mode is set for non https sessions
- Implemented by 0xced in #3687.
- Update security policy test certificates
- Implemented by SlaunchaMan in #4103.
- Allow return value of HTTP redirection block to be
- Implemented by TheDom in #3975.
- Clarify documentation for supported encodings in
- Implemented by skyline75489 in #3750.
- Handle Error Pointers according to Cocoa Convention
- Implemented by tclementdev in #3653.
AFHTTPSessionManagerdocumentation to reflect v3.x change
- Implemented by ecaselles in #3476.
- Improved code base to generate fewer warnings when using stricter compiler settings
- Implemented by 0xced in 3431.
- Change “Mac OS X” and “OS X” references to “macOS”
- Implemented by SlaunchaMan in #4104.
- Fixed crash around customizing
NSURLCachesize for < iOS 8.2
- Implemented by kcharwood in #3735.
- Fixed issue where
UIWebViewextension did not preserve all of the request information
- Implemented by skyline75489 in #3733.
- Fixed bug with webview delegate callback
- Implemented by kcharwood in #3727.
- Fixed crash when passing invalid JSON to request serialization
- Implemented by 0xced in #3719.
- Fixed potential KVO crasher for URL Session Task delegates
- Implemented by 0xced in #3718.
- Removed ambiguous array creation in
- Implemented by sgl0v in #3679.
- Fixed issue where
NS_UNAVAILABLEis not reported for
- Implemented by Microbee23 in #3649.
- Require app extension api only on watchOS
- Implemented by ethansinjin in #3612.
- Remove KVO of progress in favor of using the NSURLSession delegate APIs
- Implemented by coreyfloyd in #3607.
- Fixed an issue where registering a
UIProgessViewto a task that was causing a crash
- Implemented by Starscream27 in #3604.
[self didChangeValueForKey:@"currentState"]into correct scope
- Implemented by chenxin0123 in #3565.
- Fixed issue where response serializers did not inherit super class copying
- Implemented by kcharwood in #3559.
- Fixed crashes due to race conditions with
- Implemented by alexbird in #3526.
- Updated dash character to improve markdown parsing for license
- Implemented by gemmakbarlow in #3488.
- Deprecate the unused stringEncoding property of
- Implemented by 0xced in #3751.
- Removed unused
- Implemented by yulingtianxia in #3432.
Released on Thursday, March 31, 2016. All issues associated with this milestone can be found using this filter.
- Implemented by quellish in #3367.
AFPercentEscapedStringFromStringfor public use.
- Implemented by Kevin Harwood in #3160.
- Updated Test Suite to run on Xcode 7.3
- Implemented by Kevin Harwood in #3418.
- Added white space to URLs in code comment to allow Xcode to properly parse them
- Implemented by Draveness in #3384.
- Updated documentation to match method names and correct compiler warnings
- Implemented by Hakon Hanesand in #3369.
NSKeyValueChangeNewKeyconstant in change dictionary rather than hardcoded string.
- Implemented by Wenbin Zhang in #3360.
- Resolved compiler warnings for documentation errors
- Implemented by Ricardo Santos in #3336.
NSURLSessionAuthChallengeCancelAuthenticationChallengefor SSL Pinning
- Implemented by Kevin Harwood in #3417.
- Removed trailing question mark in query string if parameters are empty
- Implemented by Kevin Harwood in #3386.
- Fixed crash if bad URL was passed into the image downloader
- Implemented by Christian Wen and Kevin Harwood in #3385.
- Fixed image memory calculation
- Implemented by 周明宇 in #3344.
- Fixed issue where UIButton image downloading called wrong cancel method
- Implemented by duanhong in #3332.
- Fixed image downloading cancellation race condition
- Implemented by Kevin Harwood in #3325.
- Fixed static analyzer warnings on AFNetworkReachabilityManager
- Implemented by Jeff Kelley in #3315.
- Fixed issue where download progress would not be reported in iOS 7
- Implemented by zwm in #3294.
- Fixed status code 204/205 handling
- Implemented by Kevin Harwood in #3292.
- Fixed crash when passing nil/null for progress in UIWebView extension
- Implemented by Kevin Harwood in #3289.
- Removed workaround for NSJSONSerialization bug that was fixed in iOS 7
- Implemented by Cédric Luthi in #3253.
Released on Friday, December 18, 2015. All issues associated with this milestone can be found using this filter.
- Fixed issue where
AFNSURLSessionTaskDidResumeNotificationwas removed twice
- Implemented by Kevin Harwood in #3236.
Released on Wednesday, December 16, 2015. All issues associated with this milestone can be found using this filter.
- Added tests for response serializers to increase test coverage
- Implemented by Kevin Harwood in #3233.
AFImageResponseSerializerserialization macros on watchOS and tvOS
- Implemented by Charles Joseph in #3229.
Released on Monday, December 14, 2015. All issues associated with this milestone can be found using this filter.
- Fixed a crash in
AFURLSessionManagerwhen resuming download tasks
- Implemented by Chongyu Zhu in #3222.
- Fixed issue where background button image would not be updated
- Implemented by eofs in #3220.
Released on Friday, December 11, 2015. All issues associated with this milestone can be found using this filter.
- Added Xcode 7.2 support to Travis
- Implemented by Kevin Harwood in #3216.
- Fixed race condition with ImageView/Button image downloading when starting/cancelling/starting the same request
- Implemented by Kevin Harwood in #3215.
Released on Thursday, December 10, 2015. All issues associated with this milestone can be found using this filter.
- Added support for older versions of Xcode to Travis
- Implemented by Kevin Harwood in #3209.
- Added support for Codecov.io
- Implemented by Cédric Luthi and Kevin Harwood in #3196.
- Please help us increase overall coverage by submitting a pull request!
- Added support for IPv6 to Reachability
- Implemented by SAMUKEI and Kevin Harwood in #3174.
- Added support for Objective-C light weight generics
- Implemented by Kevin Harwood in #3166.
- Added nullability attributes to response object in success block
- Implemented by Nathan Racklyeft in #3154.
- Migrated to Fastlane for CI and Deployment
- Implemented by Kevin Harwood in #3148.
- Added support for tvOS
- Implemented by Kevin Harwood in #3128.
- New image downloading architecture
- Implemented by Kevin Harwood in #3122.
- Added Carthage Support
- Implemented by Kevin Harwood in #3121.
- Added a method to create a unique reachability manager
- Implemented by Mo Bitar in #3111.
- Added a initial delay to the network indicator per the Apple HIG
- Implemented by Kevin Harwood in #3094.
- Improved testing reliability for continuous integration
- Implemented by Kevin Harwood in #3124.
- Example project now consumes AFNetworking as a library.
- Implemented by Kevin Harwood in #3068.
- Migrated to using
- Implemented by Kyle Fuller in #3064.
- Tweaks to project to support Framework Project
- Implemented by Christian Noon in #3062.
- Split the iOS and OS X AppDelegate classes in the Example Project
- Implemented by Cédric Luthi in #3193.
- Changed SSL Pinning Error to be
- Implemented by Cédric Luthi and Kevin Harwood in #3191.
- New Progress Reporting API using
- Implemented by Kevin Harwood in #3187.
- Implemented by Cédric Luthi in #3164.
- Improved task creation performance for iOS 8+
- Implemented by nikitahils, Nikita G and Kevin Harwood in #3208.
- Fixed certificate validation for servers providing incomplete chains
- Implemented by André Pacheco Neves in #3159.
- Fixed bug in
AFMultipartBodyStreamthat may cause the input stream to read more bytes than required.
- Implemented by bang in #3153.
- Fixed race condition crash from Resume/Suspend task notifications
- Implemented by Kevin Harwood in #3152.
AFImageDownloaderstalling after numerous failures
- Implemented by Rick Silva in #3150.
- Fixed warnings generated in UIWebView category
- Implemented by Kevin Harwood in #3126.
- Removed AFBase64EncodedStringFromString static function
- Implemented by Cédric Luthi in #3188.
- Removed code supporting conditional compilation for unsupported development configurations.
- Implemented by Cédric Luthi in #3177.
- Removed deprecated methods, properties, and notifications from AFN 2.x
- Implemented by Kevin Harwood in #3168.
- Removed support for
- Implemented by Kevin Harwood in #3120.
UIAlertViewcategory support since it is now deprecated
- Implemented by Kevin Harwood in #3034.
Released on Wednesday, November 11, 2015. All issues associated with this milestone can be found using this filter.
- Fixed clang analyzer warning suppression that prevented building under some project configurations
- Fixed by [Kevin Harwood](https://github.com/Kevin Harwood) in #3142.
- Restored Xcode 6 compatibility
- Fixed by jcayzac in #3139.
Released on Friday, November 06, 2015. All issues associated with this milestone can be found using this filter.
Important Upgrade Note for Swift
#3130 fixes a swift interop error that does have a breaking API change if you are using Swift. This was identified after 2.6.2 was released. It changes the method from
throwsto an error pointer, since that method does return an object and also handles an error pointer, which does not play nicely with the Swift/Objective-C error conversion. See #2810 for additional notes. This affects
- Updated travis to run on 7.1
- Fixed by [Kevin Harwood](https://github.com/Kevin Harwood) in #3132.
- Simplifications of if and return statements in
- Fixed by TorreyBetts in #3063.
- Fixed swift interop issue that prevented returning a nil NSURL for a download task
- Fixed by [Kevin Harwood](https://github.com/Kevin Harwood) in #3133.
- Suppressed false positive memory leak warning in Reachability Manager
- Fixed by [Kevin Harwood](https://github.com/Kevin Harwood) in #3131.
- Fixed swift interop issue with throws and Request/Response serialization.
- Fixed by [Kevin Harwood](https://github.com/Kevin Harwood) in #3130.
- Fixed race condition in reachability callback delivery
- Fixed by MichaelHackett in #3117.
- Fixed URLs that were redirecting in the README
- Fixed by frankenbot in #3109.
- Fixed Project Warnings
- Fixed by [Kevin Harwood](https://github.com/Kevin Harwood) in #3102.
- Fixed README link to WWDC session
- Fixed by wrtsprt in #3099.
- Switched from
OS_OBJECT_USE_OBJCfor watchOS 2 support.
- Fixed by kylef in #3065.
- Added missing __nullable attributes to failure blocks in
- Fixed by hoppenichu in #3057.
- Fixed memory leak in NSURLSession handling
- Fixed by olegnaumenko in #2794.
Released on Tuesday, October 13th, 2015. All issues associated with this milestone can be found using this filter.
Future Compatibility Note
Note that AFNetworking 3.0 will soon be released, and will drop support for all
NSURLConnection based API's (
AFURLConnectionOperation. If you have not already migrated to
NSURLSession based API's, please do so soon. For more information, please see the 3.0 migration guide.
- Fixed a bug that prevented empty x-www-form-urlencoded bodies.
- Fixed bug that prevented AFNetworking from being installed for watchOS via Cocoapods.
- Added missing nullable attributes to
- Migrated to
- Added missing nullable tags to UIKit extensions.
- Fixed potential infinite recursion loop if multiple versions of AFNetworking are loaded in a target.
- Updated Travis CI test script
- Migrated to
- Fixed issue where
AFURLConnectionOperationcould get stuck in an infinite loop.
- Fixed regression where URL request serialization would crash on iOS 8 for long URLs.
Released on Wednesday, August 19th, 2015. All issues associated with this milestone can be found using this filter.
Important Upgrade Notes
Please note the following API/project changes have been made:
- iOS 6 and OS X 10.8 support has been dropped from the project to facilitate support for watchOS 2. The final release supporting iOS 6 and OS X 10.8 is 2.5.4.
Full Certificate Chain Validation has been removed from
AFSecurityPolicy. As discussed in #2744, there was no documented security advantage to pinning against an entire certificate chain. If you were using full certificate chain, please determine and select the most ideal certificate in your chain to pin against.
The request url will now be returned by the
UIImageViewcategory if the image is returned from cache. In previous releases, both the request and the response were nil. Going forward, only the response will be nil.
Support for App Extension Targets is now baked in using
NS_EXTENSION_UNAVAILABLE_IOS. You no longer need to define
AF_APP_EXTENSIONSin order to include code in a extension target.
- This release now supports watchOS 2.0, which relys on target conditionals that are only present in Xcode 7 and iOS 9/watchOS 2.0/OS X 10.10. If you install the library using CocoaPods, AFNetworking will define these target conditionals for on older platforms, allowing your code to compile. If you do not use Cocoapods, you will need to add the following code your to PCH file.
#ifndef TARGET_OS_IOS #define TARGET_OS_IOS TARGET_OS_IPHONE #endif #ifndef TARGET_OS_WATCH #define TARGET_OS_WATCH 0 #endif
- This release migrates query parameter serialization to model AlamoFire and adhere to RFC standards. Note that
?are no longer encoded by default.
Note that support for
NSURLConnection based API's will be removed in a future update. If you have not already done so, it is recommended that you transition to the
NSURLSession APIs in the very near future.
- Added watchOS 2.0 support.
AFNetworkingcan now be added to watchOS targets using CocoaPods.
- Added nullability annotations to all of the header files to improve Swift interoperability.
- Converted source to Modern Objective-C Syntax.
- Improved memory performance when download large objects.
- Fixed a crash related for objects that observe notifications but don't properly unregister.
- Fixed a race condition crash that occured with
- Fixed an issue where tests failed to run on CI due to unavailable simulators.
- Fixed "method override not found" warnings in Xcode 7 Betas
- Removed Duplicate Import and UIKit Header file.
- Removed the ability to include duplicate certificates in the pinned certificate chain.
- Fixed potential memory leak in
- Clarified best practices for Reachability per Apple recommendations.
startMonitoringcall to the Reachability section of the README
- Fixed documentation error around how
baseURLis used for reachability monitoring.
- Numerous spelling corrections in the documentation.
Released on 2015-05-14. All issues associated with this milestone can be found using this filter.
- Updated the CI test script to run iOS tests on all versions of iOS that are installed on the build machine.
- Fixed an issue where
AFNSURLSessionTaskDidSuspendNotificationwere not being properly called due to implementation differences in
NSURLSessionTaskin iOS 7 and iOS 8, which also affects the
- Fixed an issue where the OS X test linker would throw a warning during tests.
- Fixed an issue where tests would randomly fail due to mocked objects not being cleaned up.
Add security policy tests for default policy
Add network reachability tests
validatesDomainNameproperty to default to
YESunder all * security policies
NSURLSessionsubspec compatibility with iOS 6 / OS X 10.8
Fix leak of data task used in
Fix leak for observers from
Fix issue with network reachability observation on domain name
NOTE This release contains a security vulnerabilty. All users should upgrade to a 2.5.3 or greater. Please reference this statement if you have any further questions about this release.
Add guards for unsupported features in iOS 8 App Extensions
Add missing delegate callbacks to
Add test and implementation of strict default certificate validation
Add #define for
NS_DESIGNATED_INITIALIZERfor unsupported versions of Xcode
AFNetworkActivityIndicatorManagerfor iOS 7
Fix warnings from Xcode 6.3 Beta
AFImageWithDataAtScalehandling of animated images
Update to conditional use assign semantics for GCD properties based on
OS_OBJECT_HAVE_OBJC_SUPPORTfor better Swift support
NOTE This release contains a security vulnerabilty. All users should upgrade to a 2.5.3 or greater. Please reference this statement if you have any further questions about this release.
NS_DESIGNATED_INITIALIZERmacros. (Samir Guerdah)
Fix and clarify documentation for
Fix for NSProgress bug where two child NSProgress instances are added to a
parent NSProgress. (Edward Povazan)
Fix incorrect file names in headers. (Steven Fisher)
Fix KVO issue when running testing target caused by lack of
automaticallyNotifiesObserversForKey:implementation. (Mattt Thompson)
Fix use of variable arguments for UIAlertView category. (Kenta Tokumoto)
UIAlertView+AFNetworking. (Adar Porat)
NSURLSessionManagertask observation for network activity indicator
manager. (Phil Tang)
UIButtoncategory method caching of background image (Fernanda G.
UIButtoncategory method failure handling. (Maxim Zabelin)
Update multipart upload method requirements to ensure
is non-nil. (Mattt Thompson)
Update to use builtin
__Requiremacros from AssertMacros.h. (Cédric
parametersparameter to accept
idfor custom serialization
Add documentation for expected background session manager usage (Aaron
Add missing documentation for
Add tests for requesting HTTPS endpoints (Mattt Thompson)
initmethod declarations of
Swift compatibility (Allen Rohner)
Change default User-Agent to use the version number instead of the build
number (Tim Watson)
validatesDomainNameto readonly property (Mattt Thompson, Brian
Fix checks when observing
Fix crash caused by attempting to set nil
NSURLResponse -URLas key for
userInfodictionary (Elvis Nuñez)
Fix crash for multipart streaming requests in XPC services (Mattt Thompson)
Fix minor aspects of response serializer documentation (Mattt Thompson)
Fix potential race condition for
Fix widespread crash related to key-value observing of
NSURLSessionTask -state(Phil Tang)
UIButtoncategory associated object keys (Kristian Bauer, Mattt
charsetparameter from Content-Type HTTP header field values for
Update CocoaDocs color scheme (@Orta)
Update Podfile to explicitly define sources (Kyle Fuller)
Update to relay
downloadFileURLto the delegate if the manager picks a
AFSSLPinningModeNoneto not validate domain name (Brian King)
UIButtoncategory to cache images in
UIRefreshControlcategory to set control state to current state
of request (Elvis Nuñez)
Fix compiler warning generated on 32-bit architectures (John C. Daub)
Fix potential crash caused by failed validation with nil responseData
Fix to suppress compiler warnings for out-of-range enumerated type
value assignment (Mattt Thompson)
Add CocoaDocs color scheme (Orta)
Add image cache to
UIButtoncategory (Kristian Bauer, Mattt Thompson)
Add test for success block on 204 response (Mattt Thompson)
Add tests for encodable and re-encodable query string parameters (Mattt
AFHTTPRequestSerializer -valueForHTTPHeaderField:(Kyle Fuller)
AFNetworkingOperationFailingURLResponseDataErrorKeykey to user info
of serialization error (Yannick Heinrich)
Bauer, Mattt Thompson)
removesKeysWithNullValuessetting to serialization and copying (Jon
Change request and response serialization tests to be factored out into
separate files (Mattt Thompson)
Change signature of success parameters in
UIButtoncategory methods to
match those in
Change to remove charset parameter from
application/x-www-form-urlencodedcontent type (Mattt Thompson)
AFImageCacheto conform to
NSObjectprotocol ( Marcelo Fabri)
Fix documentation error for NSSecureCoding (Robert Ryan)
Fix documentation for
delegate method (Mattt Thompson)
Fix expired ADN certificate in example project (Carson McDonald)
Fix for interoperability within Swift project (Stephan Krusche)
Fix for potential deadlock due to KVO subscriptions within a lock
Fix iOS 7 bug where session tasks can have duplicate identifiers if
created from different threads (Mattt Thompson)
Fix iOS 8 bug by adding explicit synthesis for
Fix issue caused by passing
nilas body of multipart form part (Mattt
Fix issue caused by passing
nilas destination in download task method
Fix issue with
AFHTTPRequestSerializerreturning a request and silently
handling an error from a
queryStringSerializationblock (Kyle Fuller, Mattt
Fix potential issues by ensuring
executes on main thread (Mattt Thompson)
Fix potential memory leak caused by deferred opening of output stream
Fix properties on session managers such that default values will not trump
values set in the session configuration (Mattt Thompson)
Fix README to include explicit call to start reachability manager (Mattt
Fix request serialization error handling in
convenience methods (Kyle Fuller, Lars Anderson, Mattt Thompson)
Fix stray localization macro (Devin McKaskle)
Fix to ensure connection operation
implementation (Chris Streeter)
UIButtoncategory to only cancel request for specified state
(@xuzhe, Mattt Thompson)
- Fix issue with unsynthesized
Add check for
AF_APP_EXTENSIONSmacro to conditionally compile
background method that makes API call unavailable to App Extensions in iOS 8
/ OS X 10.10
Add further explanation for network reachability in documentation (Steven
Add notification for initial change from
AFNetworkReachabilityStatusUnknownto any other state (Jason Pepas,
Sebastian S.A., Mattt Thompson)
Add tests for AFNetworkActivityIndicatorManager (Dave Weston, Mattt
Add tests for AFURLSessionManager task progress (Ullrich Schäfer)
attempts Apple's recommendation of retrying a failed upload task if initial
creation did not succeed (Mattt Thompson)
AFErrorDomainin favor of
Change serialization tests to be split over two different files (Mattt
Change to make NSURLSession subspec not depend on NSURLConnection subspec
Change to make Serialization subspec not depend on NSURLConnection subspec
(Nolan Waite, Mattt Thompson)
application:handleEventsForBackgroundURLSession:completion:to be run on
main thread (Padraig Kennedy)
UIImageViewcategory to accept any object conforming to
AFURLResponseSerialization, rather than just
Fix calculation and behavior of
NSProgress(Padraig Kennedy, Ullrich
Fix deprecation warning for
backgroundSessionConfiguration:in iOS 8 /
OS X 10.10 (Mattt Thompson)
Fix implementation of
copyWithZone:in serializer subclasses (Chris
Fix issue in Xcode 6 caused by implicit synthesis of overridden
properties (Clay Bridges, Johan Attali)
Fix KVO handling for
NSURLSessionTaskon iOS 8 / OS X 10.10 (Mattt
Fix KVO leak for
Fix potential crash caused by attempting to use non-existent error of
failing requests due to URLs exceeding a certain length (Boris Bügling)
Fix to check existence of
uploadProgressblock inside a referencing
dispatch_asyncto avoid potential race condition (Kyungkoo Kang)
UIImageViewcategory race conditions (Sunny)
Remove unnecessary default operation response serializer setters (Mattt
Add NSSecureCoding support to all AFNetworking classes (Kyle Fuller, Mattt
Change behavior of request operation
NSOutputStreamproperty to only nil
responseDatais non-nil, meaning that no custom object was set
Fix data tasks to not attempt to track progress, and rare related crash
Fix issue with
-downloadTaskDidFinishDownloading:not being called
Fix KVO leak on invalidated session tasks (Mattt Thompson)
Fix missing import of `UIRefreshControl+AFNetworking" (@BB9z)
Fix potential compilation errors on Mac OS X, caused by import order of
<AssertionMacros.h>, which signaled an incorrect deprecation warning (Mattt
Fix race condition in UIImageView+AFNetworking when making several image
requests in quick succession (Alexander Crettenand)
Update documentation for
-downloadTaskWithRequest:to warn about blocks
being disassociated on app termination and backgrounding (Robert Ryan)
AFErrorOrUnderlyingErrorHasCodeInDomainfunction declaration for
AFXMLDocumentResponseSerializer (Mattt Thompson)
Fix error domain check in
UIImageViewcategory to only
nilout request operation properties
belonging to completed request (Mattt Thompson)
NSJSONReadingMutableContainersoption (Mattt Thompson)
removesKeysWithNullValuesproperty to recursively remove null
values from dictionaries nested in arrays (@jldagon)
Change to not override
Content-Typeheader field values set by
HTTPRequestHeadersproperty (Aaron Brager, Mattt Thompson)
NSNullvalues in dictionaries serialized from JSON
Add unit test for checking content type (Diego Torres)
Change to accept
idparameter type in HTTP manager convenience methods
Change to deprecate
setAuthorizationHeaderFieldWithToken:, in favor of
users specifying an
Authorizationheader field value themselves (Mattt
Change to use
long longtype to prevent a difference in stream size
caps on 32-bit and 64-bit architectures (Yung-Luen Lan, Cédric Luthi)
Fix calculation of Content-Length in
Fix for comparison of image view request operations (Mattt Thompson)
Fix for SSL certificate validation to check status codes at runtime (Dave
Fix to add missing call to delegate in
Fix to call
taskDidCompleteif delegate is missing (Jeff Ward)
Fix to implement
methods to conditionally respond to conditionally respond to optional
selectors if and only if a custom block has been set (Mattt Thompson)
Fix to prevent illegal state values from being assigned for
Fix to re-establish
restoring from a background configuration (Jeff Ward)
Fix to reduce memory footprint by
nil-ing out request operation
outputStreamafter closing, as well as image view request operation after
setting image (Teun van Run, Mattt Thompson)
Remove unnecessary call in class constructor (Bernhard Loibl)
Remove unnecessary check for
in User-Agent string (Samuel Goodwin)
Update App.net certificate and API base URL (Cédric Luthi)
Update examples in README (@petard, @orta, Mattt Thompson)
Update Travis CI icon to use SVG format (Maximilian Tagher)
-Wsign-conversionwarning in AFURLConnectionOperation (Jesse Collis)
-Wshorten-64-to-32warning (Jesse Collis)
Remove unnecessary #imports in
Fix call to
CFStringTransform()by checking return value before setting
User-Agent(Kevin Cassidy Jr)
@autoreleaseto relieve memory
pressure (Mattt Thompson, Michal Pietras)
Fix small documentation bug (@jkoepcke)
Fix behavior of SSL pinning. In case of
validatesDomainName == YES, it
now explicitly uses
SecPolicyCreateSSL, which also validates the domain
allows explicit specification of all trusted certificates. For
AFSSLPinningModePublicKey, the number of trusted public keys determines if
the server should be trusted. (Oliver Letterer, Eric Allam)
Add default initializer to make
Add documentation about
UIWebViewcategory and implementing
Add note about use of
Add setter for needsNewBodyStream block (Carmen Cerino)
Add support for specifying a response serializer on a per-instance of
AFHTTPRequestSerializer -requestWithMultipartFormRequest:writingStreamContentsToFile:completionHandler :as a workaround for a bug in NSURLSession that removes the Content-Length
header from streamed requests (Mattt Thompson)
NSURLRequestfactory properties on
Change example project to enable certificate pinning (JP Simard)
Change to allow self-signed certificates (Frederic Jacobs)
Change to make
reachabilityManagerproperty readwrite (Mattt Thompson)
Change to sort
NSSetmembers during query string parameter
serialization (Mattt Thompson)
Change to use case sensitive compare when sorting keys in query string
serialization (Mattt Thompson)
Change to use xcpretty instead of xctool for automated testing (Kyle
Fuller, Marin Usalj, Carson McDonald)
Change to use
@selectorvalues as keys for associated objects (Mattt
setImageWithURL:placeholder:, et al. to only set placeholder
image if not
Fix auto property synthesis warnings (Oliver Letterer)
Fix domain name validation for SSL certificates (Oliver Letterer)
Fix issue with session task delegate KVO observation (Kyle Fuller)
Fix placement of
baseURLmethod declaration (Oliver Letterer)
Fix podspec linting error (Ari Braginsky)
Fix potential concurrency issues by adding lock around setting
Fix potential vulnerability caused by hard-coded multipart form data
boundary (Mathias Bynens, Tom Van Goethem, Mattt Thompson)
Fix protocol name in #pragma mark declaration (@sevntine)
Fix regression causing inflated images to have incorrect orientation
NSCodingimplementation, to accommodate
NSURLSessionConfigurationno longer conforming to
Fix Travis CI integration (Kyle Fuller, Marin Usalj, Carson McDonald)
Fix various static analyzer warnings (Philippe Casgrain, Jim Young,
Steven Fisher, Mattt Thompson)
Fix with download progress calculation of completion units (Kyle Fuller)
Fix Xcode 5.1 compiler warnings (Nick Banks)
YES, as documented (Mattt Thompson)
Remove Unused format property in
acceptablePathExtensionsclass method in
Update #ifdef declarations in UIKit categories to be simpler (Mattt
Update podspec to includ social_media_url (Kyle Fuller)
Update types for 64 bit architecture (Bruno Tortato Furtado, Mattt
Add CONTRIBUTING (Kyle Fuller)
Add domain name verification for SSL certificates (Oliver Letterer)
Add leaf certificate checking (Alex Leverington, Carson McDonald, Mattt
Add test case for stream failure handling (Kyle Fuller)
Add underlying error properties to response serializers to forward errors
to subsequent validation steps (Mattt Thompson)
AFImageCacheprotocol, to allow for custom image caches to be
errorout parameter for request serializer, deprecating existing
request constructor methods (Adam Becevello)
Change request serializer protocol to take id type for parameters (Mattt
Change to add validation of download task responses (Mattt Thompson)
Change to force upload progress, by using original request Content-Length
Change to use
NSDictionaryobject literals for
construction (Mattt Thompson)
Fix #pragma declaration to be NSURLConnectionDataDelegate, rather than
NSURLConnectionDelegate (David Paschich)
Fix a bug when appending a file part to multipart request from a URL
Fix analyzer warning about weak receiver being set to nil, capture strong
reference (Stewart Gleadow)
Fix appending file part to multipart request to use suggested file name,
rather than temporary one (Kyle Fuller)
Fix availability macros for network activity indicator (Mattt Thompson)
Fix crash in iOS 6.1 caused by KVO on
Fix dead store issues in
Fix incorrect documentation for
Fix issue in reachability callbacks, where reachability managers created
for a particular domain would initially report no reachability (Mattt
Fix logic for handling data task turning into download task (Kyle Fuller)
Fix property list response serializer to handle 204 response (Kyle Fuller)
Fix README multipart example (Johan Forssell)
Fix to add check for non-nil delegate in
Fix to dramatically improve creation of images in
AFInflatedImageFromResponseWithDataAtScale, including handling of CMYK, 16
/ 32 bpc images, and colorspace alpha settings (Robert Ryan)
Fix Travis CI integration and unit testing (Kyle Fuller, Carson McDonald)
Fix typo in comments (@palringo)
Fix UIWebView category to use supplied success callback (Mattt Thompson)
Fix various static analyzer warnings (Kyle Fuller, Jesse Collis, Mattt
+batchOfRequestOperations:...completion block to execute in
SCNetworkReachabilityGetFlagscall when initializing
managers, which had the potential to block in certain network conditions
(Yury Korolev, Mattt Thompson)
Remove unnecessary check for completionHandler in HTTP manager (Mattt
Remove unused conditional clauses (Luka Bratos)
Update documentation for
Update httpbin certificates (Carson McDonald)
Update notification constant names to be consistent with
terminology (Mattt Thompson)
Fix a bug where
AFURLConnectionOperation -pausedid not correctly reset
the state of
AFURLConnectionOperation, causing the Network Thread to enter
an infinite loop (Erik Chen)
Fix a bug where
AFURLConnectionOperation -canceldoes not set the
appropriate error on the
Fix to post
AFNetworkingTaskDidFinishNotificationonly on main queue
Fix issue where the query string serialization block was not used (Kevin
Fix project file and repository directory items (Andrew Newdigate)
NSURLSessionsubspec (Mattt Thompson)
Fix to session task delegate KVO by moving observer removal to
Add AFNetworking 1.x behavior for image construction in inflation to
ensure correct orientation (Mattt Thompson)
NSParameterAssertfor internal task constructors in order to catch
invalid constructions early (Mattt Thompson)
nilreturn if session
was unable to create a task (Mattt Thompson)
self classto create class constructor instances (Bogdan
Update to break out of loop if output stream does not have space to write
bytes (Mattt Thompson)
Update documentation and README with various fixes (Max Goedjen, Mattt
Remove unnecessary willChangeValueForKey and didChangeValueForKey method
calls (Mindaugas Vaičiūnas)
Remove deletion of all task delegates in
Remove empty, unused
elsebranch (Luka Bratos)
Fix iOS 6 compatibility in
UIProgressView+AFNetworking(Olivier Halligon, Mattt Thompson)
Fix issue writing partial data to output stream (Kyle Fuller)
Fix behavior for
nilresponse in request operations (Marcelo Fabri)
Fix implementation of
batchOfRequestOperations:progressBlock:completionBlock: for nil when passed
empty operations parameter (Mattt Thompson)
work (Ben Scheirman)
AFRequestOperationto default to
AFHTTPResponseSerializerto remove check for nonzero responseData
length (Mattt Thompson)
NSCodingmethods to use NSStringFromSelector(@selector()) pattern
NSStringliterals (Mattt Thompson)
Update multipart form stream to set Content-Length after setting request
stream (Mattt Thompson)
Update documentation with outdated references to
Update documentation and README with various fixes (Jon Chambers, Mattt
Update files to remove executable privilege (Kyle Fuller)
Fix iOS 6 compatibility (Matt Baker, Mattt Thompson)
Fix example applications (Sam Soffes, Kyle Fuller)
Fix usage of
NSSearchPathForDirectoriesInDomainsin README (Leo Lou)
Fix names of exposed private methods
Fix initial upload/download task progress updates (Vlas Voloshin)
Fix podspec to include
Fix request serializers to not override existing header field values with
defaults (Mattt Thompson)
Fix unused format string placeholder (Thorsten Lockert)
AFHTTPRequestOperation -initWithCoder:to call
UIProgressViewselector name (Allen Tu)
UIButtonresponse serializer (Sam Grossberg)
setPinnedCertificates:and pinned public keys (Kyle Fuller)
Fix timing of batched operation completion block (Denys Telezhkin)
GCC_WARN_ABOUT_MISSING_NEWLINEcompiler warning (Chuck Shnider)
Fix a format string missing argument issue in tests (Kyle Fuller)
Fix location of certificate chain bundle location (Kyle Fuller)
Fix memory leaks in AFSecurityPolicyTests (Kyle Fuller)
Fix potential concurrency issues in
AFURLSessionManagerby adding locks
around access to mutiple delegates dictionary (Mattt Thompson)
Fix unused variable compiler warnings by wrapping
NSCAssertwith NS_BLOCK_ASSERTIONS macro (Mattt Thompson)
Fix compound serializer error handling (Mattt Thompson)
Fix string encoding for responseString (Juan Enrique)
UIImageView -setBackgroundImageWithRequest:(Taichiro Yoshida)
Fix regressions nested multipart parameters (Mattt Thompson)
Add support for automatic network reachability monitoring for request
operation and session managers (Mattt Thompson)
Update documentation and README with various corrections and fixes
(@haikusw, Chris Hellmuth, Dave Caunt, Mattt Thompson)
Update default User-Agent such that only ASCII character set is used
Update SSL pinning mode to have default pinned certificates by default
AFSecurityPolicyto use default authentication handling unless a
credential exists for the server trust (Mattt Thompson)
Update Prefix.pch (Steven Fisher)
Update minimum iOS test target to iOS 6
Remove unused protection space block type (Kyle Fuller)
Remove unnecessary Podfile.lock (Kyle Fuller)
- Initial 2.0.0 Release
AFNetworking 1.0 Change Log
AFHTTPMultipartBodyStreamto randomly generate form boundary, to
prevent attack based on a known value (Mathias Bynens, Tom Van Goethem, Mattt
Fix potential non-terminating loop in
Fix SSL certificate validation to provide a human readable Warning when
SSL Pinning fails (Maximillian Dornseif)
Fix SSL certificate validation to assert that no impossible pinning
configuration exists (Maximillian Dornseif)
Fix to check
CFStringTransform()call for success before using result
(Kevin Cassidy Jr)
Fix to prevent unused assertion results with macros (Indragie Karunaratne)
Fix to call call
SecTrustGetCertificateCountin SSL certificate validation (Josh Chung)
Fix to add explicit cast to
NSUIntegerin format string (Alexander
Remove unused variable
Add stream error handling to
Add stream error handling to
AFURLConnectionOperation -connection:didReceiveData:(Ian Duggan, Mattt Thompson)
Fix parameter query string encoding of square brackets according to RFC
3986 (Kra Larivain)
Fix AFHTTPBodyPart determination of end of input stream data (Brian Croom)
Fix unit test timeouts (Carson McDonald)
User-Agentheader field when app contained non-ASCII
characters (Diego Torres)
Fix outdated link in documentation (Jonas Schmid)
HTTPErrorproperty to be thread-safe
(Oliver Letterer, Mattt Thompson)
Fix API compatibility with iOS 5 (Blake Watters, Mattt Thompson)
Fix potential race condition in
AFURLConnectionOperation -cancelConnection(@mm-jkolb, Mattt Thompson)
Remove implementation of
AFURLConnectionOperation, which fixes stream errors on authentication
challenges (Mattt Thompson)
Fix calculation of network reachability from flags (Tracy Pesin, Mattt
Update AFHTTPClient documentation to clarify scope of
property (Thomas Catterall)
UIImageViewcategory to allow for nested calls to
UIImageViewcategory to accept invalid SSL certificates when
_AFNETWORKING_ALLOW_INVALID_SSL_CERTIFICATES_is defined (Flávio Caetano)
Change to replace #pragma clang with cast (Cédric Luthi)
Add return status checks when building list of pinned public keys (Sylvain
Add return status checks when handling connection authentication challenges
Add tests around
AFHTTPClient initWithBaseURL:(Kyle Fuller)
Change to remove all
compilation (Dustin Barker)
Change to allow fallback to generic image loading when PNG/JPEG data
provider methods fail (Darryl H. Thomas)
Change to only set placeholder image if not
Change to use
response.MIMETyperather than (potentially nonexistent)
Content-Type headers to determine image data provider (Mattt Thompson)
Fix image request test endpoint (Carson McDonald)
Fix compiler warning caused by
size_tvalue defaulted to
Fix mutable headers property in
Fix documentation and asset references in README (Romain Pouclet, Peter
Fix bug in examples always using
Fix execution of tests under Travis (Blake Watters)
Fix static analyzer warnings about CFRelease calls to NULL pointer (Mattt
Change to return early in
AFGetMediaTypeAndSubtypeWithStringif string is
Change to opimize network thread creation (Mattt Thompson)
AFImageRequestOperation, which when enabled, offers significant performance
improvements for drawing images loaded through
inflating compressed image data in the background (Mattt Thompson, Peter
AFURLConnectionOperationinitializer (Kyle Fuller)
Fix reachability to detect the case where a connection is required but can
be automatically established (Joshua Vickery)
Fix to Test target Podfile (Kyle Fuller)
delegate methods and associated block setters. If
-setWillSendRequestForAuthenticationChallengeBlock:will be available, and
-connection:willSendRequestForAuthenticationChallenge:will be implemented.
-setAuthenticationChallengeBlock:will be available, and
-connection:didReceiveAuthenticationChallenge:will be implemented instead
Change in AFNetworking podspec to include Security framework (Kevin Harwood,
Oliver Letterer, Sam Soffes)
Change in AFHTTPClient to @throw exception when non-designated intializer is
used (Kyle Fuller)
Change in behavior of connection:didReceiveAuthenticationChallenge: to not
use URL-encoded credentials, which should already have been applied (@xjdrew)
Change to set AFJSONRequestOperation error when unable to decode response
string (Chris Pickslay, Geoff Nix)
Change AFURLConnectionOperation to lazily initialize outputStream property
Change instances of (CFStringRef)NSRunLoopCommonModes to
Change #warning to #pragma message for dynamic framework linking warnings
Add unit testing and continuous integration system (Blake Watters, Oliver
Letterer, Kevin Harwood, Cédric Luthi, Adam Fraser, Carson McDonald, Mattt
Fix multipart input stream implementation (Blake Watters, OliverLetterer,
Aleksey Kononov, @mattyohe, @mythodeia, @JD-)
Fix implementation of authentication delegate methods (Oliver Letterer,
Fix implementation of AFSSLPinningModePublicKey on Mac OS X (Oliver Letterer)
Fix error caused by loading file:// requests with AFHTTPRequestOperation
subclasses (Dave Anderson, Oliver Letterer)
Fix threading-related crash in AFNetworkActivityIndicatorManager (Dave Keck)
Fix to suppress GNU expression and enum assignment warnings from Clang
Fix leak caused by CFStringConvertEncodingToIANACharSetName in AFHTTPClient
-requestWithMethod:path:parameters: (Daniel Demiss)
Fix missing __bridge casts in AFHTTPClient (@apouche, Mattt Thompson)
Fix Objective-C++ compatibility (Audun Holm Ellertsen)
Fix to not escape tildes (@joein3d)
Fix warnings caused by unsynthesized properties (Jeff Hunter)
Fix to network reachability calls to provide correct status on
initialization (@djmadcat, Mattt Thompson)
Fix to suppress warnings about implicit signedness conversion (Matt Rubin)
Fix AFJSONRequestOperation -responseJSON failing cases (Andrew Vyazovoy,
Fix use of object subscripting to avoid incompatibility with iOS < 6 and OS
X < 10.8 (Paul Melnikow)
Various fixes to reverted multipart stream provider implementation (Yaron
Inger, Alex Burgel)
Add SSL pinning mode to example project (Kevin Harwood)
Add name to AFNetworking network thread (Peter Steinberger)
Change pinned certificates to trust all derived certificates (Oliver
Fix documentation about SSL pinning (Kevin Harwood, Mattt Thompson)
Fix certain enumerated loops to use fast enumeration, resulting in better
performance (Oliver Letterer)
Fix macro to work correctly under Mac OS X 10.7 and iOS 4 SDK (Paul Melnikow)
Fix documentation, removing unsupported
@discussiontags (Michele Titolo)
SecTrustCreateWithCertificatesexpecting an array as first argument
Fix to use
noErrfor Security frameworks
OSStatus (Oliver Letterer)
[self alloc]instead of explicit
class, which allows for subclassing (James Clarke)
numberOfFinishedOperationscalculations (Rune Madsen)
Fix calculation of data length in
Fix to encode JSON only with UTF-8, following recommendation of
AFHTTPClient(Oliver Letterer, Kevin
Harwood, Adam Becevello, Dustin Barker, Mattt Thompson)
Add single quote ("'"), comma (","), and asterix ("*") to escaped URL
encoding characters (Eric Florenzano, Marc Nijdam, Garrett Murray)
Add support for repeated key value pairs in
AFHTTPClientURL query string
AFMultipartFormData - appendPartWithFileURL:name:fileName:mimeType:error(Daniel Rodríguez Troitiño)
AFMultipartFormData - appendPartWithInputStream:name:fileName:mimeType:(@joein3d)
Change SSL pinning to be runtime property on
rather than defined by macro (Oliver Letterer)
one side of a bound CFStream pair rather than subclassing
AFHTTPClientoperation cancellation to be based on request URL path
rather than absolute URL string (Mattt Thompson)
Change request operation subclass processing queues to use
UIImageView+AFNetworkingto resolve asymmetry in cached image case
between success block provided and not provided (@Eveets, Mattt Thompson)
NSURLto determine if previous request was equivalent (Cédric Luthi)
UIImageView+AFNetworkingto only set image if non-
Change indentation settings to four spaces at the project level (Cédric
AFNetworkActivityIndicatorManagerto only update if requests have a
nilURL (Cédric Luthi)
UIImageView+AFNetworkingto not do
Fix request stream exhaustion error on authentication challenges (Alex
Fix implementation to use
NSURLmethods instead of
applicable (Cédric Luthi)
Fix race condition in
threadsafe (Jon Parise, Mattt Thompson)
AFContentTypeForPathExtensionto ensure non-
value (Zach Waugh)
Fix documentation for
(Daniel Rodríguez Troitiño)
Fix request operation subclass processing queues to initialize with
Fix posting of
AFNetworkingOperationDidFinishNotificationto avoid crashes when logging in
response to notifications (Blake Watters)
Fix ordering of registered operation consultation in
Fix warning: multiple methods named 'postNotificationName:object:' found
[-Wstrict-selector-match] (Oliver Jones)
Fix warning: multiple methods named 'objectForKey:' found
[-Wstrict-selector-match] (Oliver Jones)
Fix warning: weak receiver may be unpredictably set to nil
[-Wreceiver-is-weak] (Oliver Jones)
Fix missing #pragma clang diagnostic pop (Steven Fisher)
Add optional SSL certificate pinning with
#define _AFNETWORKING_PIN_SSL_CERTIFICATES_(Dustin Barker)
Change behavior to cause a failure when an operation is cancelled (Daniel
Change return type of class constructors to
Change notifications to always being posted on an asynchronously-dispatched
block run on the main queue (Evadne Wu, Mattt Thompson)
Change from NSLocalizedString to NSLocalizedStringFromTable with
AFNetworking.strings table for localized strings (Cédric Luthi)
-appendPartWithHeaders:body:to add assertion handler for existence
of body data parameter (Jonathan Beilin)
AFHTTPRequestOperation -responseStringto follow guidelines from
RFC 2616 regarding the use of string encoding when none is specified in the
response (Jorge Bernal)
Change AFHTTPClient parameter serialization dictionary keys with
deterministic ordering of query string parameters, which may otherwise
cause ambiguous representations of nested parameters (James Coleman,
Fix -Wstrict-selector-match warnings raised by Xcode 4.6DP3 (Jesse Collis,
Fix NSJSONSerialization crash with Unicode character escapes in JSON
response (Mathijs Kadijk)
Fix issue with early return in -startMonitoringNetworkReachability if
network reachability object could not be created (i.e. invalid hostnames)
Fix retain cycles in AFImageRequestOperation.m and AFHTTPClient.m caused by
strong references within blocks (Nick Forge)
Fix issue caused by Rails behavior of returning a single space in head :ok
responses, which is interpreted as invalid (Sebastian Ludwig)
Fix issue in streaming multipart upload, where final encapsulation boundary
would not be appended if it was larger than the available buffer, causing a
potential timeout (Tomohisa Takaoka, David Kasper)
Fix memory leak of network reachability callback block (Mattt Thompson)
cast scalar types (Mattt Thompson)
Fix bug in
-enqueueBatchOfHTTPRequestOperations:...to by using
addOperations:waitUntilFinished:instead of adding each operation
individually. (Mattt Thompson)
#warningmessages of checks for
MobileCoreServicesto message according to the build target platform (Mattt
AFQueryStringFromParametersWithEncodingto create keys string
representations using the description method as specified in documentation
Fix __unused keywords for better Xcode indexing (Christian Rasmussen)
Fix warning: unused parameter 'x' [-Werror,-Wunused-parameter] (Oliver Jones)
Fix warning: property is assumed atomic by default
[-Werror,-Wimplicit-atomic-properties] (Oliver Jones)
Fix warning: weak receiver may be unpredictably null in ARC mode
[-Werror,-Wreceiver-is-weak] (Oliver Jones)
Fix warning: multiple methods named 'selector' found
[-Werror,-Wstrict-selector-match] (Oliver Jones)
Fix warning: 'macro' is not defined, evaluates to 0 (Oliver Jones)
Fix warning: atomic by default property 'X' has a user (Oliver Jones)defined
getter (property should be marked 'atomic' if this is intended) [-Werror,
-Wcustom-atomic-properties] (Oliver Jones)
Fix warning: 'response' was marked unused but was used
[-Werror,-Wused-but-marked-unused] (Oliver Jones)
Fix warning: enumeration value 'AFFinalBoundaryPhase' not explicitly handled
in switch [-Werror,-Wswitch-enum] (Oliver Jones)
1.0.1 / 2012-11-01
Fix error in multipart upload streaming, where byte range at boundaries
was not correctly calculated (Stan Chang Khin Boon)
If a success block is specified to
UIImageView -setImageWithURLRequest: placeholderImage:success:failure:, it is now the responsibility of the
block to set the image of the image view (Mattt Thompson)
Foo, Mattt Thompson)
Using __weak self / __strong self pattern to break retain cycles in
background task and network reachability blocks (Jerry Beers, Dan Weeks)
Fix parameter encoding to leave period (
.) unescaped (Diego Torres)
Fixing last file component in multipart form part creation (Sylver
Remove executable permission on AFHTTPClient source files (Andrew
Fix warning (error with -Werror) on implicit 64 to 32 conversion (Dan
Add GitHub's .gitignore file (Nate Stedman)
Updates to README (@ckmcc)
1.0 / 2012-10-15
AFNetworking now requires iOS 5 / Mac OSX 10.7 or higher (Mattt Thompson)
AFNetworking now uses Automatic Reference Counting (ARC) (Mattt Thompson)
AFNetworking raises compiler warnings for missing features when
SystemConfiguration or CoreServices / MobileCoreServices frameworks are not
included in the project and imported in the precompiled headers (Mattt
AFNetworking now raises compiler error when not compiled with ARC (Steven
NSCopyingprotocol conformance to
Add substantial improvements HTTP multipart streaming support, having
files streamed directly from disk and read sequentially from a custom input
stream (Max Lansing, Stan Chang Khin Boon, Mattt Thompson)
workaround to issues when uploading over 3G (Mattt Thompson)
Add request and response to
userInfoof errors returned from failing
userInfodictionary with current status in reachability changes
Acceptheader for image requests in
Add explicit declaration of
NSURLConnectiondelegate methods so that
they can be overridden in subclasses (Mattt Thompson, Evan Grim)
Add parameter validation to match conditions specified in documentation
(Jason Brennan, Mattt Thompson)
Add import to
UIKitto avoid build errors from
User-Agentdefault header (Blake Watters)
AFJSONUtilitiesin favor of
CFURLCreateStringByAddingPercentEscapesshould be used instead)
dispatch_releasewith ARC in iOS 6 (Benoit
Fix threading issue with
Fix issue where
AFNetworkActivityIndicatorManagercount could become
Fix properties to explicitly set options to suppress warnings (Wen-Hao
Lue, Mattt Thompson)
Fix compiler warning caused by mismatched types in upload / download
progress blocks (Gareth du Plooy, tomas.a)
Fix weak / strong variable relationships in
Fix string formatting syntax warnings caused by type mismatch (David
Keegan, Steven Fisher, George Cox)
Fix minor potential security vulnerability by explicitly using string
format in NSError localizedDescription value in userInfo (Steven Fisher)
AFURLConnectionOperation -pauseby adding state checks to prevent
likely memory issues when resuming (Mattt Thompson)
Fix warning caused by miscast of type when
CLANG_WARN_IMPLICIT_SIGN_CONVERSIONis set (Steven Fisher)
Fix incomplete implementation warning in example code (Steven Fisher)
Fix warning caused by using
==comparator on floats (Steven Fisher)
Fix iOS 4 bug where file URLs return
NSHTTPURLResponseobjects (Leo Lobato)
Fix calculation of finished operations in batch operation progress
callback (Mattt Thompson)
Fix documentation typos (Steven Fisher, Matthias Wessendorf,
hasAcceptableStatusCodeto return true after a network failure (Tony
Fix warning about missing prototype for private static method (Stephan
Fix issue where
nilcontent type resulted in unacceptable content type
Fix bug related to setup and scheduling of output stream (Stephen Tramer)
Fix AFContentTypesFromHTTPHeader to correctly handle comma-delimited
content types (Peyman, Mattt Thompson, @jsm174)
Fix crash caused by
_networkReachabilitynot being set to
releasing (Blake Watters)
Fix Podspec to correctly import required headers and use ARC (Eloy Durán,
Fix query string parameter escaping to leave square brackets unescaped
Fix query string parameter encoding of
NSNullvalues (Daniel Rinser)
Fix error caused by referencing
Update example to use App.net API, as Twitter shut off its unauthorized
access to the public timeline (Mattt Thompson)
AFHTTPClientoperation queue to specify
previously-defined constant (Mattt Thompson)
AFHTTPClient -initWithBaseURLto automatically append trailing
slash, so as to fix common issue where default path is not respected without
trailing slash (Steven Fisher)
User-Agentheader strings (Mattt Thompson,
Update icons for iOS example application (Mattt Thompson)
numberOfCompletedOperationsvariable in progress block to be
0.10.0 / 2012-06-26
Add Twitter Mac Example application (Mattt Thompson)
Add note in README about how to set
-fno-objc-arcflag for multiple files
at once (Pål Brattberg)
Add note in README about 64-bit architecture requirement (@rmuginov, Mattt
Add note in
AFNetworkActivityIndicatorManagerabout not having to manually
manage animation state (Mattt Thompson)
Add missing block parameter name for
Add NextiveJson to list of supported JSON libraries (Mattt Thompson)
Restore iOS 4.0 compatibility with
AFHTTPClientto use HTTP pipelining for
default (Mattt Thompson)
Remove @private ivar declaration in headers (Peter Steinberger, Mattt
Fix potential premature deallocation of _skippedCharacterSet (Tom Wanielista,
Fix potential issue in
setOutputStreamby closing any existing
Fix filename in AFHTTPClient header (Steven Fisher)
Fix documentation for UIImageView+AFNetworking (Mattt Thompson)
Fix HTTP multipart form format, which caused issues with Tornado web server
AFHTTPClientto not append empty data into multipart form data (Jon
Fix URL encoding normalization to not conditionally escape percent-encoded
strings (João Prado Maia, Kendall Helmstetter Gelner, @cysp, Mattt Thompson)
AFHTTPClientdocumentation reference of
AFURLRequestOperation -setRedirectResponseBlock:(Kevin Harwood)
AFURLConnectionOperationcompilation error by conditionally importing
UIKit framework (Steven Fisher)
Fix issue where image processing block is not called correctly with success
Fix leaked dispatch group in batch operations (@andyegorov, Mattt Thompson)
Fix support for non-LLVM compilers in
(Abraham Vegh, Bill Williams, Mattt Thompson)
Fix AFHTTPClient to not add unnecessary data when constructing multipart form
request with nil parameters (Taeho Kim)
1.0RC1 / 2012-04-25
AFHTTPRequestOperation +addAcceptableStatusCodes / +addAcceptableContentTypesto dynamically add acceptable status codes and
content types on the class level (Mattt Thompson)
Add support for compound and complex
Acceptheaders that include multiple
content types and / or specify a particular character encoding (Mattt Thompson)
AFURLConnectionOperation -setShouldExecuteAsBackgroundTaskWithExpirationHandler:to have operations
finish once an app becomes inactive (Mattt Thompson)
Add support for pausing / resuming request operations (Peter Steinberger,
Improve network reachability functionality in
AFHTTPClient, including a
distinction between WWan and WiFi reachability (Kevin Harwood, Mattt Thompson)
0.9.2 / 2012-04-25
Add thread safety to
AFNetworkActivityIndicator(Peter Steinberger, Mattt
Document requirement of available JSON libraries for decoding responses in
AFJSONRequestOperationand parameter encoding in
AFHTTPClientparameter encoding (Mattt Thompson)
Fix bug where
AFJSONDecodedoes not return errors (Alex Michaud)
Fix compiler warning for undeclared
AFQueryStringComponentFromKeyAndValueWithEncodingfunction (Mattt Thompson)
Fix cache policy for URL requests (Peter Steinberger)
Fix race condition bug in
UIImageView+AFNetworkingcaused by incorrectly
nil-ing request operations (John Wu)
Fix reload button in Twitter example (Peter Steinberger)
Improve batched operation by deferring execution of batch completion block
until all component request completion blocks have finished (Patrick Hernandez,
Kevin Harwood, Mattt Thompson)
Improve performance of image request decoding by dispatching to background
queue (Mattt Thompson)
AFImageCacheto cache image objects rather than
(Tony Million, Peter Steinberger, Mattt Thompson)
Remove unnecessary KVO
calls (Peter Steinberger)
Remove unnecessary @private ivar declarations in headers (Peter Steinberger,
Remove @try-@catch block wrapping network thread entry point (Charles T. Ahn)
0.9.1 / 2012-03-19
Create Twitter example application (Mattt Thompson)
Add support for nested array and dictionary parameters for query string and
form-encoded requests (Mathieu Hausherr, Josh Chung, Mattt Thompson)
AFURLConnectionOperation -setCacheResponseBlock:, which allows the
behavior of the
-connection:willCacheResponse:to be overridden without subclassing (Mattt
NSURLConnection authentication delegate methods (Mattt Thompson)
Add properties for custom success / failure callback queues (Peter
Add notifications for network reachability changes to
AFHTTPClient -patchPath:convenience method (Mattt Thompson)
Add support for NextiveJson (Adrian Kosmaczewski)
Improve network reachability checks (C. Bess)
Improve NSIndexSet formatting in error strings (Jon Parise)
Document crashing behavior in iOS 4 loading a file:// URL (Mattt Thompson)
Fix crash caused by
checking operation to be instance of
Fix crash caused by passing
nilURL in requests (Sam Soffes)
Fix errors caused by connection property not being nil'd out after an
operation finishes (Kevin Harwood, @zdzisiekpu)
Fix crash caused by passing
NULLerror pointer when setting
Fix batch operation completion block returning on background thread (Patrick
Fix documentation for UIImageView+AFNetworking (Dominic Dagradi)
Fix race condition caused by
AFURLConnectionOperationbeing cancelled on
main thread, rather than network thread (Erik Olsson)
AFURLEncodedStringFromStringWithEncodingto correctly handle cases
where % is used as a literal rather than as part of a percent escape code
Fix missing comma in
0.9.0 / 2012-01-23
Add thread-safe behavior to
Add batching of operations for
Add authentication challenge callback block to override default
_AFNETWORKING_PREFER_NSJSONSERIALIZATION_, which, when defined,
short-circuits the standard preference ordering used in
NSJSONSerializationwhen available, falling back on
third-party-libraries. (Mattt Thompson, Shane Vitarana)
imageScaleproperty to change resolution of images constructed from
cached data (Štěpán Petrů)
Add note about third party JSON libraries in README (David Keegan)
NSArrayvalues in the
AFImageRequestOperation -responseImageon OS X uses
determine the correct pixel dimensions of the image (David Keegan)
connectionhas memory management policy
to avoid retain cycles caused by
NSURLConnectionretaining its delegate
AFURLConnectionOperationcalls super implementation for
following the guidelines for
NSOperationsubclasses (Mattt Thompson)
UIImageView -setImageWithURL:and related methods call success callback
after setting image (Cameron Boehmer)
Cancel request if an authentication challenge has no suitable credentials in
Remove exception from
raised when certain HTTP methods are used. (Mattt Thompson)
AFImageCachefrom public API, moving it into private implementation
Mac example application makes better use of AppKit technologies and
conventions (Mattt Thompson)
Fix issue with multipart form boundaries in
AFHTTPClient -multipartFormRequestWithMethod:path:parameters:constructing BodyWithBlock:
(Ray Morgan, Mattt Thompson, Sam Soffes)
Fix "File Upload with Progress Callback" code snippet in README (Larry
Fix to SBJSON invocations in
Tretter, James Frye)
Fix documentation for
Content-Dispositionheaders used for multipart form construction
Add network reachability status change callback property to
(Mattt Thompson, Kevin Harwood)
Fix exception handling in
NSDatainitialization with string in
(Adam Ernst, Mattt Thompson)
Fix error check in
Baldoph, Mattt Thompson)
Fix compiler warnings for certain configurations (Charlie Williams)
Fix bug caused by passing zero-length
responseDatato response object
initializers (Mattt Thompson, Serge Paquet)