All notable changes to this project will be documented in this file. Alamofire
adheres to Semantic Versioning.
3.3.x
Releases - 3.3.03.2.x
Releases - 3.2.0 | 3.2.13.1.x
Releases - 3.1.0 | 3.1.1 | 3.1.2 | 3.1.3 | 3.1.4 | 3.1.53.0.x
Releases - 3.0.0 | 3.0.13.0.0
Betas - 3.0.0-beta.1 | 3.0.0-beta.2 | 3.0.0-beta.32.0.x
Releases - 2.0.0 | 2.0.1 | 2.0.22.0.0
Betas - 2.0.0-beta.1 | 2.0.0-beta.2 | 2.0.0-beta.3 | 2.0.0-beta.41.3.x
Releases - 1.3.0 | 1.3.11.2.x
Releases - 1.2.0 | 1.2.1 | 1.2.2 | 1.2.31.1.x
Releases - 1.1.0 | 1.1.1 | 1.1.2 | 1.1.3 | 1.1.4 | 1.1.51.0.x
Releases - 1.0.0 | 1.0.1Released on 2016-03-23. All issues associated with this milestone can be found using this filter.
SessionDelegate
APIs with completion handlers.User-Agent
header implementation to use more aggresive type-safety checks.This release requires Xcode 7.3+ otherwise the Swift 2.2 changes will NOT COMPILE. There are several reasons why this was deployed as a MINOR and not MAJOR release. First off, the public API changes of this release are fully backwards compatible. There are no breaking API changes in the public APIs. Strictly following semver dictates that this is a MINOR, not MAJOR release.
See semver for more info.
We also realize that this can be frustrating for those out there not ready to upgrade to Xcode 7.3. Please know that we consider each release version carefully before deploying. Our decision to bump the MINOR version was not only due to strictly following semver, but also because it‘s difficult and undesirable for all OSS libraries to bump MAJOR versions each time the Swift APIs are incremented. Alamofire would have had to go through 6 additional MAJOR versions if this was the policy. That would mean we’d already be running on Alamofire 10.x. Incrementing MAJOR versions this quickly is disruptive to the community and would cause even more confusion. Instead, we try to carefully plan our MAJOR version releases and accompany them with detailed Migration Guides to help make the transition as smooth as possible.
If anyone has additional questions, please feel free to open an issue and we'll be more than happy to discuss further.
Released on 2016-02-27. All issues associated with this milestone can be found using this filter.
StringResponseSerializer
implementation to build with the latest Swift toolchain.Released on 2016-02-07. All issues associated with this milestone can be found using this filter.
NSURLSessionTask
changes state to allow support for the network activity indicator.Timeline
struct to capture timings throughout the lifecycle of a Request
.Timeline
section to the README.NetworkReachabilityManager
to listen for reachability status changes.Network Reachability
section to the README.NSURLSessionStream
APIs to support tvOS
.ParameterEncoding
encode method to allow empty parameters to still be encoded.Released on 2016-01-17. All issues associated with this milestone can be found using this filter.
Package.swift
to the project to support Swift Package Manager (SPM).Request
class's debugDescription
property.Accept-Language
header generation to use functional style.Accept-Encoding
and Accept-Language
header values to have separator spaces between values.Released on 2015-12-16. All issues associated with this milestone can be found using this filter.
NSTemporaryExceptionMinimumTLSVersion
documentation to the ATS section in the README.ReleaseTest
configuration to allow running tests against optimized build.carthage update
command.ParameterEncoding
to early out when passed an empty parameters dictionary.certificatesInBundle
to support cer
, crt
and der
extensions.ENABLE_TESTABILITY
flag to NO
for Release configuration and disabled tests for non-test builds to better support Carthage.SecCertificate
array Swift workaround in ServerTrustPolicy
for Xcode 7.2.Released on 2015-11-22. All issues associated with this milestone can be found using this filter.
Info.plist
for tvOS setting the UIRequiredDeviceCapabilities
to arm64
.https
instead of http
.Released on 2015-11-06. All issues associated with this milestone can be found using this filter.
Released on 2015-10-31. All issues associated with this milestone can be found using this filter.
NSString
with String
.nil
or zero length.responseData
and responseString
serializers.Released on 2015-10-22. All issues associated with this milestone can be found using this filter.
BITCODE_GENERATION_MODE
user defined setting to tvOS framework target.APPLICATION_EXTENSION_API_ONLY
enabled flag to YES
in the tvOS framework target.Released on 2015-10-19. All issues associated with this milestone can be found using this filter.
;
was incorrect.Released on 2015-10-10. All issues associated with this milestone can be found using this filter.
Downloading a File
code sample in the README to compile against Swift 2.0.response
serializer.Response
section.BITCODE_GENERATION_MODE
setting for Carthage builds.Released on 2015-09-27. All issues associated with this milestone can be found using this filter.
Response
initializer to have a public
ACL instead of internal
.Released on 2015-09-26. All issues associated with this milestone can be found using this filter.
Response
initializer to have internal
ACL.Released on 2015-09-21. All issues associated with this milestone can be found using this filter.
Response
struct to simplify response serialization.Manager
allowing dependency injection of the underlying NSURLSession
.Manager
initialization methods.Value
and Error
) where Error
conforms to ErrorType
.NSData?
.TaskDelegate
to store an error as an NSError
instead of ErrorType
.ValidationResult
failure case to require an NSError
instead of ErrorType
.Result
type usage.Response
type.Manager
to accept a SessionDelegate
parameter allowing dependency injection for better background session support.Released on 2015-09-20. All issues associated with this milestone can be found using this filter.
git init
info.Released on 2015-09-16. All issues associated with this milestone can be found using this filter.
Released on 2015-09-09. All issues associated with this milestone can be found using this filter.
URLEncodedInURL
case to the ParameterEncoding
for encoding in the URL.Released on 2015-09-06. All issues associated with this milestone can be found using this filter.
parameters
and encoding
parameters to download APIs.ErrorType
instead of NSError
.Result
type.Released on 2015-08-25.
NSMutableURLRequest
for the URLRequestConvertible
protocol conformance that could cause unwanted URL request referencing.Released on 2015-08-24. All issues associated with this milestone can be found using this filter.
NSMutableURLRequest
for the URLRequestConvertible
protocol.Manager
.URLRequestConvertible
section in the README.ServerTrustPolicyManager
to be more flexible by using public
ACL.ServerTrustPolicyManager
policies property to use public
ACL and added docstrings.Result
failure case to store an ErrorType
instead of NSError
.required
declaration on the Manager
init method.TaskDelegate
operation queue would leak if the task was never started.Released on 2015-08-10. All issues associated with this milestone can be found using this filter.
watchOS
deployment target to the podspec.SecCertificate
array compiler crash.Result
and Error
types to refactor response validation and serialization.CustomStringConvertible
and CustomDebugStringConvertible
conformance to the Result
enumeration.watchOS
framework target to the project.Result
tests pushing code coverage for Result
enum to 100%.SessionDelegate
methods.URLRequestConvertible
to return an NSMutableURLRequest
.escape
method in ParameterEncoding
to use non-deprecated methods.MultipartFormData
encoding to leverage Swift 2.0 error handling.ParameterEncoding
to leverage guard for parameters to increase safety.queryComponents
and escape
methods in ParameterEncoding
to public
to better support .Custom
encoding.ParameterEncoding
since they are now implied.CustomDebugStringConvertible
conformance of a Request
.Result
type usage.Released on 2015-08-10. All issues associated with this milestone can be found using this filter.
SessionDelegate
if the task override closure was set.Released on 2015-07-24. All issues associated with this milestone can be found using this filter.
NSURLProtocol
checking header passthrough behaviors.Request
to receive data incrementally from data responses.responseCollection
serializer.MultipartFormData
in-memory and streaming from disk.MultipartFormData
with complete code coverage.Authorization
header example to the README.ServerTrustPolicy
.resumeData
property to Request
to expose outside data response serializer.pod lib lint
pass on the source.ParameterEncoding
encode return tuple to return a mutable URL request.URLRequest
convenience method to return a mutable NSURLRequest
.request
/ download
/ upload
methods to support custom headers.request
/ download
/ upload
method external parameters convention.ResponseSerializer
protocol.TaskDelegate.queue
to public to allow custom request extension operations.NSURLSessionConfiguration
type declaration that can be inferred.respondsToSelector
overrides for SessionDelegate
methods.self
throughout source, test and example logic.setUp
method.There are a couple changes in the 1.3.0 release that are not fully backwards compatible and need to be called out.
The global request
/ download
/ upload
external parameter naming conventions were not consistent nor did they match the Manager
equivalents. By making them consistent across the board, this introduced the possibility that you “may” need to make slight modifications to your global function calls.
In order to support generic response serializers, the lowest level Request.response
method had to be converted to a generic method leveraging the new ResponseSerializer
protocol. This has many advantages, the most obvious being that the response
convenience method now returns an NSData?
optional instead of an AnyObject?
optional. Nice!
Please note that every effort is taken to maintain proper semantic versioning. In these two rare cases, it was deemed to be in the best interest of the community to slightly break semantic versioning to unify naming conventions as well as expose a much more powerful form of response serialization.
If you have any issues, please don't hesitate to reach out through GitHub or Twitter.
Released on 2015-06-12. All issues associated with this milestone can be found using this filter.
pod lib lint
against the latest version of CocoaPods.Released on 2015-05-13. All issues associated with this milestone can be found using this filter.
URLStringConvertible
protocol around RFC specs.Carthage/Build
ignore flag to the .gitignore
file..DS_Store
ignore flag to the .gitignore
file.SessionDelegate
override closure properties to match the method signatures.Printable
protocol on Request
to reference output stream rather than the specific OutputStreamType
.SessionDelegate
willPerformHTTPRedirection method to accept optional return type from override closure.TaskDelegate
override closure signatures and delegate method implementations.SessionDelegate
override closure documentation.SessionDelegate
closures.dispatch_release
.TaskDelegate
to only set qualityOfService
for NSOperationQueue
on iOS 8+.DataTaskDelegate
behavior ensuring NSProgress
values and progress
override closures are always updated and executed.Released on 2015-04-21.
SessionDelegate
.Released on 2015-04-09.
testURLParameterEncodeStringWithSlashKeyStringWithQuestionMarkValueParameter
test.backgroundCompletionHandler
property to the Manager
called when the session background tasks finish.Request
computed property progress
to no longer be an optional type.responseString
serializer to respect server provided character encoding with overrideable configuration, default string response serialization to ISO-8859-1, as per the HTTP/1.1 specification.SessionDelegate
methods to first call the override closures if set.SessionDelegate
and all override closures to a public ACL allowing for customization.SessionDelegate
class to final
.SessionDelegate
header documentation for method override properties.APPLICATION_EXTENSION_API_ONLY
to YES
for OS X target.SessionDelegate
initializer and replaced with default property value.expectation.fullfill()
to end of closures.dataTaskDidBecomeDownloadTask
override closure.SessionDelegate
where the DataTaskDelegate
was not being called.Released on 2015-03-26.
Manager
.Manager
to match the top-level functions.testDownloadRequest
to no longer remove the downloaded file.Released on 2015-01-30.
requires_arc
to the podspec file.download
method on Manager
to use Request.DownloadFileDestination
typealias.RequestTests
to no longer delete all cookies in default session configuration.tearDown
method in the AlamofireDownloadResponseTestCase
.testDownloadRequest
in DownloadTests
by adding .json
file extension.AlamofireRequestDebugDescriptionTestCase
on OSX.cURL
debug on OSX.iOS Example
scheme.Released on 2015-01-09.
responseString
parameter documentation.Released on 2014-12-21.
APPLICATION_EXTENSION_API_ONLY
flag to YES
.HTTPBodyStream
for streamed request.suggestedDownloadDestination
parameters were being ignored.Manager
deinitialization and added documentation.Released on 2014-11-20.
cURL
example annotation in the README to pick up bash
syntax highlighting.stringByAddingPercentEncodingWithAllowedCharacters
with CFURLCreateStringByAddingPercentEscapes
.cURL
output.textLabel
property on cells in the example app.Released on 2014-10-20.
Released on 2014-10-20.
NSURLSessionConfiguration
headers to cURL
representation.+
character.cURL
commands.request
method to the Manager
bringing it more inline with the top-level methods.HTTPBody
from occurring twice.subdelegateQueue
to the SessionDelegate
.Released on 2014-09-25.