Where apps hide your files
Since Xcode 16, downloaded provisioning profiles go to ~/Library/Developer/Xcode/UserData/Provisioning Profiles, though Xcode still reads the old ~/Library/MobileDevice folder. Here is how to open them, read their names and expiry dates, and remove stale ones safely.
Apple's Xcode 16 release notes say Xcode 16 stores downloaded provisioning profiles in a new place. Xcode 16 and later keep them here:
~/Library/Developer/Xcode/UserData/Provisioning Profiles
Before Xcode 16, the same files lived in the older folder:
~/Library/MobileDevice/Provisioning Profiles
The same release notes add that Xcode still loads previously downloaded profiles from the old location, so the old folder is not just leftovers: the profiles your Xcode can use are the ones in both folders. On the Mac used for this guide, which runs Xcode 26.3, both exist and hold different files: 34 profiles in the new one and 9 in the old one. New downloads go to the UserData folder.
~/Library is hidden in Finder. Choose Go > Go to Folder (⇧⌘G) and paste the path, or open it from Terminal:
open ~/Library/Developer/Xcode/UserData/Provisioning\ Profiles
Each profile is a single file named with a UUID, not with the app's name, so the Finder list is meaningless at a glance:
| Extension | What it is |
|---|---|
.mobileprovision | A profile for iOS, iPadOS, tvOS, watchOS or visionOS apps |
.provisionprofile | A profile for macOS apps |
Both are signed containers. The signature wraps a property list that holds the profile's name, the app ID, the team, an expiry date and the certificates and devices it covers. On the Mac used for this guide there are 31 .mobileprovision files and 3 .provisionprofile files in the new folder.
Profiles hold device identifiers and certificate data, so print only the fields you need. This reads one field from one file and changes nothing:
cd ~/Library/Developer/Xcode/UserData/Provisioning\ Profiles
security cms -D -i <uuid>.mobileprovision | plutil -extract Name raw -o - -
Replace <uuid>.mobileprovision with one of your file names (type the first few characters and press Tab). The same command with ExpirationDate in place of Name prints the expiry date. Other keys that are safe to read are TeamName and AppIDName. Avoid DeveloperCertificates and ProvisionedDevices unless you need them, and never paste a full decoded profile into a forum post.
To list every iOS-style profile with its name, run this in the same folder:
for f in *.mobileprovision; do echo "$f $(security cms -D -i "$f" | plutil -extract Name raw -o - -)"; done
In Xcode, open the target's Signing & Capabilities tab. The Provisioning Profile row, below Team, names the profile in use: with automatic signing it reads Xcode Managed Profile, because Xcode picks and creates those for you, and for manual signing it shows the one you chose.
For a built app, the profile Xcode embedded is inside the bundle. Apple's technote TN3125 gives the places: MyApp.app/Contents/embedded.provisionprofile on macOS and MyApp.app/embedded.mobileprovision on the other platforms. That tells you what was signed into the build, which is not always the newest file in the folder.
If you use manual signing or a profile is missing, Xcode can download your account's profiles. Open Xcode's Settings, choose Accounts, select your team, and click Download Manual Profiles. That button is in the account detail view in Xcode 26.3, and the nearby Manage Certificates button handles your signing certificates. Automatic signing does not need it.
Old and expired profiles pile up, and removing them is a common tidy-up. Do it carefully:
cp -R ~/Library/Developer/Xcode/UserData/Provisioning\ Profiles ~/Desktop/profiles-backup and cp -R ~/Library/MobileDevice/Provisioning\ Profiles ~/Desktop/profiles-backup-old.rm.What this does: automatic signing recreates managed profiles it needs, and Download Manual Profiles fetches your manual ones again from your account. A profile that exists only on this Mac, such as one you received as a file from a client or teammate, will not come back unless you still have the original, so keep the backup until you are sure.
Profiles whose expiry date has passed are the safest to remove; use the ExpirationDate command above to check. Because Xcode reads both folders, an expired profile in the old MobileDevice folder can still show up in Xcode until you remove it there too. Leave the folders themselves in place and remove only files.
Because of the move, older scripts, build servers and some third-party tools that read only ~/Library/MobileDevice/Provisioning Profiles will not see profiles that Xcode 16 and later download to the new folder. Check that tool's documentation for the path it uses before copying anything between folders.
Profiles are re-creatable from your developer account, so they are not the thing to guard. Your signing certificates and their private keys, which live in the keychain, are the irreplaceable part. Sign in to the same Apple account on the new Mac and let Xcode download what it needs; copy the folder only for profiles that exist nowhere else.
The files are in ~/Library, which Finder and Spotlight searches leave out, and their names are random UUIDs with no hint of the app they belong to.
Typing .mobileprovision into Everywhere lists every iOS-style profile on the Mac with its folder, which shows you both the new UserData copy and any old copy in MobileDevice, plus the embedded.mobileprovision files inside built apps. Typing .provisionprofile does the same for Mac profiles. Names only, so it cannot show the app name inside a profile; for that, use the command above. ⌘↵ reveals the file in Finder.
Xcode 16 and later download them to ~/Library/Developer/Xcode/UserData/Provisioning Profiles. Earlier versions used ~/Library/MobileDevice/Provisioning Profiles, and Apple says current Xcode still loads profiles from there too.
Each file is named with a UUID. To see the name inside, run security cms -D -i <file> | plutil -extract Name raw -o - -.
Yes, with Xcode quit and a backup made first. Move them to the Trash from both folders; Xcode recreates managed profiles, and Download Manual Profiles in Settings > Accounts fetches manual ones that are still valid in your account.
Open Xcode's Settings, choose Accounts, select your team and click Download Manual Profiles.
Everywhere keeps track of every file on your Mac — including the folders Spotlight hides and drives you have unplugged. Free for a day, then $19 once.
Version 2.20.3 · macOS 13+ · 4.7 MB · notarised