iOS 8 breaks forward compatibility for accessing full resolution photo/video data

Originator:stephenpoletto
Number:rdar://18072110 Date Originated:19-Aug-2014 10:23 PM
Status:Closed Resolved:Duplicate of 17729308 (Closed)
Product:iOS SDK Product Version:
Classification: Reproducible:
 
Summary:
Under iOS 7, -[ALAssetRepresentation getBytes:] provides an API for accessing the full-resolution, unedited photo data for photos/videos within the user's camera roll.

Under iOS 8, this method no longer guarantees data availability, which causes failures and breaks the expectations of historical code written against the iOS 7 SDK. Worse yet, since no facilities exist under the iOS 7 SDK for forcing a download of full-resolution photo/video content, developers are not able to patch distributed binaries to be forward compatible with the release of iOS 8.

Specifically, we have identified the following behavior on iOS 8 beta 5:
1) -[ALAssetRepresentation getBytes:] no longer returns the original unmodified bytes; it returns filtered/edited content (if the user has applied filters/crops/etc). This prevents third party applications compiled against iOS 7 from accessing the original unflattened photo data.
2) For photos hosted remotely using iCloud Photo Library, -[ALAssetRepresentation getBytes:] might return full-resolution content, or it might return thumbnail data, or it might return nil (depending on when the photo was added to the gallery, network conditions, usage, etc.). Again, there is no way for third parties to write code against the iOS 7 SDK that protects against this change by using an alternative API to fetch original image data.

Steps to Reproduce:
1. Enable iCloud Photo Library on device A with a large library of photos/videos.
2. When this photo/video content is first synced to device B, call -[ALAssetRepresentation getBytes:].

Expected Results:
The call to getBytes: should block until original photo content can be downloaded, then provide the same semantics as in iOS 7.

Actual Results:
The call to getBytes: may return thumbnail data, or it may return nil.

Version:
8.0 (12A4345d)

Notes:


Configuration:
iPhone 5

Comments


Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!