0

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

在利用 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 Settings 选项卡没有显示 Objective-C Bridging Header 类别。(是的,我想?直到建成?)

有人可以帮我吗?

4

1 回答 1

0

AWS Amplify 的 iOS SDK Github 存储库的优秀开发人员回答了我的问题。因此,他们正在更新REST API 指南以反映正确的步骤顺序。

总结一下:您必须将 Objective-C 桥接头路径添加到项目的构建设置中。对我来说,在哪里可以找到此设置并不明显,但他们发布了一个屏幕截图,展示了如何找到它。在我的情况下,在不选择那些显式设置的情况下进行过滤并没有出现。

于 2019-02-07T18:26:52.250 回答