Change Log
All notable changes to this project will be documented in this file.
Alamofire adheres to Semantic Versioning.
Released on 2015-07-24. All issues associated with this milestone can be found using this
filter.
Added
- Test case around
NSURLProtocol checking header passthrough behaviors.
- Stream method on
Request to receive data incrementally from data responses.
- Example to the README demonstrating how to use the
responseCollection serializer.
- Link to the README to the CocoaDocs documentation for Alamofire.
- Support for uploading
MultipartFormData in-memory and streaming from disk.
- Tests for uploading
MultipartFormData with complete code coverage.
- The iOS 8.4 simulator to the Travis CI builds by switching to the Xcode 6.4 build.
- Tests for the custom header support with complete code coverage.
- Section to the README about new HTTP header support in the global functions.
- Basic auth
Authorization header example to the README.
- TLS certificate and public key pinning support through the
ServerTrustPolicy.
- Tests for TLS certificate and public key pinning with complete code coverage.
- Security section to the README detailing various server trust policies.
- The
resumeData property to Request to expose outside data response serializer.
- Download request sample to iOS example app.
Updated
- The INFOPLIST_FILE Xcode project setting to be a relative path.
- Exposed persistence parameter for basic auth credentials.
- The Travis CI builds to run a full
pod lib lint pass on the source.
- All cases of force unwrapping with optional binding and where clause when applicable.
- The
ParameterEncoding encode return tuple to return a mutable URL request.
- The
URLRequest convenience method to return a mutable NSURLRequest.
- The
request / download / upload methods to support custom headers.
- The global
request / download / upload method external parameters convention.
- Response serialization to use generics and a
ResponseSerializer protocol.
- Download task delegate to store resume data for a failed download if available.
- The
TaskDelegate.queue to public to allow custom request extension operations.
- The README code samples for Advanced Response Serialization.
Removed
- An unnecessary
NSURLSessionConfiguration type declaration that can be inferred.
- Unnecessary
respondsToSelector overrides for SessionDelegate methods.
- Unnecessary calls to
self throughout source, test and example logic.
Fixed
- Random test suite basic auth failures by clearing credentials in
setUp method.
- Error where wildcard was failing due to missing response MIME type.
- Typo in the basic auth headers example code in the README.
- Issue where the example app was printing elapsed time in optional form.
Upgrade Notes
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.
Added
- Tests for data task progress closure and NSProgress updates.
- More robust tests around download and upload progress.
- More robust redirect tests around default behavior and task override closures.
- The "[" and "]" to the legal escape characters and added more documentation.
- Percent escaping tests around reserved / unreserved / illegal characters.
- Tests for various Cache-Control headers with different request cache policies.
- Link to Carthage in the README.
Updated
- iOS 7 instructions to cover multiple Swift files in the README.
- All tests to follow the Given / When / Then structure.
- All tests to be crash safe.
- The OS X tests so that they are all passing again.
- Re-enabled Travis-CI tests for both iOS and Mac OS X.
- Travis-CI test suite to run all tests in both debug and release.
- Travis-CI test suite to run all tests on iOS 8.1, 8.2 and 8.3 as well as Mac OS X 10.10.
- Travis-CI test suite to run
pod lib lint against the latest version of CocoaPods.
Fixed
- Random deinitialization test failure by handling task state race condition.
- Typo in the API Parameter Abstraction in the README.
- Cookies are now only applied in the DebugPrintable API when appropriate.
Released on 2015-05-13. All issues associated with this milestone can be found using this
filter.
Added
- Contributing Guidelines document to the project.
- Documentation to the
URLStringConvertible protocol around RFC specs.
- The
Carthage/Build ignore flag to the .gitignore file.
- The
.DS_Store ignore flag to the .gitignore file.
- Response status code asserts for redirect tests.
- A CHANGELOG to the project documenting each official release.
Updated
SessionDelegate override closure properties to match the method signatures.
- Documentation for the
Printable protocol on Request to reference output stream
rather than the specific OutputStreamType.
- Deployment targets to iOS 8.0 and OS X 10.9 for the respective frameworks.
SessionDelegate willPerformHTTPRedirection method to accept optional return type
from override closure.
- Embedded Framework and Source File documentation in the README.
- Alamofire source to be split into multiple core files and feature files.
TaskDelegate override closure signatures and delegate method implementations.
Removed
- Travis-CI build status from the README until Xcode 6.3 is supported.
- Unnecessary parentheses from closure parameters and typealiases.
Fixed
SessionDelegate override closure documentation.
- Some inaccurate documentation on several of the public
SessionDelegate closures.
- A deinit race condition where the task delegate queue could fail to
dispatch_release.
TaskDelegate to only set qualityOfService for NSOperationQueue on iOS 8+.
- Expectation order issue in the redirect tests.
DataTaskDelegate behavior ensuring NSProgress values and progress override
closures are always updated and executed.
Released on 2015-04-21.
Added
- Redirect tests for the
SessionDelegate.
- TLS evaluation test case.
- Additional guards to ensure unique task identifiers for upload and download tasks.
Updated
- Required Xcode version to Xcode to 6.3 in the README.
- SSL validation to use default system validation by default.
Released on 2015-04-09.
Added
- New
testURLParameterEncodeStringWithSlashKeyStringWithQuestionMarkValueParameter
test.
- New
backgroundCompletionHandler property to the Manager called when the
session background tasks finish.
Updated
Request computed property progress to no longer be an optional type.
- All logic to Swift 1.2.
- The
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.
- Xcode project to set
APPLICATION_EXTENSION_API_ONLY to YES for OS X target.
Removed
- Ambiguous response serializer methods that collided with default parameters.
SessionDelegate initializer and replaced with default property value.
Fixed
- Async tests where asserts were potentially not being run by by moving
expectation.fullfill() to end of closures.
- Small grammatical error in the ParameterEncoding section of the README.
- Typo in a download test comment.
- Signature mismatch in the
dataTaskDidBecomeDownloadTask override closure.
- Issue in the
SessionDelegate where the DataTaskDelegate was not being called.
Released on 2015-03-26.
Added
- Convenience upload functions to the
Manager.
- Info to the README about Swift 1.2 support.
Updated
- All request / upload / download methods on
Manager to match the top-level functions.
- The
testDownloadRequest to no longer remove the downloaded file.
- Ono XML response serializer example in the README.
- Travis-CI settings to only build the master branch.
- Code signing identities for the frameworks and targets to better support Carthage.
- iOS deployment target to iOS 8.0 for iOS target and tests.
- Legal characters to be escaped according to RFC 3986 Section 3.4.
Fixed
- Travis-CI scheme issue, added podspec linting and added ENV variables.
- Code sample in the README in the Manual Parameter Encoding section.
Released on 2015-01-30.
Added
- Podspec argument
requires_arc to the podspec file.
- Support for Travis-CI for automated testing purposes.
Updated
- Installation instructions in the README to include CocoaPods, Carthage and
Embedded Frameworks.
- Travis-CI to use Xcode 6.1.1.
- The
download method on Manager to use Request.DownloadFileDestination typealias.
RequestTests to no longer delete all cookies in default session configuration.
- Travis-CI yaml file to only build the active architecture.
- Deployment targets to iOS 7.0 and Mac OS X 10.9.
Removed
- The
tearDown method in the AlamofireDownloadResponseTestCase.
Fixed
- Small formatting issue in the CocoaPods Podfile example in the README.
- Several issues with the iOS and OSX targets in the Xcode project.
- The
testDownloadRequest in DownloadTests by adding .json file extension.
- The
AlamofireRequestDebugDescriptionTestCase on OSX.
- Spec validation error with CocoaPods 0.36.0.beta-1 by disabling -b flags in
cURL
debug on OSX.
- Travis-CI build issue by adding suppport for an
iOS Example scheme.
Released on 2015-01-09.
Added
- Podspec file to support CocoaPods deployment.
- Shared scheme to support Carthage deployments.
- New target for Alamofire OSX framework.
Updated
- Upload and Download progress state to be updated before calling progress closure.
Fixed
- Some casting code logic in the Generic Response Object Serialization example in
the README.
- Indentation formatting of the
responseString parameter documentation.
Released on 2014-12-21.
Added
- POST request JSON response test.
Updated
- The response object example to use a failable initializer in the README.
- Router example in the README by removing extraneous force unwrap.
- Xcode project
APPLICATION_EXTENSION_API_ONLY flag to YES.
- Default HTTP header creation by moving it into a public class method.
Fixed
- Upload stream method to set
HTTPBodyStream for streamed request.
- ParameterEncoding to compose percent-encoded query strings from
percent-encoded components.
- Serialization handling of NSData with 0 bytes.
- Issue where
suggestedDownloadDestination parameters were being ignored.
- Crash caused by
Manager deinitialization and added documentation.
Released on 2014-11-20.
Updated
- Dispatch-based synchronized access to subdelegates.
- iOS 7 instructions in the README.
- CRUD example in the README to work on Xcode 6.1.
- The
cURL example annotation in the README to pick up bash syntax highlighting.
Fixed
- Out-of-memory exception by replacing
stringByAddingPercentEncodingWithAllowedCharacters
with CFURLCreateStringByAddingPercentEscapes.
- Several issues in the README examples where an NSURL initializer needs to be unwrapped.
- Possible exception when force unwrapping optional header properties.
- Optional cookie entry in
cURL output.
- Optional
textLabel property on cells in the example app.
Released on 2014-10-20.
Updated
- Project to support Swift 1.1 and Xcode 6.1.
Released on 2014-10-20.
Added
- Tests for upload and download with progress.
- Test for question marks in url encoded query.
- The
NSURLSessionConfiguration headers to cURL representation.
- Parameter encoding tests for key/value pairs containing spaces.
- Percent character encoding for the
+ character.
- Escaping for quotes to support JSON in
cURL commands.
- The
request method to the Manager bringing it more inline with the top-level methods.
Fixed
- Parameter encoding of ampersands and escaping of characters.
- Parameter encoding of
HTTPBody from occurring twice.
- Fixed by Yuri in Pull Request
#153.
- Extraneous dispatch to background by using weak reference for delegate in response.
- Response handler threading issue by adding a
subdelegateQueue to the SessionDelegate.
- Challenge issue where basic auth credentials were not being unwrapped.
Released on 2014-09-25.
Added
- Initial release of Alamofire.