티스토리 뷰

iOS/면접질문 모음

App Bundle의 구조와 역할

malrang-malrang 2022. 9. 12. 23:32

App Bundle의 구조와 역할

Bundle

번들은 크게 App Bundle, FrameWork Bundle, Loadable Bundle 세가지로 나눌 수 있다.

1. App Bundle

  • 실행될수 있는 executable과 executable을 설명하는 Info.plist 파일 그리고 executable에서 사용되는 launch 이미지를 포함한 asset과 자원, 인터페이스 파일, string파일, 데이터 파일로 이루어져 있다.

2. FrameWork Bundle

  • dynamic shared library 라 불리는 동적 공유 라이브러리에서 사용되는 코드와 자원을 포함하고 있다.

3. Loadable Bundle

  • 앱의 기능성을 확장시켜주는 실행 가능한 코드와 자원을 포함하고 있고 플러그인이 대표적인 예시이다.

번들의 컨텐츠는 Bundle.main을 사용해서 접근할 수 있으며 url(forResource:withExtension:)메서드를 사용해 특정 자원의 위치를 알아낼수 있다.

Bundle.main.url(forResource: "Photo", withExtension: "jpg")

참고

  • 플러그인: 컴퓨터에서 플러그인은 컴퓨터(소프트웨어)에 추가 기능을 설치하기 위한 확장 소프트웨어 또는 장치 등이다.(게임핵 같은것들도 플러그인..?인가??)

App Bundle이란?

App Bundle은 개발자가 생성하는 가장 일반적인 유형의 번들로, 어플리케이션의 성공적인 작동에 필요한 모든 것들을 저장한다.
구조는 어플리케이션의 플랫폼이 iOS 혹은 MacOS냐에 따라 다르지만, 사용하는 방법은 동일하다.

App Bundle의 구성요소

  1. Info.plist
  • 어플리케이션에 대한 구성 정보가 들어있는 구조화된 파일로, 시스템은 이파일에 의존하여 어플리케이션 및 파일에 대한 관련 정보를 식별한다.
  • 모든 App Bundle은 Info.plist파일을 가지며 bundleURL, bundleIdentifier를 포함한 몇몇 메타 데이터에 접근할 수 있다.
    let bundle = Bundle.main
    bundle.bundleURL        // 앱의 저장위치
    bundle.bundleIdentifier // identifier

Executable
모든 응용 프로그램에 존재하는 실행파일로 어플리케이션의 메인 entry point와 어플리케이션 타겟에 정적으로 연결된 모든 코드가 포함되어 있다.

Resource files
어플리케이션의 실행 파일 외부에 있는 데이터 파일.
리소스는 일반적으로 이미지, 아이콘, 소리, nib파일, 문자열 파일, 설정파일 및 데이터 파일 등으로 구성된다.
대부분 localized 될 수 있다.

Other support files
커스텀 데이터 리소스 등이 포함 되어있다.
iOS의 번들 구조를 이해하면 사용자 지정 파일을 저장할 위치를 결정하는데 도움이 된다.
iOS 어플의 번들 구조는 모바일 장치에 적합하게 이루어져 있다.
외부 디렉토리가 거의 없는 평평한 구조를 사용하여 디스크 공간을 절약하고 파일에 대한 접근 과정을 간소화한다.

참고

  • 메타데이터: 데이터의 데이터. 데이터의 위치가 어디인지 등등 데이터의 정보를 표현하는 데이터?

AppBundle의 구조

MyApp

  • 애플리케이션의 코드를 포함하는 실행 파일.

응용 프로그램 아이콘

Info.plist

  • 번들 ID, 버전 번호및 앱 표시 이름과 같은 응용 프로그램의 구성 정보가 포함되어 있다.

Launch images

MainWindow.nib

  • 응용 프로그램 시작 시 로드 할 기본 인터페이스 객체가 포함되어 있다.
  • 일반적으로 nib파일에는 응용 프로그램의 기본 창 객체와 응용 프로그램 delegate 객체의 인스턴스가 포함 된다.

Settings.bundle

  • 설정 애플리케이션에 추가하려는 애플리케이션 별 환경 설정을 포함하는 특수 유형의 플러그인.

사용자 지정 리소스 파일

  • 지역화 되지 않은 리소스는 최상위 디렉토리에 배치되고 지역화된 리소스는 애플리케이션 번들의 언어별 하위 디렉토리에 배치.
    💡 iOS App Bundle은 'Resources' 라는 사용자 지정 폴더를 포함 할 수 없음

참고한 문서및 자료

https://neph3779.github.io/ios/WhatIsAppBundle/
https://developer.apple.com/library/archive/documentation/CoreFoundation/Conceptual/CFBundles/BundleTypes/BundleTypes.html#//apple_ref/doc/uid/10000123i-CH101-SW1

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함