macOS용 프로그램 Bundle ID 찾기

less than 1 minute read

맥용 앱의 Bundle ID 찾기


CFBundleIdentifier란?

iOS/macOS에서 사용하는 어플리케이션 식별자로
어플리케이션의 고유한 값으로 이해하시면 됩니다.

그러면 각 어플리케이션이 하나만 가질 수 있나요?
그렇지 않습니다.

다만 OS에서 각 BundleID당 Application 하나를 맵핑하기 때문에
같은 ID로 만들었다고 하더라도 한개의 앱만 실행합니다!

그래서 코드에서도 보통 ProcessID가 아닌
실행중인 BundleID로 많이 비교하는것 같아요.

특히 macOS용 앱을 개발하다보면 이 BundleID로
다른 앱을 실행해야 하는 경우가 있습니다.

그래서 어떻게 ID를 찾을 수 있는지 방법을 정리해보려고 합니다ㅎㅎ

CFBundleIdentifier 찾기

Info.plist에서 확인

plist는 워낙 많이 들어보셨을것 같아요.

각 Application마다 plist작성은 필수인데 앱 패키지에 항상 들어있기 때문에
바로 Finder에서 찾아서 확인할 수 있습니다.

codesign 커맨드

$ codesign -dr - /System/Applications/TextEdit.app
Executable=/System/Applications/TextEdit.app/Contents/MacOS/TextEdit
designated => identifier "com.apple.TextEdit" and anchor apple

codesign 커멘드로도 identifier를 찾아낼 수 있습니다.

PlistBuddy 커맨드

$ /usr/libexec/PlistBuddy -c 'Print CFBundleIdentifier' "/System/Applications/TextEdit.app/Contents/Info.plist"
com.apple.TextEdit

PlistBuddy는 저도 처음 써봤는데 codesign 명령보다
조금 더 많은 파라미터가 필요하네요.
Info.plist의 정확한 위치도 알고 있어야 하구요 ㅎㅎ


오늘은 맥에서 앱 BundleID를 GUI/CLI로 찾아보는 방법에 대해서 알아보았습니다~!

참고: https://www.macosadventures.com/2022/05/09/app-bundle-identification/

Leave a comment