AWS Amplify 为不同的云操作类别提供声明式且易于使用的接口。我们的默认实现适用于 Amazon Web Services (AWS),但 AWS Amplify 被设计为开放且可插拔,适用于任何自定义后端或服务。
适用于 Swift 的 Amplify 库构建于 适用于 Swift 的 AWS SDK 之上。这允许访问适用于 Swift 的 AWS SDK,以使用广泛的以服务为中心的 API。
| 平台 | 版本 | 支持级别 |
|---|---|---|
| iOS | 13+ | GA (正式发布) |
| macOS | 10.15+ | GA (正式发布) |
| tvOS | 13+ | GA (正式发布) |
| watchOS | 9+ | GA (正式发布) |
| visionOS | 1+ | 预览版* |
当前支持的最低 Swift 语言版本是 Swift 5.9。
注意
Amplify Swift 支持的最低 Swift 语言版本与 Apple 允许将应用上传到 App Store Connect 的最低 Xcode 版本中包含的版本相匹配。 历史上,Apple 每年 4 月更新最低允许的 Xcode 版本。您可以期望 Amplify Swift 在随后的 60 天内更新最低支持的 Swift 版本。 这样做是为了确保 Amplify Swift 可以提供现代 Swift API 并利用 Swift 语言的改进。
我们的发布遵循 语义化版本控制。
当 Amplify 添加新的枚举值时,我们将发布该库的新的次要版本。
使用 switch 语句评估枚举的所有成员的应用程序可以添加 default 情况,以防止新情况导致编译警告或错误。
我们遵循语义化版本控制来更新我们的依赖项。
该库在 Apache 2.0 许可证下获得许可。
Amplify 需要 Xcode 15.0 或更高版本才能支持所有受支持的平台。
| 有关更详细的说明,请参阅我们的文档站点中的入门指南 |
|---|
Swift Package Manager 随 Xcode 一起分发。 要开始将 Amplify 库添加到您的 iOS 项目,请在 Xcode 中打开您的项目,然后选择File > Add Packages。
将适用于 Swift 的 Amplify 库 GitHub 存储库 URL (https://github.com/aws-amplify/amplify-swift) 输入搜索栏。
您将看到适用于 Swift 的 Amplify 库存储库规则,该规则用于确定 Swift Package Manager 要安装的 Amplify 版本。 选择Up to Next Major Version并输入 2.0.0 作为依赖规则的最小版本,然后单击Add Package。
选择要添加到项目的库。 始终选择 Amplify 库。 要安装的“插件”取决于您使用的类别
选择所有合适的选项,然后单击Add Package。
您始终可以返回并修改项目中包含的 SPM 包,方法是打开项目的 Package Dependencies 选项卡:单击 Xcode 导航器中的项目文件,然后单击 Project 部分下的项目,然后选择 Package Dependencies 选项卡。
在您的应用代码中,当您需要向 Amplify 添加插件、访问插件选项或访问类别转义出口时,请显式导入插件。
import Amplify
import AWSCognitoAuthPlugin
import AWSAPIPlugin
import AWSDataStorePlugin
// ...
func initializeAmplify() {
do {
try Amplify.add(plugin: AWSCognitoAuthPlugin())
try Amplify.add(plugin: AWSAPIPlugin())
try Amplify.add(plugin: AWSDataStorePlugin())
// and so on ...
try Amplify.configure()
} catch {
assertionFailure("Error initializing Amplify: \(error)")
}
}
如果您只是访问 Amplify 类别 API(例如,Auth.signIn() 或 Storage.uploadFile()),您只需要导入 Amplify
import Amplify
// ...
func signIn() async throws {
let signInResult = try await Amplify.Auth.signIn(...)
// ...
}
通过 特性/API 部分中未列出的所有服务和特性,都可以通过 Swift SDK 或如果该类别支持,则可以通过如下所示的转义出口访问
import Amplify
import AWSS3StoragePlugin
import AWSS3
// ...
guard let plugin = try Amplify.Storage.getPlugin(for: "awsS3StoragePlugin") as? AWSS3StoragePlugin else {
print("Unable to to cast to AWSS3StoragePlugin")
return
}
let awsS3 = plugin.getEscapeHatch()
let accelerateConfigInput = PutBucketAccelerateConfigurationInput()
do {
let accelerateConfigOutput = try await awsS3.putBucketAccelerateConfiguration(
input: accelerateConfigInput
)
print("putBucketAccelerateConfiguration output: \(accelerateConfigOutput)")
} catch {
print("putBucketAccelerateConfiguration error: \(error)")
}
根据 Apple App Store 的要求,我们提供了新的 PrivacyInfo.xcprivacy 文件,用于描述所需原因 API 的使用,请参阅描述所需原因 API 的使用。 您还可以在 Xcode 中归档您的 App 后导出隐私报告,请参阅 创建您的 App 的隐私报告。
以下 Amplify 目标已被确定为正在使用 用户默认 API
AWSCognitoAuthPluginAWSDataStorePluginAWSCloudWatchLoggingPluginInternalAWSPinpoint我们欢迎您使用 GitHub 问题跟踪器来报告错误或提出功能建议。
提交问题时,请查看 现有打开的或最近关闭的问题,以确保其他人尚未报告该问题。 请尽量包含尽可能多的信息。 像这样的细节非常有用
我们欢迎社区的任何和所有贡献! 在提交任何 PR 之前,请务必阅读我们的贡献指南这里。 谢谢!