SponsorSign inSubmit

← All tools

Info.plist explainer

Paste your Info.plist, or what plutil -p prints. It is read right here on this page, and nothing is sent anywhere.

Info.plist explainer

Try an example:

What it does

Every Mac app has an Info.plist inside it, in Contents. It is a small settings file that tells macOS the app's name, bundle ID, version, the oldest macOS it runs on, its category, whether it has a Dock icon, and the messages macOS shows when the app asks for the camera, the microphone or control of other apps. This tool reads the file you paste and says in plain words what each key does. It puts first the ones that will stop the app, its updates or its review, then the ones worth a second look, then the ordinary ones.

Commands to run

plutil -p YourApp.app/Contents/Info.plist
plutil -lint YourApp.app/Contents/Info.plist

The first prints the file in a form you can paste here, even when it is stored as binary. The second checks that the file is valid. In your Xcode project the file often says things like $(MARKETING_VERSION), which Xcode fills in when it builds. To see the real values, check the copy inside the built app.

What each result means

MarkWhat it means
FixA key is missing or empty in a way that breaks the app, its updates or App Review, such as no build number or an empty permission message.
LookIt works, but it may get questions in App Review or confuse people, like a vague permission message or plain http allowed everywhere.
OKSet the way Apple's docs describe.
NoteGood to know, such as what Xcode added when it built the app.

Sources: Apple Developer, Information Property List, Protected resources, LSApplicationCategoryType, NSAppTransportSecurity and Sparkle documentation, all read November 9, 2026.

How it works

It is a few plain text rules running on this page. It reads the XML of an Info.plist, or the top level of what plutil -p prints. It knows about 80 common keys and the permission messages. Anything else it marks as not in its list instead of guessing. It can't tell whether your app really uses the camera or the microphone, or whether a permission message is missing for something the app does: macOS stops an app that asks without one, so test each feature once. Nothing you paste is saved or sent.

Questions

What is an Info.plist on a Mac?

A settings file inside every app, at Contents/Info.plist. It holds the app's name, bundle ID, version, minimum macOS, category and the messages macOS shows when the app asks for permission.

How do I read an app's Info.plist?

Run plutil -p followed by the path to Contents/Info.plist in Terminal. It prints the file in plain text, even when it is stored as binary.

What is the difference between CFBundleVersion and CFBundleShortVersionString?

CFBundleShortVersionString is the version people see, such as 2.1. CFBundleVersion is the build number that macOS, the Mac App Store and Sparkle compare to tell which copy is newer.

Why does my Mac app crash when it asks for the camera?

macOS stops an app that asks for the camera, the microphone or other private data without the matching usage description in its Info.plist. Add NSCameraUsageDescription with a clear reason.

Is what I paste sent anywhere?

No. The text is read on this page and nothing is sent or stored.

Related