Интеграция AWS S3 в Swift 2.2 Xcode 7.3 выдает ошибку

#ios #swift #amazon-web-services #amazon-s3

#iOS #swift #amazon-веб-сервисы #amazon-s3

Вопрос:

Я интегрировал AWS S3 ADK версии 2.4.9 в приложение для iOS. Я вижу приведенную ниже странную проблему в моем xcode.

Не удалось прочитать конфигурации поставщика учетных данных Info.plist . Пожалуйста, проверьте Info.plist , предоставляете ли вы значения конфигурации SDK Info.plist .

Как я могу это решить?

Комментарии:

1. Ошибка кажется довольно очевидной. Вы проверили свой Info.plist? Если это так, и вы все еще не можете понять это, вам нужно включить это в свой вопрос, иначе мы не сможем помочь.

2. При интеграции с AWS s3 sdk они не упоминали ничего подобного! Не уверен, что включить в info.plist .. есть идеи? Ссылаясь на docs.aws.amazon.com/mobile/sdkforios/developerguide/setup.html для интеграции, а также использую cocoapods для интеграции…

Ответ №1:

Для использования клиента вам необходимо установить конфигурацию SDK по умолчанию с помощью кода или файла info.plist вашего приложения defaultS3 .

Чтобы сделать это через info.plist:

Вам необходимо заменить идентификатор пула и регионы для идентификаторов cognito identity id и S3 ниже.

 <key>AWS</key>
    <dict>
        <key>CredentialsProvider</key>
        <dict>
            <key>CognitoIdentity</key>
            <dict>
                <key>Default</key>
                <dict>
                    <key>PoolId</key>
                    <string>YOUR_POOL_ID_HERE</string>
                    <key>Region</key>
                    <string>USEast1</string>
                </dict>
            </dict>
        </dict>
        <key>S3</key>
        <dict>
            <key>Default</key>
            <dict>
                <key>Region</key>
                <string>USEast1</string>
            </dict>
        </dict>
    </dict>
  

Чтобы сделать это с помощью кода

 AWSCognitoCredentialsProvider *credentialsProvider = [[AWSCognitoCredentialsProvider alloc] initWithRegionType:CognitoRegionType
                                                                                                identityPoolId:CognitoIdentityPoolId];
AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:DefaultServiceRegionType
                                                                     credentialsProvider:credentialsProvider];
AWSServiceManager.defaultServiceManager.defaultServiceConfiguration = configuration;
  

Спасибо,
Рохан

Комментарии:

1. Большая помощь. В основном каждый отдельный учебник или пример использует S3TransferManager вместо S3 в своем info.plist.