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`
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, мне пришлось построить четыре фреймворка - это было довольно безболезненно