iOS Swift:将 AWS SDK 与 xCode6 结合使用 - 错误消息

Posted

技术标签:

【中文标题】iOS Swift:将 AWS SDK 与 xCode6 结合使用 - 错误消息【英文标题】:iOS Swift: Using AWS SDK with xCode6 - error message 【发布时间】:2015-05-29 06:00:31 【问题描述】:

使用 CocoaPods 已将 AWS 库添加到我的项目中。

创建了一个 BridgingHeader.h 文件:

#import "AWSCore.h"
#import "AWSCognito.h"
#import "AWSS3.h"

在应用程序构建设置> Objective-C 桥接头包含这个 BridgingHeader.h 文件。

当我使用凭据初始化代码时,现在在我的代码中:

let credentialsProvider = AWSCognitoCredentialsProvider.credentialsWithRegionType(
    AWSRegionType.USEast1,
    accountId: "999999999999",
    identityPoolId: "us-east-1:ac328da6-63f3-4748-9b8f-999999999",
    unauthRoleArn: "arn:aws:iam::69644888888:role/Cognito_s3tutorialUnauth_DefaultRole",
    authRoleArn: "arn:aws:iam::69647777777:role/Cognito_s3tutorialAuth_DefaultRole")

在编译时我看到的错误是:

credentialsWithRegionType 不可用,请使用 initWithRegionType... 而是

我也无法使用 initWithRegionType...因为错误是:AWSCognitoCredentialsProvider 没有名为 initWithRegionType 的成员

令人惊讶的是,我什至可以在 IDE 的右侧窗格中看到它的签名和帮助:AWSCognitoCredentialsProvider.credentialsWithRegionType

我错过了什么?这可能是版本混淆吗?

【问题讨论】:

我正在使用 Cocoa Pods 安装 fremework 并得到类似的错误。 pod 'AWSS3', '~> 2.2.0' 【参考方案1】:

您可能必须将此函数用作Swift 的构造函数:

let CognitoRegionType = AWSRegionType.Unknown  // e.g. AWSRegionType.USEast1
let DefaultServiceRegionType = AWSRegionType.Unknown // e.g. AWSRegionType.USEast1
let CognitoIdentityPoolId = "YourCognitoIdentityPoolId"
let S3BucketName = "YourS3BucketName"
let credentialsProvider = AWSCognitoCredentialsProvider(regionType: CognitoRegionType, identityPoolId: CognitoIdentityPoolId)
let configuration = AWSServiceConfiguration(region: DefaultServiceRegionType, credentialsProvider: credentialsProvider)
AWSServiceManager.defaultServiceManager().defaultServiceConfiguration = configuration

【讨论】:

以上是关于iOS Swift:将 AWS SDK 与 xCode6 结合使用 - 错误消息的主要内容,如果未能解决你的问题,请参考以下文章

AWS iOS SDK Cognito 开发人员身份验证 (Swift)

在iOS Swift中不使用AWS SDK在Amazon S3存储桶中上传的背景图像(背景模式)

将 Paypal ios sdk 与 swift 5 集成时出错

IOS Swift Amazon S3 传输实用程序 - nil 与预期的参数类型 nsurl 不兼容

亚马逊网络服务 SDK iOS

AWS S3 IOS中的混乱sdk?