Is your feature request related to a problem? Please describe.
Description
We are currently migrating an iOS application from the legacy AWS SDKs to the modern AWS stack using Amplify Swift and aws-sdk-swift.
During this migration, we identified a dependency conflict that makes it impossible to use Amplify Swift and AWS IoT Device SDK for Swift in the same project.
Current dependency chain
Amplify Swift (2.53.x and also the latest 2.58.x releases) depends on:
which in turn depends on:
On the other hand, AWS IoT Device SDK for Swift depends on:
As a result, Swift Package Manager cannot resolve the dependencies when both SDKs are added to the same project.
Repositories involved
Amplify Swift:
https://github.com/aws-amplify/amplify-swift
AWS SDK Swift:
https://github.com/awslabs/aws-sdk-swift
AWS CRT Swift:
https://github.com/awslabs/aws-crt-swift
AWS IoT Device SDK Swift:
https://github.com/aws/aws-iot-device-sdk-swift
Impact
This currently prevents applications from adopting the modern AWS IoT SDK while also using Amplify Swift for authentication and Cognito integration.
In our case, we have already migrated authentication to Amplify and aws-sdk-swift, but we are forced to continue using the legacy AWS IoT SDK because the modern AWS IoT Device SDK cannot coexist with Amplify in the same project.
Questions
-
Is there an official plan to align the aws-crt-swift dependency versions across these SDKs?
-
Is there a recommended architecture for applications that need both Amplify Swift and AWS IoT Device SDK for Swift?
-
Are there plans to:
- Update Amplify/aws-sdk-swift to support newer aws-crt-swift versions, or
- Provide a compatible AWS IoT Device SDK release that works with the CRT version currently used by Amplify?
AWS Premium Support has already acknowledged this dependency conflict and escalated the question internally to the SDK teams for clarification.
Any guidance would be greatly appreciated.
Describe the solution you'd like
Allow Amplify Swift and AWS IoT Device SDK for Swift to coexist in the same project without dependency conflicts.
Currently, Amplify Swift depends on aws-sdk-swift, which pins aws-crt-swift to version 0.58.1, while AWS IoT Device SDK for Swift requires aws-crt-swift 0.61.2 or newer. This makes it impossible to use both SDKs together in a single application.
Ideally, the AWS SDK ecosystem should align the aws-crt-swift dependency versions across Amplify Swift, aws-sdk-swift, and AWS IoT Device SDK for Swift, allowing customers to use Amplify for authentication and Cognito integration while adopting the modern AWS IoT SDK.
A compatible dependency strategy or an officially recommended integration path would significantly simplify migrations from the legacy AWS SDKs.
Describe alternatives you've considered
We evaluated several alternatives:
- Continuing to use the legacy AWS IoT SDK while migrating authentication to Amplify.
- Implementing MQTT communication manually using WebSocket and SigV4 signing.
- Using aws-crt-swift directly instead of AWS IoT Device SDK for Swift.
- Forking AWS IoT Device SDK for Swift and modifying its dependencies.
- Maintaining separate implementations for authentication and IoT connectivity.
However, all of these alternatives increase maintenance complexity, require custom implementations, or depend on SDKs that are currently in preview status.
Is the feature request related to any of the existing Amplify categories?
No response
Additional context
AWS Premium Support reviewed this issue and confirmed the dependency conflict between Amplify Swift and AWS IoT Device SDK for Swift. The case has been escalated internally to the SDK teams for guidance regarding future compatibility and recommended migration paths.
Our use case is a production iOS application currently migrating from the legacy AWS SDKs to Amplify Swift and aws-sdk-swift. The dependency conflict is the main blocker preventing adoption of the modern AWS IoT Device SDK for Swift.
Is your feature request related to a problem? Please describe.
Description
We are currently migrating an iOS application from the legacy AWS SDKs to the modern AWS stack using Amplify Swift and aws-sdk-swift.
During this migration, we identified a dependency conflict that makes it impossible to use Amplify Swift and AWS IoT Device SDK for Swift in the same project.
Current dependency chain
Amplify Swift (2.53.x and also the latest 2.58.x releases) depends on:
which in turn depends on:
On the other hand, AWS IoT Device SDK for Swift depends on:
As a result, Swift Package Manager cannot resolve the dependencies when both SDKs are added to the same project.
Repositories involved
Amplify Swift:
https://github.com/aws-amplify/amplify-swift
AWS SDK Swift:
https://github.com/awslabs/aws-sdk-swift
AWS CRT Swift:
https://github.com/awslabs/aws-crt-swift
AWS IoT Device SDK Swift:
https://github.com/aws/aws-iot-device-sdk-swift
Impact
This currently prevents applications from adopting the modern AWS IoT SDK while also using Amplify Swift for authentication and Cognito integration.
In our case, we have already migrated authentication to Amplify and aws-sdk-swift, but we are forced to continue using the legacy AWS IoT SDK because the modern AWS IoT Device SDK cannot coexist with Amplify in the same project.
Questions
Is there an official plan to align the aws-crt-swift dependency versions across these SDKs?
Is there a recommended architecture for applications that need both Amplify Swift and AWS IoT Device SDK for Swift?
Are there plans to:
AWS Premium Support has already acknowledged this dependency conflict and escalated the question internally to the SDK teams for clarification.
Any guidance would be greatly appreciated.
Describe the solution you'd like
Allow Amplify Swift and AWS IoT Device SDK for Swift to coexist in the same project without dependency conflicts.
Currently, Amplify Swift depends on aws-sdk-swift, which pins aws-crt-swift to version 0.58.1, while AWS IoT Device SDK for Swift requires aws-crt-swift 0.61.2 or newer. This makes it impossible to use both SDKs together in a single application.
Ideally, the AWS SDK ecosystem should align the aws-crt-swift dependency versions across Amplify Swift, aws-sdk-swift, and AWS IoT Device SDK for Swift, allowing customers to use Amplify for authentication and Cognito integration while adopting the modern AWS IoT SDK.
A compatible dependency strategy or an officially recommended integration path would significantly simplify migrations from the legacy AWS SDKs.
Describe alternatives you've considered
We evaluated several alternatives:
However, all of these alternatives increase maintenance complexity, require custom implementations, or depend on SDKs that are currently in preview status.
Is the feature request related to any of the existing Amplify categories?
No response
Additional context
AWS Premium Support reviewed this issue and confirmed the dependency conflict between Amplify Swift and AWS IoT Device SDK for Swift. The case has been escalated internally to the SDK teams for guidance regarding future compatibility and recommended migration paths.
Our use case is a production iOS application currently migrating from the legacy AWS SDKs to Amplify Swift and aws-sdk-swift. The dependency conflict is the main blocker preventing adoption of the modern AWS IoT Device SDK for Swift.