Computer >> 컴퓨터 >  >> 체계 >> MAC

macOS App Bundle 분석

macOS App Bundle 분석

macOS 앱 내부에는 무엇이 있으며 어떤 기능을 합니까? macOS 앱은 모놀리식 파일처럼 보이지만 번들이라는 멋진 아이콘이 있는 폴더에 가깝습니다. 해당 번들을 열면 응용 프로그램에 필요한 파일 배열을 찾을 수 있습니다. 이 모든 것이 무엇을 합니까? 이러한 번들에 대한 이해는 개발자, 관리자, 게임 모더, Hackintosh 빌더, 보안에 관심이 있는 사용자 및 앱 문제를 해결하는 모든 사람에게 유용합니다.

macOS 앱 번들이란 무엇입니까?

Apple에서 정의한 대로 번들은 "실행 코드와 해당 코드에서 사용하는 리소스를 보유하는 표준화된 계층 구조를 가진 디렉토리"입니다. 다른 이름으로 응용 프로그램입니다. 앱이 제대로 실행되도록 개발자가 준수해야 하는 특정 구조와 형식이 있습니다. 이러한 관습을 깨면 앱이 깨질 가능성이 높습니다. 제대로 작동하지 않는 경우 애플리케이션 번들이 유용한 문제 해결 위치가 될 수 있습니다.

앱은 번들의 유일한 종류가 아닙니다. 번들은 .framework, .bundle, .plugin 및 .kext와 같은 확장자를 가진 파일에도 사용됩니다. 번들은 번들 패키지를 열어서 들어갈 때까지 Finder에서 단일 개체로 표시됩니다.

응용 프로그램 번들 열기

디렉토리와 달리 애플리케이션 번들은 열려면 짧은 춤이 필요합니다.

1. "/Applications/"에서 애플리케이션 아이콘을 마우스 오른쪽 버튼으로 클릭합니다.

2. 컨텍스트 메뉴에서 "패키지 내용 표시"를 클릭합니다.

macOS App Bundle 분석

3. "Contents" 폴더를 더블 클릭하여 앱의 기본 디렉토리로 들어갑니다.

기본 macOS 앱 번들 분석

번들의 "Contents" 폴더 내에서 여러 파일을 찾을 수 있습니다. 모든 macOS 앱에는 최소한 다음 파일이 포함되어야 합니다.

  • Info.plist :애플리케이션 식별자 문자열과 함께 필수 구성 세부정보를 포함합니다.
  • MacOS/실행 파일 :사용자가 "MacOS" 폴더에 있는 앱을 실행할 때 실행되는 코드입니다. 실행 파일이 없으면 번들이 많지 않습니다.
macOS App Bundle 분석

또한 몇 가지 일반적인 폴더에서 많은 추가 파일을 찾을 수 있습니다.

  • 플러그인 :핵심 실행 파일의 기능을 확장하는 확장과 같은 미니 실행 파일입니다. 정적 리소스와 달리 플러그인은 애플리케이션에 기능을 동적으로 추가합니다.
  • 리소스 :애플리케이션이 의존하는 지원 파일. 이 폴더에는 이미지, 아이콘, 사운드, 글꼴, nib 파일, 현지화 및 데이터 저장소가 포함되지만 이에 국한되지 않습니다. 플러그인과 달리 이러한 리소스는 실행 파일의 핵심 기능을 지원합니다.
  • 프레임워크 :플러그인과 마찬가지로 앱에 필요한 고급 프레임워크는 자체 번들입니다. 그러나 서로 다른 계층 구조를 사용합니다.
  • 코드 서명 :애플리케이션의 각 부분에 대한 코드 서명을 제공하는 데 사용되는 구조화된 plist 파일입니다. 이러한 서명을 통해 앱과 macOS는 애플리케이션의 무결성을 확인하고 앱 하이재킹 공격을 방지할 수 있습니다.

iOS 앱 번들은 동일한 기본 구조와 파일 형식을 사용하지만 종종 다른 계층 구조로 나타납니다.

Info.plist

macOS App Bundle 분석

Info.plist는 애플리케이션의 기본 인구 통계에 대한 기본 요약입니다. 여기에는 다른 모든 번들 식별자와 고유해야 하는 번들 식별자가 포함됩니다. 이 프로세스를 단순화하기 위해 Apple은 "com.apple.siri.launcher" 또는 "org.videolan.vlc"와 같은 역 도메인 표기법을 권장합니다. Info.plist에 대해 자세히 알아보려면 Apple의 키 목록을 확인하고 각 키의 기능을 고려하십시오.

이 파일에는 앱 아이콘, 앱 이름, 버전 번호, 저작권 데이터, 오류 보고 링크 및 기본 언어와 같은 기본 앱 정보도 포함되어 있습니다. 관례 및 시스템 규칙에 따라 "Info"의 "I"는 항상 대문자로 표시됩니다.

실행 가능

애플리케이션의 기본 코드가 있는 곳입니다. 애플리케이션이 열리면 macOS는 번들의 "MacOS" 디렉토리에 있는 실행 파일에 포함된 코드를 실행합니다. 거의 모든 응용 프로그램에는 하나의 실행 파일만 있지만 도우미 실행 파일에는 두 개 이상을 사용할 수 있습니다. 이 파일은 일반적으로 사용자가 쉽게 보거나 편집할 수 없기 때문에 소프트웨어 개발자를 제외한 누구에게도 관심이 없습니다.

리소스 및 추가 지원 파일

애플리케이션에 필수적인 모든 것이 번들에 포함되어야 합니다. 실행 파일 자체의 일부가 아닌 경우 번들 내의 리소스 폴더 중 하나로 이동해야 합니다. 이러한 리소스는 기본 "Resources" 폴더에 저장하거나 다른 폴더로 세분화할 수 있습니다.

  • 확실하지 않은 경우 대부분의 리소스는 '리소스' 폴더로 이동합니다.
  • Frameworks는 "Frameworks" 폴더에 있습니다.
  • 플러그인은 "플러그인" 폴더에 있습니다.
  • 현지화 파일(.lproj 디렉토리)은 Resources 폴더로 이동합니다.

이러한 요구 사항 외에도 Apple은 귀하가 달리 해야 할 변명의 여지가 없는 한 따라야 하는 많은 제안 및 규칙을 제공합니다.

결론

macOS 애플리케이션은 애플리케이션 파일의 계층적 컨테이너인 번들 내에 포함됩니다. 기본 구조는 모든 응용 프로그램에서 동일합니다. 사용자에게 가장 흥미로운 파일은 앱 번들 내의 Resources 폴더에 있습니다.