All notable changes to this project will be documented in this file.
Alamofire adheres to Semantic Versioning.
4.5.x Releases - 4.5.04.4.x Releases - 4.4.04.3.x Releases - 4.3.04.2.x Releases - 4.2.04.1.x Releases - 4.1.04.0.x Releases - 4.0.0 | 4.0.14.0.0 Betas - 4.0.0-beta.1 | 4.0.0-beta.23.5.x Releases - 3.5.0 | 3.5.13.4.x Releases - 3.4.0 | 3.4.1 | 3.4.23.3.x Releases - 3.3.0 | 3.3.13.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 2017-06-16. All issues associated with this milestone can be found using this filter.
@escaping annotation for session delegate closures.
mapError, flatMapError, withValue, withError, ifSuccess, and ifFailure APIs to Result.
SessionDelegate internal implementation by removing redundant optional unwrap.
debugPrintable implementation of Request to use curl -v instead of curl -i to be more verbose.
MultipartFormData contentType property to be mutable.
URLProtocolTestCase where HTTP header capitalization was wrong due to httpbin.org change.
.reachable status with [.connectionRequired, .isWWAN] combination.
Released on 2017-02-26. All issues associated with this milestone can be found using this filter.
Alamofire/Alamofire Gitter channel and also added badge to the README.
defaultHTTPHeaders property was called incorrectly.
taskDidComplete override closure was not calling task delegate leading to
potential memory leaks.
Released on 2017-01-15. All issues associated with this milestone can be found using this filter.
macOS disclaimer to download request example in README.
value and error computed properties to data and download responses.
dependencies parameter to Package file for SPM since it's now required.
NetworkReachabilityManager to have a public instead of open ACL.
syncResult extension with DispatchQueue sync.
DownloadRequest sample code issue in AF 4 migration guide.
URLConvertible compiler issue in the README example.
SessionManager did not respect retry time delay.
RequestAdapter and RequestRetrier examples in README.
Released on 2016-11-20. All issues associated with this milestone can be found using this filter.
Timeline generation to DefaultDataResponse and DefaultDownloadResponse.
encode method that takes a JSON object along with unit tests.
RequestRetrier example in the README to safely extract tokens.
TaskDelegate data and error properties to a public ACL.
AdaptError instances were being incorrectly sent to the RequestRetrier.
Released on 2016-11-15. All issues associated with this milestone can be found using this filter.
resumeData and background session behavior.
retryCount property to support the RequestRetrier.
DispatchQueue internal APIs in the example.
RequestAdapter to call the RequestRetrier when an Error is thrown.
SessionManager to clean up the temporary multipart form data file after upload.
SessionManager links that were broken in the README.
response.error was used incorrectly.
ServerTrustPolicy tests where a macOS 10.12 check was needed.
DownloadRequest in AF4 Migration Guide.
nil response.
Released on 2016-09-24. All issues associated with this milestone can be found using this filter.
OS_ACTIVITY_MODE environment variable to iOS, tvOS and iOS Example.
com.alamofire with org.alamofire throughout the project.
.swift-version file and re-enabling pod lib lint in Travis file.
macOS in place of OS X.
~/Library/Application Support
on macOS.
to parameter was missing.
AFError where wrong case was used in several property implementations.
DispatchQueue extension where Foundation needed to be imported for submodules.
Validation closures where reference to self was causing retain cycle.
Released on 2016-09-11. All issues associated with this milestone can be found using this filter.
DispatchQueue extension set of convenience properties and methods.
RequestAdapter and RequestRetrier protocols allowing requests to be retried.
RequestAdapter tests on all testable SessionManager request APIs.
Adapting and Retrying Requests section to the README.
DataRequest, DownloadRequest, UploadRequest and StreamRequest subclasses.
StreamRequest instances.
responseToSelector overrides for stream delegate APIs.
syncResult extension to DispatchQueue to simplify thread-safe locking.
dataFileNil and dataFileReadFailed cases to ResponseValidationFailureReason.
isWildcard property to MIMEType struct for convenience.
CustomDebugStringCovertible conformance to DownloadResponse.
FileManager extension in the test suite.
DownloadOptions option set to make moving files more robust.
DownloadOptions.
URLSessionTaskMetrics to all Response types.
HTTPHeaders typealias for top-level API convenience.
URLStringConvertible, URLRequestConvertible and RequestAdapter.
Request creation and adaptation.
authorizationHeader static method over to returning optional tuple.
SessionManager queues to each have a unique name using a UUID suffix.
Request subclasses to improve accuracy.
BaseTestCase to delete contents of common directories at the start of each test.
DataRequest and added equivalents
for DownloadRequest.
Protocol suffix.
Validation typealias to include response data in a DataRequest type.
Validation typealias to include temporary and destination URLs in a DownloadRequest type.
SessionManager APIs to all leverage TaskConvertible conformance.
DownloadFileDestination closures to be optional on top-level DownloadRequest APIs.
request and download APIs now default to .get method and upload defaults to .post.
ParameterEncoding encode API to throw instead of returning tuple.
TaskDelegate to only store the url session task error if error is nil.
ParameterEncoding enum by switching to a protocol backed by url, json and plist structs.
Error examples as well as typo and whitespace fixes.
Request task property is now optional allowing errors to propagate through.
resource parameter name.
URLStringCovertible by renaming to URLConvertible and removed protocol property.
URLConvertible and top-level API changes.
public ACL declarations on AFError extensions.
URLStringConvertible conformance on URLRequest.
downloadProgress and uploadProgress Int64 variants.
URLEncoding issue around NSNumber parameter encoding.
MultipartFormData temp directory creation needed to be done serially.
Released on 2016-08-29. All issues associated with this milestone can be found using this filter.
Manager class due to cherry picked change that merged incorrectly.
Released on 2016-08-28. All issues associated with this milestone can be found using this filter.
discardableResult annotations to all top-level Request APIs.
Notification.Name namespace.
Manager class to SessionManager to be more descriptive.
SessionDelegate, TaskDelegate and subclasses by pulling them into the global namespace.
SessionDelegate to store Request instances internally to prepare for retry logic.
URLRequest initializer to match other APIs.
Error enum to AFError which now conforms to the new Error protocol.
MultipartFormData Swift 3 API refactor.
This release requires Xcode 8.0 beta 6+ because it has been completely refactored to compile against Swift 3.0. Any older versions of Xcode will NOT COMPILE.
This release is the start of the Alamofire 4.0.0 beta releases. We still have quite a few large changes we're trying to squeeze in before the Xcode 8 GM drops, so the APIs will continue to change over the next few weeks. Please keep in mind that each beta will likely bring new APIs and also refactor others. The betas WILL NOT follow semantic versioning. We'll most likely conform to semantic versioning once we start releasing the RCs unless we run into a major unforeseen issue.
We'd really appreciate everyone trying out the betas and letting us know if you find issues. We want to address every possible issue prior to the official Alamofire 4.0.0 release.
Released on 2016-10-01. All issues associated with this milestone can be found using this filter.
Released on 2016-09-07. All issues associated with this milestone can be found using this filter.
User-Agent header generation formatting and also added docs and tests.
Released on 2016-08-28. All issues associated with this milestone can be found using this filter.
disig.sk to badssl.com to be more reliant and robust.
URLRequest method to maintain mutable variant data on an NSURLRequest passed
into the top-level APIs.
User-Agent header to include version and build numbers.
Cleanup Whitespace target.
Request debug description tests to no longer require parameters in a specific order.
Released on 2016-06-12. All issues associated with this milestone can be found using this filter.
26761490 to the list of rdars affecting Alamofire.
debugDescription test for a MultipartFormData Request with duplicate headers.
User-Agent header to use non-localized sources.
Generic Response Object Serialization section of the README to use protocol extension.
ReleaseTest configuration and updated Travis-CI yaml file to enable testability directly.
Timeline description and debugDescription due to string interpolation.
Released on 2016-05-08. All issues associated with this milestone can be found using this filter.
NSError userInfo dictionaries.
authorizationHeader API to generate base64 encoded authorization header.
NSURLProtocol with NSURLSession.
SesionDelegate to no longer be final to allow subclassing.
SessionDelegate subscript public to allow full control when subclassing.
Response Serialization section of the README to include validation examples.
Manager initializer in front of property assignment.
Accept header instead of Content-Type.
errorWithCode APIs and updated NSURLError* domains to NSURLErrorDomain.
cURLRepresentation method was not coalescing duplicate headers.
Released on 2016-04-06. All issues associated with this milestone can be found using this filter.
SessionDelegate redirect with completion override closure.
SessionDelegate override closures.
respondsToSelector check for the new HTTP redirect closure with completion.
SessionDelegate override closures were not called.
Released 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 aggressive 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.
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.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.