app Transport Security has blocked a cleartext HTTP
iOS 앱 개발 시 http 서버와 통신하려고 하면 구동중에 이런 에러가 발생한다.
ATS 문제임을 알 수 있다.
App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure.
Temporary exceptions can be configured via your app's Info.plist file.
Solution
Apple 측에서 앱 자체의 보안성을 위해 ATS(App Trasport Secuirty)라는 정책을 통해 기본적으로 https 통신을 하도록 유도하고 있는것이다. ATS란 무엇인가? > ATS가 무엇인지 모르겠다면 해당 포스팅을 읽어보도록 하자!
아무튼 http 서버로 테스트하기 위해선 Info.plist 에서 ATS 부분을 추가해주어야 한다.
NSAppTransportSecurity의 NSAllowsArbitraryLoads 값을 true로 지정해준다.
xcode에서 기본으로 제공해주는 폰트가 아닌 커스텀 폰트를 적용하고 싶을 때 아래와 같은 방법을 사용하자!
1. 프로젝트 파일에 폰트 파일을 import
우선 원하는 폰트 파일을 다운로드한다. .ttf .otf 파일 모두 지원되지만 .wotf 파일은 인식하지 못한다.
이때 중요한 것은 import시킬 때, 아래와 같은 창이 생기는데, Add to targets 에 자신이 만든 프로젝트를 반드시 체크해야한다는 것이다. target 설정을 하지 않으면 폰트 파일을 프로젝트 내부에서 인식하지 못하기 때문이다.
(추가로 폰트 파일은 디렉토리 depth 상관없이 인식시킬 수 있기 때문에 나는 {프로젝트 디렉토리}/SupportingFiles/Fonts/디렉토리 에 위치시켰다.
2. Info.plist에 폰트파일 정의
Info.plist파일은 프로젝트의 내용을 요약해놓은 파일이기 때문에 우리가 어떤 커스텀 폰트가 사용되는지 정의해줘야 한다.
Info.plist파일 내부 > Information Property List > Fonts provided by application 항목이 존재한다면 해당 리스트에 새로운 아이템을 추가하고 없다면 Fonts provided by application 항목을 생성해준다.
생성한 Fonts provided by application에 사용한 커스텀 폰트 파일명을 정의해주고, 정의할 때 주의할 점은 파일명의 확장자 까지 다 적어줘야 한다는 것이다. (Apple SD Gothic Neo Bold.otf 와같이 다 적어줘야 폰트인식을 한다.)
3. 코드에 적용
@IBOutlet 를 통해 UIFont를 잡아줘야한다.
잘 모르겠지만 위와 같은 방식으로만 하면 스토리보드상에서 글꼴이 나타나지 않는것 같다. (내가 잘못한 걸수도..)