注册AWSS3配置会造成5000多次内存泄漏

Dra*_*Max 6 memory-leaks amazon-s3 instruments amazon-web-services swift

我一直试图弄清楚过去两天为什么这种简单的AWSS3配置设置可能会造成5000多次内存泄漏.这是我在AppDelegate中运行的代码:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // SetUp AWS Config
    let myIdentityPoolId = Constants.AWS_IDENTITY_POOL_ID
    let credentialsProvider: AWSCognitoCredentialsProvider = AWSCognitoCredentialsProvider(regionType: .USWest2,
                                                                                           identityPoolId: myIdentityPoolId)
    if let configuration = AWSServiceConfiguration(region: .USWest2, credentialsProvider:credentialsProvider) {
        AWSS3.register(with: configuration, forKey: "defaultKey")
    }

    return AWSMobileClient.sharedInstance().interceptApplication(application,
                                                                 didFinishLaunchingWithOptions: launchOptions)
}
Run Code Online (Sandbox Code Playgroud)

使用Instruments,我已经测试了删除我共享的所有代码(返回AWSMobileClient.sharedInstance().interceptApplication除外)并发现我没有内存泄漏,但是一旦我将其添加回去,我就会遇到所有泄漏... 是什么赋予了?

如果它有帮助,我想列出我的AWS桶的对象,它使用以下代码:

 let listRequest: AWSS3ListObjectsRequest = AWSS3ListObjectsRequest()
    let s3 = AWSS3.s3(forKey: "defaultKey")

    listRequest.bucket = Constants.AWS_BUCKET
    listRequest.prefix = Constants.SPECIAL_PREFIX

    s3.listObjects(listRequest).continueWith { (task) -> AnyObject? in
}
Run Code Online (Sandbox Code Playgroud)

我犯了明显的错误吗?

在此输入图像描述

Kam*_*ran 1

如果您的应用程序可以处理这些泄漏,那么您可以在此处提交错误并等待修复。

正如您在此处此处看到的那样,他们似乎很长时间以来都在继承这些泄漏。这个问题S3 分段上传内存泄漏仍然存在,并被标记为错误,因此您需要等待这些问题得到修复。