对我来说,这似乎是 ImageIO 框架中的一个错误(或文档错误)。
根据文档,kCGImagePropertyExifLensMake
在 iOS 4.3 及更高版本中可用。
根据
IMAGEIO_EXTERN const CFStringRef kCGImagePropertyExifLensMake IMAGEIO_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_5_0);
在CGImageProperties.h
,它在 iOS 5.0 及更高版本中可用。
但是,如果您检查 ImageIO 框架的符号
$ nm /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk/System/Library/Frameworks/ImageIO.framework/ImageIO | grep kCGImagePropertyExifLensMake
0026a59c s _kCGImagePropertyExifLensMake
小写的“s”表示该符号是本地的,而不是导出的。
作为一种解决方法,您可以添加
const CFStringRef kCGImagePropertyExifLensMake = CFSTR("LensMake");
在你的应用程序的某个地方,然后它可以在 iOS 5 和 6 上运行。