Создан проект в Xcode 10.1 с альбомной ориентацией устройства только влево и вправо.
Добавлен следующий ключ в Plist
Конфиденциальность - описание использования камеры: «Используется для съемки»
import UIKit
class UploadViewController: UIViewController,UIImagePickerControllerDelegate,UINavigationControllerDelegate
{
//MARK:- ViewDidLoad
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func cameraButtonAction(_ sender: UIButton)
{
if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.camera){
let imagePicker = UIImagePickerController()
imagePicker.sourceType = .camera
imagePicker.modalPresentationStyle = .overCurrentContext
imagePicker.delegate = self
self.present(imagePicker, animated: true, completion: nil)
}else{
let alert = UIAlertController(title: "Warning", message: "You don't have camera", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
self.present(alert, animated: true, completion: nil)
}
}
}
Над кодом работает нормально на следующих устройствах
iPhone 8 (iOS 12)
iPhone 7 (iOS 11.4.1)
iPad mini (iOS 11)
Но когда я запускаю это в iPhoneX с iOS 12.1, то получаю следующую ошибку.
Terminating app due to uncaught exception 'UIApplicationInvalidInterfaceOrientation', reason: 'Supported orientations has no common orientation with the application, and [CAMViewfinderViewController shouldAutorotate] is returning YES'
*** First throw call stack:
libc++abi.dylib: terminating with uncaught exception of type NSException
Я провел исследование по этой проблеме, но пока не могу найти решение.
Вот несколько ссылок, которые я нашел для связанной проблемы, но ни один из ответов не работает на iPhoneX.
Использование UIImagePickerController в альбомной ориентации
Интерфейс контроллера UIImagePickerOrentation Crash
https://www.reddit.com/r/iOSProgramming/comments/3xpwot/discussion_lets_talk_about_landscape_cameras/