swift - 将 REST API 添加到 Swift 项目后 AWS Amplify iOS SDK 问题

标签 swift xcode amazon-web-services aws-amplify aws-sdk-ios

将 AWS Amplify iOS SDK REST API 添加到我的项目后遇到问题。由于 Amplify 添加的一个文件( generated-src 文件夹下的 *Client.swift)中存在 3 个致命编译器错误,我无法构建我的项目,而且我不知道如何处理它们。

在利用 Drop-in UI 进行身份验证后,我的 iOS 应用程序一切进展顺利:我能够通过我预先存在的 Amazon Cognito 用户池登录。所以,事情进展顺利。

下一步,我想要访问预先存在的 DynamoDB 表。似乎在 Amplify 上下文中执行此操作的方法是添加 REST API。

按照上面链接中的步骤,我知道 Amplify 正在通过创建自己的 Cognito 用户池来执行我不希望它执行的操作;我想是因为我指定了我想要“限制 API 访问”给经过身份验证的用户。我期望的是,我会根据我的现有 Cognito 用户池(而不是新用户池)来限制访问。

无论如何,这不是我眼前的问题。

发出 pod install --repo-update 命令后,我将新的 generated-src 文件夹添加到我的项目中。我觉得奇怪的是我的 awsconfiguration.json 没有改变。此时,按照指示,我尝试构建该项目,但由于这 3 个错误而无法构建。

/Users/xxxxx/Dev/iOS/xxxxxxxxxx/generated-src/xxxxxxxxxxxClient.swift:148:34: 
Cannot assign to property: 'endpoint' is a get-only property

/Users/xxxxx/Dev/iOS/xxxxxxxxxx/generated-src/xxxxxxxxxxxClient.swift:174:13: 
Value of type 'xxxxxxxxxxxClient' has no member 'invokeHTTPRequest'

/Users/xxxxx/Dev/iOS/xxxxxxxxxxx/generated-src/xxxxxxxxxxxClient.swift:195:13: 
Value of type 'xxxxxxxxxxxClient' has no member 'invokeHTTPRequest'

我无法前进到下一步(认为这可能是这些错误的原因),因为我的项目的“build设置”选项卡没有显示 Objective-C 桥接 header 类别。 (是的,我想?直到建成?)

有人可以帮我吗?

最佳答案

AWS Amplify 的 iOS SDK Github 存储库中的优秀开发人员 answered my question 。因此,他们正在更新 REST API guide以反射(reflect)正确的步骤顺序。

总结一下:您必须将 Objective-C 桥接 header 路径添加到项目的“build设置”中。我不清楚在哪里可以找到此设置,但他们发布了一张屏幕截图显示如何找到它。在我的情况下,在不选择这些显式设置的情况下进行过滤并没有出现这种情况。

关于swift - 将 REST API 添加到 Swift 项目后 AWS Amplify iOS SDK 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54566352/

相关文章:

amazon-web-services - 在 EventBridge 的 Fargate 容器中使用命令

swift - ios - Swift 4 : How to remove UIImageViews when UIImageView. 动画图像完成了吗?

Swift 中的 iOS 共享扩展抓取 URL

xcode - 如何记录 CGVector?

ios - 如何去除 iPad 模拟器中的灰色底栏

ios - 在我的标签栏后面放置一个 View

amazon-web-services - AWS Cognito 无法在 CognitoIdentityCredentials 上设置凭证

java - 如何从 AWS 开发工具包对 EC2 实例进行排序

swift - 将框架构建为 "Generic iOS Device"导致在使用框架的项目中使用未声明的类型

arrays - Swift - 查找结构数组中的特定差异