Amplify for iOSAWS Amplify 提供了一个声明式、易于使用的接口,用于跨不同的云操作类别。AWS Amplify 与任何基于 JavaScript 的前端工作流程以及对移动开发者友好的 React Native 都很好地配合使用。
我们的默认实现与亚马逊网络服务 (AWS) 配合使用,但 AWS Amplify 设计为开源、可插拔的,使其能够支持任何自定义后端或服务。
功能/APIs
- 分析 - 用于记录指标并了解您的用户。
- API (GraphQL) - 用于将 GraphQL 端点添加到您的应用程序。
- API (REST) - 用于将 REST 端点添加到您的应用程序。
- 身份验证 - 用于管理您的用户。
- 数据存储 - 用于简化分布式数据存储的编程,适用于离线和在线场景。
- 地理信息 - 为您的应用程序添加基于位置的功能。
- 预测 - 用于检测文本、图像等。
- 存储 - 将复杂对象(如图像和视频)存储到云端。
上述未列出的所有服务和功能均通过iOS SDK或通过支持相应类别的“逃生舱”进行访问
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。目前还没有计划在WatchOS、tvOS或MacOS上支持Amplify。
许可协议
本库采用Apache 2.0 许可协议。
安装
Amplify 需要 Xcode 12 或更高版本来构建。
有关更详细的说明,请参阅我们的文档站点中的入门指南。 |
---|
Swift 包管理器
-
Swift 包管理器与 Xcode 一起分发。要将 Amplify 库添加到您的 iOS 项目,请在 Xcode 中打开项目,然后选择 文件 > Swift 包 > 添加包依赖。
-
在搜索栏中输入 Amplify iOS GitHub 仓库 URL(
https://github.com/aws-amplify/amplify-ios
),然后点击 下一步。 -
您将看到 Amplify iOS 仓库中关于要安装哪个版本 Amplify 的规则。选择第一个规则,即 版本,因为它将从
main
分支检测到的兼容依赖的最高版本使用,然后点击 下一步。 -
选择您想添加到项目的库。始终选择Amplify库。要安装的“插件”取决于您正在使用的类别
-
API: AWSAPIPlugin
-
分析: AWSPinpointAnalyticsPlugin
-
身份验证: AWSCognitoAuthPlugin
-
数据存储: AWSDataStorePlugin
-
存储: AWSS3StoragePlugin
注意:由于最低iOS版本要求不同,AWSPredictionsPlugin目前不支持通过Swift Package Manager。最终将添加对该库的支持。
选择所有合适的选项,然后单击完成。
您随时可以通过打开项目的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
-
通过CocoaPods可以获取iOS的Amplify。如果您尚未安装CocoaPods,请运行以下命令进行安装:
$ gem install cocoapods $ pod setup
根据您的系统设置,您可能需要使用
sudo
来安装cocoapods
,如下所示:$ sudo gem install cocoapods $ pod setup
-
在您的项目目录(包含您的
*.xcodeproj
文件的目录)中,输入pod init
并打开创建的Podfile。添加Amplify
pod和您希望使用的任何插件。以下是一个示例,如果您将使用Predictions插件,则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(...) }
开发Pods
您可以通过克隆此存储库并创建一个像下面这样的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 之前,请确保阅读我们的贡献指南 这里。谢谢!