桥接 AWS 开发工具包上的 XCode 错误

Posted

技术标签:

【中文标题】桥接 AWS 开发工具包上的 XCode 错误【英文标题】:XCode Errors on bridged AWS SDK 【发布时间】:2016-01-17 00:22:42 【问题描述】:

我对 ios 还是很陌生,对 AWS 也是 100% 的新手。我正在构建一个需要上传文件的应用程序。我通过 CocoaPods 下载了 Amazon SDK,并使用桥接头在 Swift 中使用它。

这是我的标题:

#ifndef ObjC_Bridging_Header_h
#define ObjC_Bridging_Header_h

#import "AWSCore.h"
#import "AWSS3.h"
#import "AWSDynamoDB.h"
#import "AWSSQS.h"
#import "AWSSNS.h"
#import "AWSCognito.h"

#endif /* ObjC_Bridging_Header_h */

我在构建设置中指向该文件以告诉编译器它在哪里。

然后我尝试使用以下代码在我的 AppDelegate.swift 中配置 SDK:

var window: UIWindow?
let cognitoAccountId = "I'm not going to post this"
let cognitoIdentityPoolId = "I'm not going to post this"
let cognitoUnauthRoleArn = "I'm not going to post this"
let cognitoAuthRoleArn = "I'm not going to post this"

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool 
    let credentialsProvider = AWSCognitoCredentialsProvider.credentialsWithRegionType(
        AWSRegionType.USEast1,
        accountId: cognitoAccountId,
        identityPoolId: cognitoIdentityPoolId,
        unauthRoleArn: cognitoUnauthRoleArn,
        authRoleArn: cognitoAuthRoleArn)
    let defaultServiceConfiguration = AWSServiceConfiguration(
        region: AWSRegionType.USEast1,
        credentialsProvider: credentialsProvider)
    AWSServiceManager.defaultServiceManager().setDefaultServiceConfiguration(defaultServiceConfiguration)


    return true

(是的,我输入了所有的 ID 字符串等。我只是不想发布它们)

除了最后一行之外,一切正常: AWSServiceManager.defaultServiceManager().setDefaultServiceConfiguration(defaultServiceConfiguration)

它错误地说: "Value of type 'AWSServiceManager' has no member 'setDefaultServiceConfiguration'"

为什么除了这条线外一切正常?怎么了?

【问题讨论】:

【参考方案1】:

AWSServiceManager 没有 defaultServiceConfiguration 的设置器。

你必须使用

AWSServiceManager.defaultServiceManager().defaultServiceConfiguration = defaultServiceConfiguration

这行得通。

【讨论】:

以上是关于桥接 AWS 开发工具包上的 XCode 错误的主要内容,如果未能解决你的问题,请参考以下文章

AWS 中的错误重试和指数退避

AWS Java 开发工具包构建错误

Mac 上的 Xcode 工具支持 c++11?

AWS — AWS 上的 DevOps

如何使用适用于 DynamoDb 的 AWS Rust 开发工具包编写惯用的 Rust 错误处理?

如何在节点 AWS 开发工具包代码中使用 AWS ECS 任务角色