Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift transferUtility.uploadData在iOS模拟器上运行良好,但在实际设备iOS13上测试时不工作_Swift_Amazon S3_Awss3transferutility - Fatal编程技术网

Swift transferUtility.uploadData在iOS模拟器上运行良好,但在实际设备iOS13上测试时不工作

Swift transferUtility.uploadData在iOS模拟器上运行良好,但在实际设备iOS13上测试时不工作,swift,amazon-s3,awss3transferutility,Swift,Amazon S3,Awss3transferutility,我已经按照中的一些教程将图像上传到我的s3存储桶中 本教程适用于iOS模拟器,但不适用于我的测试版iphone7。我已经编写了一些调试代码来找出问题的原因,但是没有一个代码出来 关于这个问题我已经搜索了一段时间,但没有一个提到我的问题。我的代码在实际设备上工作,而不是在模拟器上工作,是否缺少一些东西 AppDelegate.swift let AWS_Pool_ID = Bundle.main.object(forInfoDictionaryKey: "AWS_Pool_ID") as! Str

我已经按照中的一些教程将图像上传到我的s3存储桶中

本教程适用于iOS模拟器,但不适用于我的测试版iphone7。我已经编写了一些调试代码来找出问题的原因,但是没有一个代码出来

关于这个问题我已经搜索了一段时间,但没有一个提到我的问题。我的代码在实际设备上工作,而不是在模拟器上工作,是否缺少一些东西

AppDelegate.swift

let AWS_Pool_ID = Bundle.main.object(forInfoDictionaryKey: "AWS_Pool_ID") as! String
let credentialsProvider = AWSCognitoCredentialsProvider(regionType:.APNortheast2, identityPoolId: AWS_Pool_ID)
let configuration = AWSServiceConfiguration(region:.APNortheast2, credentialsProvider:credentialsProvider)
AWSServiceManager.default().defaultServiceConfiguration = configuration
UploadViewController.swift

let transferUtility = AWSS3TransferUtility.default()
let imageData = self.image.jpegData(compressionQuality: 1.0)
let imageName = UUID().uuidString+".jpg"
let bucketName = "hello-world-bucket-name"
let progressBlock:AWSS3TransferUtilityProgressBlock = { task,progess in
    DispatchQueue.main.async {
        progressView.progress = Float(progess.fractionCompleted)
    }
}

let expression = AWSS3TransferUtilityUploadExpression()
expression.progressBlock = progressBlock
transferUtility.uploadData(imageData!, bucket: bucketName, key: imageName, contentType: "image/jpeg", expression: expression, completionHandler: { task,error in
    print("transferutility works")
    if let error = error {
        print(error)
    } else {
        let imageURL = "https://\(bucketName).s3.ap-northeast-2.amazonaws.com/\(imageName)"
        self.submitData.uploads = [imageURL]
        print(URL(string:imageURL)!)
    }
})

这听起来像是权限问题

如果您在设备上登录aws帐户,则表示您正在开发应用程序,您在后台以“管理员”身份登录。 如果您从未连接到iMac/MacBook的真实设备启动应用程序,则不再以管理员身份登录aws控制台。 默认情况下,该权限拒绝除admin(您)之外的任何人访问您的bucket


出于测试目的,请将bucket权限设置为public,然后重试。

我已选中bucket策略,并且已将其设置为public。我已经检查了错误日志,它指出,
已完成错误[-1001]error Domain=nsurerrordomain code=-1001“请求超时。”
nserrorfailingurstringkey=谢谢克里斯!这是一个政策问题。解决了的!