kCGImagePropertyExifSubsecTimeOriginal has incorrect availability; crashes on iOS 9

Originator:AriXmail
Number:rdar://30025191 Date Originated:13-Jan-2017 07:39 PM
Status:Open Resolved:
Product:iOS + SDK Product Version:iOS 9
Classification: Reproducible:Always
 
Area:
Image I/O

Summary:
CGImageProperties.h states that the symbol kCGImagePropertyExifSubsecTimeOriginal has been available since iOS 4. However, in iOS 9.3 (and likely earlier), the symbol kCGImagePropertyExifSubsecTimeOriginal is a private symbol and cannot be linked at runtime, and apps which reference this symbol crash.

Steps to Reproduce:
1. Build an app that uses the symbol kCGImagePropertyExifSubsecTimeOriginal
2. Run it on iOS 9

Expected Results:
This should work properly.

Actual Results:
The app crashes on launch with the following text:
dyld: Symbol not found: _kCGImagePropertyExifSubsecTimeOriginal
  Referenced from: /private/var/containers/Bundle/Application/FCCC4DE8-8B78-4BAF-98F1-1584CD87D26C/Workflow.app/Frameworks/ContentKit.framework/ContentKit
  Expected in: /System/Library/Frameworks/ImageIO.framework/ImageIO
 in /private/var/containers/Bundle/Application/FCCC4DE8-8B78-4BAF-98F1-1584CD87D26C/Workflow.app/Frameworks/ContentKit.framework/ContentKit

In order to prevent this from occurring, kCGImagePropertyExifSubsecTimeOriginal should be marked as available in iOS 10.0 and later. On older systems developers must use the older, typo'd symbol, kCGImagePropertyExifSubsecTimeOrginal.

Version:
iOS 9

Notes:


Configuration:
iPhone 6s

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!