Aws sdk для разработки приложений Mac OS X

Мне нужно разработать приложение для MAC OS X, которое будет загружать выбранные файлы в веб-службы amazon. Но для этого мне нужен aws sdk для mac. Я не нашел ни одного в Интернете. Возможно ли изменить AWS SDK для iOS, чтобы его можно было использовать для Mac?

Кроме того, документация AWS SDK не объясняет, как загружать файлы на S3. Кто-нибудь есть пример того, как это сделать?

Спасибо

Ответ 1

Судя по обсуждение этого вопроса в Форумы разработчиков AWS пока не существует официального AWS SDK для MacOS X, но версия iOS близка к пригодной для использования. Один из авторов этой темы опубликовал измененную версию, которая предположительно работает на MacOS X, по крайней мере для некоторых из этих сервисов. У меня нет личного опыта с ним, но, похоже, стоит посмотреть.

Ответ 2

Я создал вилку SDK iOS AWS, которая может быть создана и использована для разработки Mac OS X. Проверьте это: https://github.com/amberdixon/aws-sdk-ios. В readme я включил инструкции о том, как создать версию OS X iOS SDK для Mac OS X. В реестре Tomandersen используется гораздо более старая версия IOS SDK, версия, которую я создал, немного более актуальна.

Ответ 3

Следуя предыдущему ответу, я разблокировал и модифицировал v2.2 AWS SDK для iOS, поэтому теперь он собирается для Mac OS X (тестируется в Yosemite 10.10. 3): https://github.com/johnabender/aws-sdk-ios Также проверьте ветвь tvos!

Они предоставляют инструмент командной строки для упаковки компонентов SDK в качестве объектов .framework. Запустите Scripts/SdkPackage.sh AWSS3, и он построит структуру S3 и любые зависимости. Запустите Scripts/Package.sh, чтобы создать все фреймворки. Встроенные фреймворки завершаются в корневом каталоге /build вашего каталога AWS SDK, если вы их создаете.

Но yikes, их документация ужасна. Например, если вы хотите использовать ключ доступа вместо идентификатора Cognito, вам нужно пройти через код и выяснить, как (по крайней мере, это возможно!). Хотите перечислить содержимое ведра S3? Удачи. Большинство требуемых классов даже не перечислены в documentation. И вам нужно включить libz.dylib в свой проект, чтобы он был создан с помощью S3 SDK - они также не говорят об этом.

В любом случае, здесь приведен код, чтобы помочь кому-то начать:

// This is helpful, also basically undocumented.
AWSLogger.defaultLogger().logLevel = .Verbose

let credentials = AWSStaticCredentialsProvider(accessKey: accessKeyId, secretKey: secretAccessKey)
let config = AWSServiceConfiguration(region: AWSRegionType.USWest2, credentialsProvider: credentials)

let listRequest = AWSS3ListObjectsRequest()
listRequest.bucket = "mybucket"
listRequest.prefix = "folder/"

// The key name allows you to set up multiple, global S3 configurations
// -- in case you'd ever want to do that, in violation of OO programming principles.
// But there no way to make S3 requests using only a local config.
AWSS3.registerS3WithConfiguration(config, forKey: "s3")

AWSS3.S3ForKey("s3").listObjects(listRequest).continueWithBlock { (task: AWSTask!) -> AnyObject! in
    if task.error != nil {
        NSLog("error %@", task.error)
    }
    if task.result != nil {
        NSLog("finished %@", task.result!.description)
    }
    return nil
}

Ответ 4

Как сказал Калеб: Официального AWS SDK для OS X нет.

Самый простой способ выполнить загрузку файла S3 - это ASIHTTPRequest. Это оболочка для CFNetwork, которая проста в использовании. Недостатком является отсутствие поддержки ARC, поэтому вам придется самостоятельно управлять памятью...

Ответ 5

Мне понадобился AWS SDK для Mac, чтобы поддерживать предварительную настройку db для моего приложения iOS и был поражен тем, что его не было (учитывая, насколько тривиальным было бы производить, как это было бы так похоже на версию iOS). Я загрузил SDK github MacOS, упомянутый выше в Amber, и тот, который указан в ссылке AWS выше. Однако ни один из них не был построен, поэтому я решил самостоятельно изменить SDK iOS, чтобы понять, что это за процесс. Вот шаги, которые я прошел, чтобы получить DynamoDB, работающий в XCode 5.0.2 на MacOS 10.9:

1. Загрузите SDK iOS AWS 1.7.0, дублируйте папку и переименуйте папку в aws-MacOS-sdk-1.7.0 (небольшое количество условной компиляции и если /else в сборке script будет делать прочь с этим шагом)

2.Modify src/Scripts/Framework.sh - это инструмент построения всех инфраструктур AWS  - Замените все четыре строки xcodebuild (30-39) на:

`xcodebuild -configuration Release -project "${PROJECT}.xcodeproj" -target "${PROJECT}" -sdk macosx10.9`
  • Замените линию липо (82-87) на:

    FRAMEWORK_INPUT_MAC_FILES="build/Release/lib${PROJECT}.a" cp "$FRAMEWORK_INPUT_MAC_FILES" "$FRAMEWORK_DIR/Versions/Current/$FRAMEWORK_NAME"

3. В папке src есть проект XCode для каждого фреймворка, для каждого из них вам нужно:

  • Изменить базовый SDK проекта на последнюю версию OS X
  • Измените FTarget Framework SDKROOT на macosx10.9
  • Убедитесь, что для текущей схемы установлено значение Framework и build
  • Исправить ошибки компилятора (у меня возникла проблема с @property, пришлось заменить <UIKit/UIKit.h> на <Cocoa/Cocoa.h> здесь и там и [[UIDevice currentDevice] systemName] на [[NSProcessInfo processInfo] operatingSystemVersionString]

Чтобы получить работу DynamoDB, мне пришлось построить четыре фреймворка - это было довольно безболезненно