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仓库规则。选择第一条规则,即版本,因为它将使用可以从
main
分支检测到的最新兼容版本,然后点击下一步。 -
选择您想添加到项目的库。始终选择Amplify库。"插件"的安装取决于您正在使用的分类
-
API: AWSAPIPlugin
-
分析: AWSPinpointAnalyticsPlugin
-
身份验证: AWSCognitoAuthPlugin
-
数据存储: AWSDataStorePlugin
-
存储: AWSS3StoragePlugin
注意:由于不同的最低iOS版本要求,AWSPredictionsPlugin目前不支持通过Swift Package Manager进行安装。最终将添加对该插件的支持。
选择所有适当的项目,然后点击完成。
您可以通过打开您的项目的Swift包标签来随时返回并修改项目中包含的SPM包:在Xcode导航器中单击项目文件,然后单击您的项目图标,然后选择Swift包标签。
-
-
在您的应用程序代码中,在需要将插件添加到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()
),则只需要导入Amplifyimport Amplify // ... later func doUpload() { Amplify.Storage.uploadFile(...) }
CocoaPods
-
Amplify iOS可通过CocoaPods提供。如果您尚未安装CocoaPods,请通过运行以下命令安装CocoaPods:
$ gem install cocoapods $ pod setup
根据您的系统设置,安装
时您可能需要使用 sudo
,如下所示:$ sudo gem install cocoapods $ pod setup
-
在您的项目目录(您的
*.xcodeproj
文件所在的目录)中,键入pod init
并打开创建的Podfile。添加您希望使用的Amplify
桩和任何其他插件。以下是一个如果您将使用预测插件时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()
),则只需要导入Amplifyimport Amplify // ... later func doUpload() { Amplify.Storage.uploadFile(...) }
开发Pods
您可以通过克隆此存储库并创建一个像下面的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 之前,请确保阅读我们的贡献指南此处。谢谢!