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
AWSCognitoAuthPlugin
AWSDataStorePlugin
AWSCloudWatchLoggingPlugin
InternalAWSPinpoint
我们欢迎您使用 GitHub 问题跟踪器来报告错误或提出功能建议。
提交问题时,请查看 现有打开的或最近关闭的问题,以确保其他人尚未报告该问题。 请尽量包含尽可能多的信息。 像这样的细节非常有用
我们欢迎社区的任何和所有贡献! 在提交任何 PR 之前,请务必阅读我们的贡献指南这里。 谢谢!