-
Info.plistios/Etc 2022. 5. 18. 20:03728x90
plist(속성 목록)은 응용 프로그램 데이터를 저장하기 위한 유연하고 편리한 형식이다. 원래 iPhone 장치에서 사용하고 나중에 다른 응용 프로그램으로 확산하기 위해 Apple에서 정의했다.
plist는 XML 파일이므로 간단한 텍스트 편집기를 사용하여 번역할 수 있다. 그러나 잘못된 위치에 한 문자라도 있으면 파일을 사용할 수 없게 된다.
Info.plist란 무엇인가?
- Information Property List(정보 속성 목록)
- 번들을 식별하고 구성하는 키-값 쌍을 포함하는 리소스
- 앱이 시스템에 메타데이터를 제공하는 방법(사용자에게 더 나은 경험을 제공하기 위해 iOS 및 macOS는 각 앱 또는 번들에 있는 특수 메타데이터에 의존한다.)
info.plist Info.plist의 속성
UIKit
Application Scene Manifest( Dictionary 타입 ): 앱의 장면 기반 수명주기 지원에 대한 정보
- Enable Multiple Windows( Boolean 타입 ): 앱이 두 개 이상의 장면을 동시에 지원하는지 여부를 나타내는 부울 값
-Scene Configuration( Dictionary 타입 ): 새 장면을 만들 때 사용할 UIKit의 기본 구성 세부 정보
-Application Session Role( Array 타입 ): 장치의 기본 화면에 콘텐츠를 표시하고 사용자 상호 작용에 응답하는 데 사용하는 장면
-Configuration Name( String 타입 ): 장면을 식별하는 데 사용하는 앱별 이름
-Delegate Class Name( String 타입 ): UIKit이 인스턴스화하고 장면 델리게이트 객체로 사용하도록하려는 앱별 클래스의 이름
-Storyboard Name( String 타입 ): 장면의 초기 사용자 인터페이스를 포함하는 스토리 보드 파일의 이름
추가로
Info.plist에 아무런 설정 없이 네트워크 통신 시 아래와 같은 오류가 발생하는데
App Transport Sercurity has blocked a cleartext HTTP (http://) resource load since it is insecure.
Temporary exceptions can be configured via your app's Info.plist file.ATS(App Transport Sercurity)는 iOS 9 버전 이후부터 적용된 보안 정책으로 인해 발생하는 오류이다. 이 정책은 보안에 취약한 네트워크를 차단시키기 때문에 네트워크를 사용하려면 Info.plist를 수정해주어야 한다.
수정 방법은 Info.plist로 이동하여 Information Property List Key 옆에 +를 누른다.
Key 이름에 App Transport Security Settings을 입력하고 App Transport Security Settings의 +버튼을 눌러서 Allow Arbitrary Loads를 입력해 준다.
마지막으로 Allow Arbitrary Loads의 Value 값을 NO에서 YES로 바꿔준다.
Info.plist 특징
Info.plist 파일이 앱을 구성한다.
- 모든 앱과 플러그인은 Info.plist파일을 사용하여 시스템이 쉽게 액세스할 수 있는 위치에 구성 데이터를 저장한다.
- macOS 및 iOS는 Info.plist 파일을 사용하여 번들에 대해 표시할 아이콘, 앱이 지원하는 문서 유형 및 번들 자체 외부에 영향을 미치는 기타 여러 동작을 결정한다.
Core Foundation 키는 일반적인 동작을 설명한다.
- Core Foundation은 애플리케이션 서비스, 애플리케이션 환경, 애플리케이션 자체에 유용한 기본적인 소프트웨어 서비스를 제공하는 프레임워크이다.
- 생성하는 번들 유형에 관계없이 항상 지정하는 키가 많이 있다.
- 이러한 키는 CF 접두사로 시작하며 Core Foundation 키라고 한다.
- Xcode에는 자동으로 Info.plist에 중요한 키들이 포함되어 있지만 수동으로 추가해야 하는 다른 키들도 있다.
Lauch Service 키는 시작 시간 동작을 설명한다.
- Launch Service는 실행 중인 앱이 Finder 또는 Dock과 유사한 다른 앱이나 해당 문서 파일을 열 수 있도록 하는 API이다.
- Lauch Service 키는 앱 실행을 지원한다.
- Lauch Service 키는 앱이 시작되기를 선호하는 방식을 설명한다.
Cocoa Keys는 Cocoa 및 Cocoa Touch 앱의 동작을 설명한다.
- Cocoa 및 Cocoa Touch 프레임워크는 키를 사용하여 앱의 기본 nib 파일 및 주요 클래스 와 같은 상위 수준 정보를 식별한다.
- Cocoa 키는 Cocoa 및 Cocoa Touch 프레임워크가 앱을 초기화하고 실행하는데 영향을 미치는 키와 기타 키를 설명한다.
macOS 키는 macOS 앱의 동작을 설명한다.
- 일부 macOS 프레임워크는 키를 사용하여 기본 동작을 수정한다.
- Mac 앱 개발자는 테스트 중에 또는 앱 동작의 특정 측면을 수정하기 위해 이러한 키를 포함할 수 있다.
iOS 키는 iOS 앱의 동작을 설명한다.
- iOS 앱은 Info.plist 키를 사용하여 시스템에 많은 정보를 전달한다.
- Xcode Info.plist는 가장 중요한 키로 표준을 제공하지만 대부분의 앱은 앱의 초기 방향에서 파일 공유 지원 여부에 이르기까지 모든 것을 설명하는 추가 키로 표준 파일을 보강해야 한다.
watchOS 키는 Watch 앱의 동작을 설명한다.
- Watch 앱 및 WatchKit 확장을 위해 watchOS 프레임워크와 연결된 Info.plist 키를 사용한다.
앱 확장 키는 iOS 및 macOS 앱 확장의 동작을 설명한다.
- 앱 확장을 사용하면 다른 앱과 알림 센터와 같은 시스템 시설에서 사용할 수 있는 사용자 지정 동작을 만들 수 있다.
- Xcode의 앱 확장 템플릿은 각각 Info.plist 가장 중요한 키가 포함된 표준 파일을 제공하지만 앱 확장에 대한 사용자 지정 동작을 설명하는 추가 키를 지정할 수 있다.
참고
https://doqtqu.tistory.com/107
https://developer.apple.com/documentation/coreservices/launch_services
https://developer.apple.com/documentation/corefoundation
https://developer.apple.com/documentation/bundleresources/information_property_list
728x90'ios > Etc' 카테고리의 다른 글
Stroyboard Components (0) 2022.05.19 Xcode 기능들과 AppProject 속성 (0) 2022.05.19 @escaping (0) 2022.05.14 Concurrency & Threading (0) 2022.04.08 Swift 메모리 관리: ARC (0) 2022.03.22