Releases · Alamofire/Alamofire · GitHub
Skip to content

Releases: Alamofire/Alamofire

5.12.0

05 May 01:44
7595cbc

Choose a tag to compare

Released on 2026-05-04. All issues associated with this milestone can be found using this filter.

Added

  • FreeBSD compilation support.

Updated

  • Various CI configurations.

Fixed

  • Rare race in Request.suspend() and Request.cancel() where the state update would be lost if it occurred before the task was created.
  • Request.cancel() incorrect called Request.finish() when the underlying task was already .completed.
  • Rare race in Request.resume() that could lead to multiple URLSessionTasks created.
  • Repeated calls to Request.suspend() and Request.resume() could lead to multiple pipeline executions.
  • Thread-safety issue in Session.deinit when accessing internal state.
  • Rare Request.finish() race in Session.deinit.
  • Session.deinit called Request.finish() on Requests that were already finished.
  • Request.onHTTPRequest didn't call the full Request.cancel() when the .cancel disposition was returned.
  • Multiple unlikely force unwrap or unowned self crashes.
  • Write to DataStreamRequest's outputStream after it was closed.
  • MIME type parsing, where a single element (text) or empty strings would be accepted.
  • Cancelled DownloadRequests could still trigger retry.
  • DataRequest.DataTask and DownloadRequest.DownloadTask could miss early cancellation events if they happened before the underlying Task was created.
  • 🔥 Multiple issues in AuthenticationInterceptor. These fixes slightly change the interceptor's behavior.
    1. adapt() enqueued adaptations, leading to requests restarted with a new credential to not execute the whole adapt pipeline again. AuthenticationInterceptor will now let those requests fail with the old credential and retry their whole pipeline with the new credential.
    2. Concurrent adaptations for the same stale credential could trigger multiple refreshes.
    3. retry() now lazily checks for new credentials rather than capturing eagerly.

5.11.2

06 Apr 03:14
e938f8c

Choose a tag to compare

Updated

  • Use of #file to #fileID to prevent build system info leakage.
  • CI and dependencies.

Fixed

  • A rare race between the creation of StreamOf values and the start of their iteration, which could miss values.
  • Handling of duplicate URLSessionTaskMetrics callbacks, likely caused by using the new loading system (usesClassicLoadingMode = false).

5.11.1

02 Feb 03:21
3f99050

Choose a tag to compare

Fixed

  • Fixes #3978, a rare logical race that allowed the same response serializer to execute multiple times simultaneously, which would call the completion handler multiple times, leading to crashes when wrapping continuations.

5.11.0

20 Dec 07:34
7be73f6

Choose a tag to compare

Released on 2025-12-20. All issues associated with this milestone can be found using this filter.

Added

  • Lazy Request setup by default. Requests are now inert until resume()'d, whether automatically or manually. Previous behavior can be restored by using Session(requestSetup: .eager).
  • Inline, per-Request RequestAdapter, RequestRetrier, RequestInterceptor, and EventMonitor APIs, to add instances after Request initialization.
  • Per-Request automatic resume() control, with the shouldAutomaticallyResume parameter.
  • OfflineRetrier, to retry requests based on NWPathMonitor status, as a replacement for NetworkReachabilityManager.

Updated

  • Alamofire to require Xcode 16.0 and the Swift 6 compiler (Swift 5 or 6 mode).
  • Deployment targets for the test targets to match XCTest and Swift Testing availability.
  • Empty to be Hashable.
  • Request internals to use more atomic locking.
  • Deprecated NetworkReachabilityManager on iOS 17.4 and later.
  • Linux and Android CI builds.

Fixed

  • Missing @Sendable in RetryPolicy.
  • Example in Usage.md.
  • Deleted .swiftpm folder from repo to prevent Xcode from creating Alamofire schemes when used as a package.

New Contributors

Full Changelog: 5.10.2...5.11.0

5.10.2

25 Nov 15:11
513364f

Choose a tag to compare

Released on 2024-11-24. All issues associated with this milestone can be found using this filter.

Fixed

  • Runtime crash when calling validate from a Swift 6-compiled target.
  • Swift 6.0 Package.swift deprecation warning.

5.10.1

19 Oct 19:29
e16d348

Choose a tag to compare

Released on 2024-10-19. All issues associated with this milestone can be found using this filter.

Fixed

  • @Sendable in AdaptHandler and RetryHandler types.
  • Downstream JSONResponseSerializer wrapper by reverting output type to just Any.
  • Missing @Sendable on Authenticator.refresh.

5.10.0

13 Oct 22:22
ea6a94b

Choose a tag to compare

Added

  • 🔥 Full Swift concurrency support with Sendable requirements. Most APIs are also marked @preconcurrency, so there should be no breaking changes. Swift 5.9 now required to build.
  • Existential any now required internally by Alamofire.

Updated

  • 🔥 Session.init(... eventMonitors:) to allow no EventMonitors at all, and CompositeEventMonitor to fix thread-safety. Potentially breaking if previously passing [] but still expecting Notifications to be posted. Pass [AlamofireNotifications()] if you need that behavior.
  • DownloadRequest.validate to read the fileSize rather than the whole file from disk.
  • Links to swiftlang repositories.

Fixed

  • Various documentation typos.
  • Passing queue parameter to DataStream serializers.
  • testThatDatesCanBeEncodedAsFormatted when running with a non-Gregorian calendar.

5.9.1

31 Mar 01:22
f455c29

Choose a tag to compare

Released on 2024-03-30. All issues associated with this milestone can be found using this filter.

Updated

  • HTTPHeaders and HTTPHeader to be Sendable.
  • HTTPMethod to be Sendable.

Fixed

  • CocoaPods visionOS support by explicitly declaring it in podspec.

5.9.0

04 Mar 02:19
723fa5a

Choose a tag to compare

Released on 2024-03-03. All issues associated with this milestone can be found using this filter.

Added

  • [🔥 Experimental 🔥] WebSocketRequest, as a wrapper for URLSessionWebSocketTask. This preview release is undocumented behind @_spi(WebSocket). Its API will change in the future, especially to adopt typed throws, but it is largely feature complete, tested, and usable now. API feedback, missing use cases, and bug reports are much appreciated before it goes fully public.
  • PrivacyInfo.xcprivacy file and integration with SPM, CocoaPods, and Carthage.
  • AlamofireDynamic target, to force dynamic linking in Xcode when using SPM. Only use when you know you need it.
  • AFInfo enum and a public version value to get Alamofire's current version, AFInfo.version.

Updated

  • Alamofire to require Swift 5.7.1.
  • Project structure to break apart large Request.swift file and consolidate various Request subclasses into their own files.
  • Empty type to be Sendable.
  • .swiftformat to remove duplicate rules.

Fixed

  • Platform deprecation warnings in Package.swift in newer Xcode versions.
  • Alamofire.podspec after project restructuring.
  • Various documentation typos.

5.8.1

26 Oct 19:49
3dc6a42

Choose a tag to compare

Released on 2023-10-26. All issues associated with this milestone can be found using this filter.

Updated

  • Internal: Protected to no longer be a @propertyWrapper.

Fixed

  • URLEncodedFormEncoder encoding of Encodable values with optional properties using encodeIfPresent.
  • Missing "Skip Install" setting for visionOS target.