0

iOS 11.4.1 デバイスから AWS S3 バケット (AWS-IOS-SDK-2.6.24 を使用) にファイルをアップロードしているときに問題に直面しています。iOS 9.xx でも同じコードで問題なく動作します

ほとんどの場合、タイムアウト エラーが発生します。

    Request headers:
    {
        "Content-Type" = "application/x-amz-json-1.1";
        Host = "cognito-identity.ap-south-1.amazonaws.com";
        "User-Agent" = "aws-sdk-iOS/2.6.24 iOS/11.4 en_US";
        "X-Amz-Date" = 20180718T080347Z;
        "X-Amz-Target" = "AWSCognitoIdentityService.GetCredentialsForIdentity";
    }
    2018-07-18 12:03:47:866 AWR_Vehicle_Recieving[672:656549] Request body:
    {"IdentityId":"ap-south-1:999df51b-5cef-49aa-a566-369a4af76c37"}
    2018-07-18 12:03:51.026657+0400 AWR_Vehicle_Recieving[672:656552] [] tcp_timers tcp[2] retransmit SYN 3
    2018-07-18 12:03:51.288385+0400 AWR_Vehicle_Recieving[672:656552] [] tcp_timers tcp[3] retransmit SYN 3
    2018-07-18 12:03:52.033153+0400 AWR_Vehicle_Recieving[672:656551] [] tcp_timers tcp[2] retransmit SYN 4
    2018-07-18 12:03:52.290329+0400 AWR_Vehicle_Recieving[672:656551] [] tcp_timers tcp[3] retransmit SYN 4
    2018-07-18 12:03:53.034734+0400 AWR_Vehicle_Recieving[672:656552] [] tcp_timers tcp[2] retransmit SYN 5
    2018-07-18 12:03:53.291663+0400 AWR_Vehicle_Recieving[672:656552] [] tcp_timers tcp[3] retransmit SYN 5
    2018-07-18 12:03:55.041617+0400 AWR_Vehicle_Recieving[672:656591] [] tcp_timers tcp[2] retransmit SYN 6
    2018-07-18 12:03:55.298220+0400 AWR_Vehicle_Recieving[672:656591] [] tcp_timers tcp[3] retransmit SYN 6
    2018-07-18 12:03:59.048019+0400 AWR_Vehicle_Recieving[672:656549] [] tcp_timers tcp[2] retransmit SYN 7
    2018-07-18 12:03:59.304982+0400 AWR_Vehicle_Recieving[672:656549] [] tcp_timers tcp[3] retransmit SYN 7
    2018-07-18 12:04:00.003149+0400 AWR_Vehicle_Recieving[672:656478] Status bar could not find cached time string image. Rendering in-process.
    2018-07-18 12:04:07.054542+0400 AWR_Vehicle_Recieving[672:656552] [] tcp_timers tcp[2] retransmit SYN 8
    2018-07-18 12:04:07.314792+0400 AWR_Vehicle_Recieving[672:656552] [] tcp_timers tcp[3] retransmit SYN 8
    2018-07-18 12:04:23.061853+0400 AWR_Vehicle_Recieving[672:656552] [] tcp_timers tcp[2] retransmit SYN 9
    2018-07-18 12:04:23.327710+0400 AWR_Vehicle_Recieving[672:656552] [] tcp_timers tcp[3] retransmit SYN 9

2018-07-18 12:04:48.807451+0400 AWR_Vehicle_Recieving[672:656955] Task <4E4BA101-41B3-4A33-905F-9BC082F5B45B>.<1> finished with error - code: -1001
2018-07-18 12:04:48.825138+0400 AWR_Vehicle_Recieving[672:656955] Task <4E4BA101-41B3-4A33-905F-9BC082F5B45B>.<1> HTTP load failed (error code: -999 [1:89])
2018-07-18 12:04:48:826 AWR_Vehicle_Recieving[672:656880] Session task failed with error: Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={NSUnderlyingError=0x1c084dda0 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, NSErrorFailingURLStringKey=https://cognito-identity.ap-south-1.amazonaws.com/, NSErrorFailingURLKey=https://cognito-identity.ap-south-1.amazonaws.com/, _kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-2102, NSLocalizedDescription=The request timed out.}

AWS のドキュメントに従っています。必要なすべての詳細は、AWS のドキュメントからのみ収集しました。

info.plistを構成し、 awrconfiguration.jsonをプロジェクトに追加しました。

AppDelegate クラスの資格情報について言及しました。

AWSCognitoCredentialsProvider *credentialsProvider = [[AWSCognitoCredentialsProvider alloc]
                                                          initWithRegionType:AWSRegionAPSouth1
                                                          identityPoolId:@"ap-south-1:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx”];


    AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionAPSouth1
                                                                         credentialsProvider:credentialsProvider];
    [AWSServiceManager defaultServiceManager].defaultServiceConfiguration = configuration;

古いバージョンの iOS ではコードが正常に動作するため、ここで何が間違っているのか理解できません。

私の他の質問は次のとおりです。 AppDelegate クラスで資格情報を提供する必要がある場合、info.plist を構成する必要があるのはなぜですか、または awsconfiguration.json ファイルをプロジェクトにコピーする必要があるのはなぜですか。AppDelegate.m ファイルで資格情報を定義せずに、info.plist から資格情報を読み取るか、プログラムで awsconfiguration ファイルを読み取る方法は何ですか?

4

1 に答える 1