티스토리 뷰
iOS 사진첨부 기능 화면이 세로 화면 만을 지원하기 때문에 앱 설정이 가로 만을 지원하도록 설정되어 있다면 아래 코드를 추가해야 한다.
가로 화면만 지원하는 앱이면 1, 2, 3 모두 적용해야 한다.
세로 화면도 지원하는 앱이면 1 만 적용하면 된다.
3rd party 를 사용하다보면 기능중에서 사진을 첨부하는 일이 발생한다. 나의 경우는 helpshift 라이브러리를 사용하다가 기능중에서 사진 첨부하는 기능이 있었다. 사진 첨부 버튼만 누르면 가로 앱이 세로로 전환되면서 crash나는 걸 발견하였고 수정하기 위해 여기 저기 검색했지만 마땅한 좋은 방법이 없는 듯 해서 정리해두었다.
1. info.plist 추가 (iOS 10에서 Privacy 설정)
Privacy - Photo Library Usage Description
사진에 대한 접근 권한을 주는 것이다.
설정하지 않으면
debug에서
This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app’s Info.plist must contain an NSCameraUsageDescription key with a string value explaining to the user how the app uses this data.
위에 같은 출력 메시지를 볼 수 있다. 그리고 crash가 발생한다.
참고로 카메라를 사용하고 싶을때는 Privacy - Camera Usage Description 설정하면 된다.
2. AppController.mm 추가
@implementation AppController
... 중략 ...
- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(nullable UIWindow *)window
{
return UIInterfaceOrientationMaskAll;
}
3. ViewController.mm 추가 ( RootViewController.mm )
- (NSUInteger) supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscape;
}
가로 화면만 지원하는 앱이면 1, 2, 3 모두 적용해야 한다.
세로 화면도 지원하는 앱이면 1 만 적용하면 된다.