注册AWSS3配置会创建5000多个内存泄漏

时间:2018-10-31 00:20:04

标签: swift amazon-web-services amazon-s3 memory-leaks instruments

在过去的两天里,我一直试图弄清楚为什么这种简单的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)
}

使用仪器,我已经测试过删除所有共享的代码(返回的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
}

我犯了一个明显的错误吗?

enter image description here

1 个答案:

答案 0 :(得分:1)

如果您的应用程序可以处理这些泄漏,则只需提交错误here,然后等待修复。

您可以看到herehere似乎很长一段时间以来,它们正在继承这些泄漏。这个问题S3 multipart upload memory leak仍未解决,并标记为错误,因此您需要等待这些问题得到解决。