Я думаю, проблема в том, что вы устанавливаете sourceType в UIImagePickerControllerSourceTypeSavedPhotosAlbum независимо от того, какой источник поддерживается.
т.е. Следующая строка должна быть условной;
[picker setSourceType:UIImagePickerControllerSourceTypeSavedPhotosAlbum];
Вместо этого поместите одно или два условия, и, если существует UIImagePickerControllerSourceTypeSavedPhotosAlbum
, установите для этого параметра только sourceType. Иначе, если UIImagePickerControllerSourceTypeCamera
существует, установите для sourceType этот тип.
Кроме того, я думаю, что [picker setShowsCameraControls: YES]; должно быть сделано только для sourceType UIImagePickerControllerSourceTypeCamera.
Ошибка, которую вы получаете, предполагает, что UIImagePickerControllerSourceTypeSavedPhotosAlbum
не поддерживается, поэтому попробуйте решить эту проблему таким образом.