Skip to content

chore(deps): bump aws-sdk-swift from 1.6.71 to 1.7.27 - #4234

Merged
harsh62 merged 4 commits into
mainfrom
worktree-bump-aws-sdk-swift-4233
Jun 30, 2026
Merged

chore(deps): bump aws-sdk-swift from 1.6.71 to 1.7.27#4234
harsh62 merged 4 commits into
mainfrom
worktree-bump-aws-sdk-swift-4233

Conversation

@harsh62

@harsh62 harsh62 commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

Issue

Resolves #4233
Upstream tracking: awslabs/aws-sdk-swift#2181 (resolved)

Description

Bumps the aws-sdk-swift dependency from 1.6.71 to 1.7.21. This moves the transitive dependencies:

Package Before After
aws-sdk-swift 1.6.71 1.7.21
aws-crt-swift 0.58.1 0.63.0
smithy-swift 0.191.0 0.219.0

Why this resolves #4233

#4233 reported that Amplify Swift and the AWS IoT Device SDK for Swift could not coexist in the same project because of conflicting aws-crt-swift versions. The IoT SDK requires aws-crt-swift >= 0.61.2, while aws-sdk-swift pinned aws-crt-swift with a hard exact: constraint.

As of aws-sdk-swift 1.7.21, that constraint was relaxed from exact: "0.61.1" to from: "0.63.0" (tracked in awslabs/aws-sdk-swift#2181, now closed as resolved). With this bump, Amplify resolves aws-crt-swift 0.63.0 via a floating range, so SPM can satisfy both Amplify and the AWS IoT Device SDK for Swift in a single project.

Testing

  • swift package resolve succeeds and regenerates Package.resolved with the versions above.

@harsh62
harsh62 requested a review from a team as a code owner June 8, 2026 13:24
thisisabhash
thisisabhash previously approved these changes Jun 8, 2026
@codecov

codecov Bot commented Jun 18, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 66.75%. Comparing base (37f9018) to head (01d19ea).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #4234      +/-   ##
==========================================
- Coverage   66.79%   66.75%   -0.04%     
==========================================
  Files        1151     1151              
  Lines       43869    43869              
==========================================
- Hits        29301    29284      -17     
- Misses      14568    14585      +17     
Flag Coverage Δ
API_plugin_unit_test 68.36% <ø> (ø)
AWSPluginsCore 68.07% <ø> (ø)
Amplify 47.47% <ø> (ø)
Amplify_Foundation_Bridge_unit_test 62.28% <ø> (ø)
Amplify_Foundation_unit_test 67.64% <ø> (ø)
Analytics_plugin_unit_test 83.43% <ø> (ø)
Auth_plugin_unit_test 72.35% <ø> (-0.09%) ⬇️
DataStore_plugin_unit_test 81.80% <ø> (-0.09%) ⬇️
Firehose_plugin_unit_test 53.15% <ø> (ø)
Geo_plugin_unit_test 73.39% <ø> (ø)
Kinesis_plugin_unit_test 52.17% <ø> (ø)
Logging_plugin_unit_test 64.86% <ø> (ø)
Predictions_plugin_unit_test 33.89% <ø> (ø)
PushNotifications_plugin_unit_test 85.66% <ø> (ø)
RecordCache_unit_test 76.40% <ø> (ø)
Storage_plugin_unit_test 78.67% <ø> (ø)
unit_tests 66.75% <ø> (-0.04%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

harsh62 added 4 commits June 30, 2026 09:59
Updates the aws-sdk-swift dependency to 1.7.27, which moves the
transitive dependencies:

  aws-crt-swift   0.58.1  -> 0.63.0
  smithy-swift    0.191.0 -> 0.223.0
  swift-http-types 1.5.1  -> 1.6.0

aws-sdk-swift 1.7.21+ relaxes its aws-crt-swift constraint from
exact: "0.61.1" to from: "0.63.0", so Amplify Swift and the AWS IoT
Device SDK for Swift can now coexist in the same project without an
aws-crt-swift version conflict.

swift-http-types is bumped to 1.6.0 because the transitively-updated
swift-nio-extras enables its new FoundationURL trait, which only exists
as of swift-http-types 1.6.0.

1.7.27 (smithy-swift 0.223.0) is required: smithy-swift's schema-based
JSON deserializer (introduced in 0.206.0) regressed null-value handling
for non-sparse maps, which broke deserialization of Cognito
RespondToAuthChallenge responses whose ChallengeParameters contain a
null value (e.g. "FRIENDLY_DEVICE_NAME": null in the SELECT_MFA_TYPE
challenge). smithy-swift 0.223.0 restores the prior behavior of
tolerating null values in non-sparse maps.

Resolves #4233
smithy-swift 0.219.0 (pulled transitively by aws-sdk-swift 1.7.21)
ships the SmithyCodeGeneratorPlugin build-tool plugin, which aws-sdk-swift
attaches to every service target. Two independent issues broke CI builds
on the embedded simulator platforms (watchOS/tvOS):

1. Xcode requires package build-tool plugins to be trusted before use,
   which can't happen non-interactively in CI:
     Validate plug-in "SmithyCodeGeneratorPlugin" ... ** BUILD FAILED **
   Fixed by passing -skipPackagePluginValidation.

2. Passing -sdk <simulator> forces xcodebuild to build the plugin's host
   tool (SmithyCodegenCLI, an executableTarget) for the simulator SDK,
   where it can't link:
     Build input file cannot be found: '.../SmithyCodegenCLI'
   The -destination already specifies the platform, so -sdk is redundant.
   Removed it; the host tool now builds for macOS and the library for the
   target. (The sdk input is retained for the coverage-export path.)

Both changes are required; dropping either re-breaks the watchOS/tvOS
builds for a different reason.
AuthIntegrationTests and AuthGen2IntegrationTests declared target
dependencies on BOTH AuthHostApp and AuthWatchApp. That pulled both
apps into a single build graph, and since both link Amplify /
AWSCognitoAuthPlugin (and transitively aws-sdk-swift), the new
SmithyCodeGeneratorPlugin ran twice for each SDK service target,
writing to the same aws-sdk-swift.output/<target>/ path:

  Multiple commands produce '.../AWSCognitoIdentitySchemas.swift'

Every other plugin's host-app project depends each test bundle on a
single app (e.g. Geo -> GeoHostApp), which builds cleanly. Match that
structure: the iOS test bundles now depend only on AuthHostApp, and
the watch test bundle on AuthWatchApp.

Verified locally: 'xcodebuild build-for-testing -scheme
AuthIntegrationTests' now reports TEST BUILD SUCCEEDED.
The integration XCTest bundles for Predictions, Kinesis/Firehose, and
the Analytics watchOS target linked the Amplify/aws-sdk-swift package
products directly (in both packageProductDependencies and the
Frameworks build phase), in addition to their host app linking them.

With smithy-swift 0.219.0's SmithyCodeGeneratorPlugin (pulled in by
aws-sdk-swift 1.7.21), this makes the build-tool plugin run twice for
each aws-sdk-swift service target — host app build + test bundle build —
both writing to the same package-keyed output directory:

  Multiple commands produce '.../AWSCognitoIdentitySchemas.swift'
  Build input files cannot be found: '.../InternalAWSCognitoIdentity...'

Passing projects (Geo, Storage, Logging, Analytics iOS/tvOS) link the
SDK products only from the app targets; their test bundles rely on the
host app via TEST_HOST. Match that: remove the redundant product links
from the affected test bundles.

Verified locally: AWSPredictionsPluginIntegrationTests and
AmplifyKinesisClientIntegrationTests now build with no plugin-output
collision (TEST BUILD SUCCEEDED).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Dependency conflict between Amplify Swift and AWS IoT Device SDK for Swift

2 participants