适用于 iOS 的 AmplifyAWS Amplify 为云操作的不同类别提供声明性和易于使用的接口。AWS Amplify 与任何基于 JavaScript 的前端工作流程良好配合,并为移动开发者提供 React Native。
我们的默认实现与亚马逊网络服务 (AWS) 配合工作,但 AWS Amplify 设计为对任何自定义后端或服务开放和可插件。
特性/API
- 分析 - 用于记录指标和理解您的用户。
- API (GraphQL) - 用于将 GraphQL 端点添加到您的应用中。
- API (REST) - 用于将 REST 端点添加到您的应用中。
- 身份验证 - 用于管理您的用户。
- 数据存储 - 用于简化分布式数据存储程序的编程,适用于离线和在线场景。
- 地理 - 将基于位置的功能添加到您的应用中。
- 预测 - 用于检测文本、图像等!
- 存储 - 将复杂对象(如图片和视频)存储到云中。
所有上述未列出的服务和功能都通过 iOS SDK 支持,或者如果支持某个类别,则可以通过以下方式通过 Escape Hatch 访问
guard let predictionsPlugin = try Amplify.Predictions.getPlugin(for: "awsPredictionsPlugin") as? AWSPredictionsPlugin else {
print("Unable to cast to AWSPredictionsPlugin")
return
}
guard let rekognitionService = predictionsPlugin.getEscapeHatch(key: .rekognition) as? AWSRekognition else {
print("Unable to get AWSRekognition")
return
}
let request = AWSRekognitionCreateCollectionRequest()
if let request = request {
rekognitionService.createCollection(request)
}
平台支持
Amplify 支持 iOS 11 及以上版本,以及针对预测和地理位置等特定类别的 iOS 13。目前没有计划支持 Amplify 在 WatchOS、tvOS 或 MacOS 上。
许可证
此库采用 Apache 2.0 许可证进行授权。
安装
Amplify 需要 Xcode 12 或更高版本来构建。
有关更详细的说明,请参阅我们 文档网站 中的入门指南。 |
---|
Swift Package Manager
-
Swift Package Manager 随 Xcode 一同分发。要将 Amplify 库添加到您的 iOS 项目中,请在 Xcode 中打开您的项目,然后选择 文件 > Swift 包 > 添加包依赖。
-
将 Amplify iOS GitHub 仓库 URL(
https://github.com/aws-amplify/amplify-ios
)输入到搜索栏中,然后点击 下一页。 -
您将看到 Amplify iOS 仓库的规则,其中指定了您想 Swift Package Manager 安装的 Amplify 版本。选择第一条规则,版本,因为它将使用从
main
分支检测到的最新兼容版本,然后点击 下一步。 -
选择您想添加到项目中的库。始终选中 Amplify 库。"插件" 的安装取决于您使用哪些分类
-
API: AWSAPIPlugin
-
分析: AWSPinpointAnalyticsPlugin
-
身份验证: AWSCognitoAuthPlugin
-
数据存储: AWSDataStorePlugin
-
存储: AWSS3StoragePlugin
注意:由于不同的最小 iOS 版本要求,当前无法通过 Swift Package Manager 支持AWSPredictionsPlugin。最终将添加对该插件的支持。
选择所有适合的项,然后点击 完成。
您可以通过打开项目的 Swift Packages 选项卡,随时返回并修改项目中包含的 SPM 包:在 Xcode 导航器中单击项目文件,然后单击项目图标,然后选择 Swift Packages 选项卡。
-
-
在您的应用程序代码中,当您需要向 Amplify 添加插件、访问插件选项或访问分类逃生通道时,显式导入一个插件。
import Amplify import AWSAPIPlugin import AWSDataStorePlugin // ... later func initializeAmplify() { do { try Amplify.add(AWSAPIPlugin()) // and so on ... } catch { assert(false, "Error initializing Amplify: \(error)") } }
如果您只是访问 Amplify 类别 API(例如,
Auth.signIn()
或Storage.uploadFile()
),则只需要导入 Amplify。import Amplify // ... later func doUpload() { Amplify.Storage.uploadFile(...) }
CocoaPods
-
Amplify for iOS 通过 CocoaPods 提供。如果您尚未安装 CocoaPods,请运行以下命令执行安装:
$ gem install cocoapods $ pod setup
根据您的系统设置,您可能需要在安装
cocoapods
时使用sudo
,如下所示:$ sudo gem install cocoapods $ pod setup
-
在您的项目目录(其中包含您的
*.xcodeproj
文件的目录中),键入pod init
并打开创建的 Podfile。添加Amplify
pod 和您想要使用的任何插件。以下是如果您要使用预测插件,Podfile可能看起来像什么的一个示例。source 'https://github.com/CocoaPods/Specs.git' platform :ios, '13.0' use_frameworks! target :'YourTarget' do pod 'Amplify' pod 'AmplifyPlugins/AWSCognitoAuthPlugin' pod 'AWSPredictionsPlugin' pod 'CoreMLPredictionsPlugin' end
-
然后运行以下命令:
$ pod install
-
使用 Xcode 打开
*.xcworkspace
并开始使用 Amplify。注意:绝不要使用
*.xcodeproj
。不要打开项目文件,否则您将收到错误。 -
在您的应用程序代码中,当您需要向 Amplify 添加插件、访问插件选项或访问分类逃生通道时,导入
AmplifyPlugins
。import Amplify import AmplifyPlugins // ... later func initializeAmplify() { do { try Amplify.add(AWSAPIPlugin()) // and so on ... } catch { assert(false, "Error initializing Amplify: \(error)") } }
如果您只是访问 Amplify 类别 API(例如,
Auth.signIn()
或Storage.uploadFile()
),则只需要导入 Amplify。import Amplify // ... later func doUpload() { Amplify.Storage.uploadFile(...) }
开发 Pod
您可以通过克隆此仓库并创建一个引用本地复制的 Podfile 的 Podfile 来手动安装库,如下所示:
pod 'Amplify', :path => '~/amplify-ios'
pod 'AWSPluginsCore', :path => '~/amplify-ios'
pod 'CoreMLPredictionsPlugin', :path => '~/amplify-ios'
pod 'AWSPredictionsPlugin', :path => '~/amplify-ios'
pod 'AmplifyPlugins/AWSAPIPlugin', :path => '~/amplify-ios'
然后,安装依赖关系:
pod install
使用 ./YOUR-PROJECT-NAME.xcworkspace 打开您的项目。请记住,从现在开始始终使用 ./YOUR-PROJECT-NAME.xcworkspace 打开您的 Xcode 项目。
报告错误/功能请求
我们欢迎使用 GitHub 问题跟踪器来报告错误或建议功能。
在提交问题之前,请检查现有开放,或最近已关闭的问题,以确保其他人没有报告过同样的问题。请尽量提供尽可能多的信息。以下这类详细信息极其有用
- 预期行为和观察到的行为
- 可重复的测试用例或步骤
- 正在使用的代码版本
- 您为相关错误所做的任何修改
- 您的环境或部署的任何自定义信息
开源贡献
我们欢迎社区中的任何贡献!在提交任何PR之前,请确保您已阅读我们的贡献指南此处。谢谢!