Amplify for iOSAWS Amplify 为不同的云操作类别提供了一个声明式且易于使用的接口。AWS Amplify 与任何基于 JavaScript 的前端工作流程以及 React Native 都很好地配合使用。
我们的默认实施与亚马逊网络服务 (AWS) 一起工作,但 AWS Amplify 被设计为开放和可插入的,适用于任何自定义后端或服务。
特性和 API
- 分析 - 用于记录指标和理解您的用户。
- 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仓库对Swift Package Manager安装哪个版本的Amplify的规则。选择第一个规则版本,因为它会使用从
main
分支能检测到的最新兼容依赖版本,然后点击下一步。 -
选择您想要添加到项目中的库。始终选择Amplify库。要安装的“插件”取决于您使用哪些类别。
-
API: AWSAPIPlugin
-
分析: AWSPinpointAnalyticsPlugin
-
身份验证: AWSCognitoAuthPlugin
-
数据存储: AWSDataStorePlugin
-
存储: AWSS3StoragePlugin
注意:由于不同的最低iOS版本要求,AWSPredictionsPlugin目前不支持通过Swift Package Manager。将最终添加对此类支持。
选择所有合适的选项,然后点击完成。
您可以通过打开项目的Swift Packages选项卡来随时返回并修改项目中包含的SPM包:在Xcode导航器中点击Project文件,然后点击您的项目图标,然后选择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
根据您的系统设置,您可能需要使用
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
您可以手动通过克隆此Repo,并创建一个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之前,请阅读我们的贡献指南。谢谢!