Finding the custom URL scheme of an iOS app


I was recently hired to find out if an app has a custom URL scheme. Using the URL scheme the developer would be able to implement deep linking and launch that app from his own app.
The process of finding the URL scheme was quite simple, so I decided to write a tutorial on how to do it.


Downloading the IPA of the app

There are a couple of ways to download the IPA of an app available on the App Store. I’ve chosen to use the iMazing MacOS app, because I think it’s the most straightforward way of doing it. It is an iOS device management tool with a lot of great features and you should definitely check it out.
These are the steps that you have to take:

  1. Once you have downloaded and installed the app, open it and connect your iPhone with the app.
  2. After the device is connected, you will be able to see the menu on the right side. From the menu select Manage Apps. iMazing - Manage apps
  3. From the list of apps in the Library tab select the app for which you want to download the IPA file and click the download button. iMazing - Library
  4. You will be prompted to sign in with your Apple ID. After you sign in, you will be able to download the app.
  5. Once the download is finished, right click on the app and export the IPA file to your disk.


Finding the custom URL scheme

Downloading the IPA file was the hard part. Now you only need to extract the Info.plist file and find the URL scheme if it exists. To do this you have to do the following:

  1. Change the file extension of the IPA file from .IPA to .zip.
  2. Unzip the file.
  3. In the unzipped file you will find the Payload folder. The folder should contain a .app file.
  4. Right click on the .app file and select Show Package Contents.
  5. In the resulting folder you will find the Info.plist file. If the URL scheme exists it should be stored under the CFBundleURLSchemes key of the property list:
<key>CFBundleURLTypes</key>
<array>
  <dict>
    <key>CFBundleURLSchemes</key>
    <array>
      <string>MyUrlScheme</string>
    </array>
  </dict>
</array>