In iOS 17.0.3, photos taken using Apple's native camera app can't be loaded immediately (within approximately 30 seconds) through PHPickerViewController. Specifically, the method itemProvider.canLoadObject(ofClass: UIImage.self) returns false. However, after about 30 seconds post-capture, the photos load without any hindrance.
Initially, I considered an issue with my own photo-loading code, but the same problem persists even with Apple's official PHPickerDemo sample code.
[PHPickerDemo - SelectingPhotosAndVideosInIOS.zip]
https://developer.apple.com/documentation/photokit/selecting_photos_and_videos_in_ios
ViewController.swift Line 89 (PHPickerDemo)
func displayNext() {
guard let assetIdentifier = selectedAssetIdentifierIterator?.next() else { return }
currentAssetIdentifier = assetIdentifier
let progress: Progress?
let itemProvider = selection[assetIdentifier]!.itemProvider
if itemProvider.canLoadObject(ofClass: PHLivePhoto.self) {
progress = itemProvider.loadObject(ofClass: PHLivePhoto.self) { [weak self] livePhoto, error in
DispatchQueue.main.async {
self?.handleCompletion(assetIdentifier: assetIdentifier, object: livePhoto, error: error)
}
}
}
else if itemProvider.canLoadObject(ofClass: UIImage.self) { <========================================= FALSE
progress = itemProvider.loadObject(ofClass: UIImage.self) { [weak self] image, error in
DispatchQueue.main.async {
self?.handleCompletion(assetIdentifier: assetIdentifier, object: image, error: error)
}
}
}
...omitted...
}
Environment & Settings:
iPhone 12
iOS 17.0.3
Settings -> Camera -> Formats -> High Efficiency (Enabled)
Reproduction Steps:
Take a photo in normal photo mode with Apple's native camera app (not in portrait mode).
Launch the PHPickerDemo app.
Tap the photo icon located in the top right.
Observe that the photo fails to load.
Workarounds:
Wait for over 30 seconds prior to selecting the photo.
Opt to shoot in portrait mode rather than the standard photo mode.
Switch on Settings -> Camera -> Formats -> Most Compatible.
I am developing a photo editing app, and I have received many emails from users stating that they cannot select photos since updating to iOS 17.
Thanks.