Release: AWS SDK for iOS 1.4.0

Release Notes>iOS>Release: AWS SDK for iOS 1.4.0
This release adds support for the Binary Attributes feature in Amazon DynamoDB and the Cost Allocation Tagging in Amazon S3. It also introduces an SDK wide option to return NSError objects instead of throwing exceptions.


Submitted By: Yosuke@AWS
Latest Version: 1.4.0
Created On: January 1, 1970 12:00 AM GMT
Last Updated: August 23, 2012 10:54 PM GMT


Download the AWS SDK for iOS 1.4.0

New Features

Change Description
Amazon DynamoDB: Binary Attributes

In addition to strings and numbers, you can now store binary data in Amazon DynamoDB. Binary attributes are automatically base 64 encoded over the wire by the AWS SDKs, but are stored in Amazon DynamoDB as binary data (reducing storage costs).

Amazon S3: Cost Allocation Tagging

Cost allocation enables you to organize and track your AWS costs. When you apply tags to your AWS resources (such as Amazon S3 buckets), AWS generates a Cost Allocation Report as a comma-separated value (CSV file) with your usage and costs aggregated by your tags. You can apply tags that represent your business dimensions (such as cost centers, application names, or owners) to organize your costs across multiple services.

This release of the SDK enables you to tag Amazon S3 buckets.

For more information about using the new Cost Allocation Tagging feature, see Cost Allocation and Tagging section in the AWS Account Billing documentation.

New Option to Return NSError Objects

Previous versions of the AWS SDK for iOS threw either an AmazonServerException or an AmazonClientException whenever they encountered an error. This forced developers to surround any AWS related code with @try/@catch blocks. This was not intuitive for many Objective-C developers and is not the recommended way to handle error conditions in the Cocoa Framework.

Beginning with the AWS SDK for iOS v.1.4.0, we are introducing a new option to return NSError objects instead of throwing exceptions. You can select this option by importing AmazonErrorHandler.h and calling [AmazonErrorHandler shouldNotThrowExceptions]. We recommend that you make this call in the application:didFinishLaunchingWithOptions: application delegate method.

When this option is selected, the error property in the AmazonResponse object contains an NSError object for any failed calls to AWS. Always confirm that this property is nil before continuing. For asynchronous calls with AmazonServiceRequestDelegate, the request:didFailWithError: delegate method is called instead of request:didFailWithServiceException:. The request:didFailWithServiceException: delegate method is never called when the shouldNotThrowExceptions option is selected.

By default, the AWS SDK continues to throw exceptions; however, in the future, we plan to change the default to return errors. By calling [AmazonErrorHandler shouldThrowExceptions] instead of [AmazonErrorHandler shouldNotThrowExceptions] mentioned above, you can ensure that your current code continues to work after the default behavior of the SDK changes.

We have updated all of our sample apps to use this option.

Supported API Versions

This release of the SDK supports the following API versions:

Service API Version
Amazon CloudWatch 2010-08-01
Amazon DynamoDB 2011-12-05
Amazon Elastic Compute Cloud (EC2) 2012-06-15
Amazon Simple Email Service (SES) 2010-12-01
Amazon Simple Notification Service (SNS) 2010-03-31
Amazon Simple Queue Service 2011-10-01
Amazon Simple Storage Service (S3) 2006-03-01
Amazon SimpleDB 2009-04-15
Auto Scaling 2011-01-01
AWS Security Token Service 2011-06-15
Elastic Load Balancing 2011-11-15

Known Issues

Issue Description
AWS Core Data Persistence Framework with iOS 5.0

While the rest of the AWS SDK for iOS still support iOS versions 4.1 and later, the AWS Core Data Persistence Framework only supports iOS versions 5.0 and later.

Amazon S3 over 3G

Uploading large objects to Amazon S3 using 3G can fail frequently. Upgrading your iOS device to v4.3 helps reduce the failure rate. We are actively working with Apple to find a resolution to this problem.

Users may also refer to the following Article as a work around to uploading larger files over 3G.

Amazon S3 client does not work around known Amazon S3 issues. The Amazon S3 library does not currently work around two known issues with the Amazon S3 API:
  • Bucket names can include '+' symbols in the name, but the '+' symbol does not get replaced in URL encodings and can result in spaces in bucket names instead.
  • It is possible to create an object with a key which includes characters that are not valid XML characters, which will cause an error in the response to the AmazonS3Client listObjects method. Refer to for guidelines on Amazon S3 keys.
©2017, Amazon Web Services, Inc. or its affiliates. All rights reserved.