Find the URL scheme of an app on my iPhone - ios

Apple maps can open routing apps when it can't provide a route:
I want to open a few of those apps from my app. I am aware that I have to whitelist each app that I want to open. This is not the problem.
How can I find out the url schemes of those Apps that are installed on my iPhone?
One idea is to make a backup via iTunes and at the info.plist of the app.
In this plist, the url schemes should be defined with the cfbundleurlschemes key.
I think I found such an app in a backup, but I don't know how to extract the file to get the info.plist file. adding .zip and extracting doesn't work.
Other ways to get the URL scheme are also welcome, especially ways to get example parameters of the URL scheme of an app. So looking at Apple Maps how it opens a specific routing app would be nice.
Yes I know how to open Google Maps. I want to know how to open those where I can't find a documentation.
So how can I find out URL schemes of routing apps on my iPhone?
There is an answer that suggests to extract the .ipa file, but there aren't .ipa files with iOSA 11 any more.

This article was incredibly helpful:
https://www.amerhukic.com/finding-the-custom-url-scheme-of-an-ios-app
Basically:
Download the app to your phone
Install the program iMazing on your mac
Connect your phone to your mac
Download the ipa file from your phone to your mac
Then
Make the ipa file a zip (rename) and extract
Show the package content from the .app file in the Payload folder
Search and open the Info.plist file
Search for CFBundleURLSchemes. Here are your url schemes.

The way I do it. Download the app "Iconical". It's an app used to create other icons to access an app. Once installed, tap "Select App" then hit refresh and you get a list of urls of all the apps with a url Scheme set up.
If the app I want is not in the list. Than I open the iPhone console, go to the AppStore, find the app and open it from there. Then look for its bundle identifier in the iPhone console and use the last part as url scheme.
Ex.: com.cie.appName. This always worked for me. Hope this helps.
UIApplication.shared.open("appName://", options: [:], completionHandler: nil)

Get yourself a copy of the "enterprise" version of iTunes that lets you download .ipa files direct from the App Store. (Mentioned, for example, here.) Now you can open the .ipa and examine its components.

You can find URL scheme of any app in device Console if you connect your device to your computer and open the app. SpringBoard logs a lot of actions to the console, showing URL scheme every time.
e.g.
URL scheme for Firefox: org.mozilla.ios.Firefox
default 15:34:38.460964 +0100 SpringBoard [org.mozilla.ios.Firefox] Setting badge to (null) [ old badge: (null) ]

Related

installing ipa from some website to computer ( Macbook ) direct as ipa

How can I install an iPhone app from some website to MacBook direct as IPA?
since when I click to download the iPhone app from some website will not work only when I open this link in iPhone, after I open the link from iPhone will start directly downloading without asking about my apple email, after downloading the app in iPhone and I tried to open it they ask only to trust this app then will be work on iPhone like any apple store apps.
My question now, How can I download this app directly to MacBook as IPA ??
The download link should look like this:
itms-services://?action=download-manifest&url=https%3A%2F%2Fxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
You need to copy the whole text after url= to some URLDecode website(there are plenty of them in Google). And decode it. Then you will see the real url. You can open it in your browser.
It's a plist file(some may not have the .plist Suffix).
You can edit with any text editor. Or just open it in your browser. The real url of ipa file is inside the plist file, just like this
plist file sample.

-canOpenUrl OSStatus fout -10814

I'm trying to open an app from my own app that is also installed on my iPhone called KIJK. I've added the kijk string to the array in the Info.plist and am calling the -canOpenUrl method but it always fails.
I get this error message:
OSStatus fout -10814
Now I'm wondering, in Safari it is possible to open the KIJK app with a link that is made up like this: kijk://serie/123311 so I assumed kijk was the query I needed to add in my plist file.
Is there a way to find out the app scheme of an app I didn't develop? I checked a lot of answers already but they all seem outdated because of new iOS or iTunes versions.
<key>LSApplicationQueriesSchemes</key>
<array>
<string>kijk</string>
<string>rtlxl</string>
<string>npo</string>
</array>
Q: Is there a way to find out the app scheme of an app I didn't develop? I checked a lot of answers already but they all seem outdated because of new iOS or iTunes versions.
There is no way for you to find out the URL Schemes of another app until unless they declare. For example, Facebook, Uber, etc. Click the link to see Facebook apps URL Schemes.
https://developers.facebook.com/docs/ios/ios9 => Whitelist Facebook Apps
Q:Now I'm wondering, in Safari it is possible to open the KIJK app with a link that is made up like this: kijk://serie/123311 so I assumed kijk was the query I needed to add in my plist file.
If the KIJK app had URL scheme with the format like "kijk://" then it will open the app. Otherwise, it is not going to open the app.
I guess you might be aware of the rule that from iOS 9 you need to whitelist the schemes your app will query using canOpenURL.

Has SugarWod (iOS) implemented a Custom Url?

I'm specifically looking to see if SugarWod has implemented a Custom Url, and if so, what it is. They have no developer documentation available and their support has yet to respond back.
If that's unknown, is there a list of sites that currently implement a Custom Url, so that another iOS app can open it?
Or is there a way to see find the Custom Url of an app, if it exists, from your device, iTunes, etc?
Thanks a lot.
It supports a custom URL which starts with sugarwod://
You can easily find this out for any app you have the IPA file of.
1. Rename the extension of the app from .ipa to .zip
2. Extract the zip file
3. Go to the Payload folder of the app
4. Right click on the single file there and choose "show package contents"
5. Open the Info.plist in Xcode and look for the URL types
If there are supported URL's, they can be found there.

URL Schemes to personal apps

Is there a way to use URL schemes to open another app (not a common one like maps), without having access to the source code of that app? I'm working for a company that has several apps, and they've tasked me to build another app that will concatenate all of their other apps. If I really need to, I can email my boss and ask about setting up the codes.
If it helps, I'm using XCode 7.3.1, in Swift 2.
By the way, I checked for similar questions, but couldn't find any. If you do find one, send a comment with the link and I'll delete this question if the answers the the other question help.
Thanks in advance!
Download the application onto your device (sync to iTunes to get the IPA) or to iTunes. Right click and choose show in explorer or finder.
Now you have the IPA. Change the extension to .zip and unzip it. Open the payload folder.
Go into the application's folder (Right-Click Show Package Contents on OSX).
Open "Info.plist" and look for: URL Types key. One of the sub-keys in there will open the application.
Update:
Download the app on any iOS device.
Plug it into the computer.
Download Apple Configurator 2 from the Mac Appstore.
Next open apple configurator and right click on your iOS device and press "Add".. then find the app you want to download. Once you find it, double click it and it will tell you that the app is already installed. DO NOT click any of the options on the popup.
Open a terminal and type:
cd ~/Library/Group Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps/
Then type: open . to open the directory.. You should now see the .ipa file..

get all iOS url schemes on device

Is there a way to get all the url schemes of all the apps on a device? There has to be a central repository of them somewhere, maybe a plist?
Adding my solution in case someone is still looking. After spending some time researching the answer, I finished off on a mix between #danielbeard's and #Avis' solution.
Because I know what application I am looking for:
Download the .ipa from iTunes using my computer
Copy the application to my desktop
Rename it to *.zip
Extract the *.zip
Open the 'Payload' folder
Right click on the application and select 'Show Package Contents'
I then double-click the 'Info.plist' file (which Xcode should then open)
Then check 'URL types' > 'Item 0' > 'URL Schemes'
Using that information I then add it to an array of apps to check (doing what #danielbeard suggested).
Hope this helps someone in the future.
if it's programatically, i don't know.
here is answer to related to your question(not exactly)
Find out an app's URL programmatically
But manually, on your device-
yes...
there is a way to get url schemes of all apps on your device by this procedure. Install ifunbox on your system. Connect your device, open user applications and open the app that you are trying to find url scheme. you will find app home folder, in that folder you will find info.plist of that app. open info.plist and check url scheme address in the last column.
it worked for me. you will find url scheme of some apps which are registered for url schemes.
here are some some links for url scheme addresses of some apps.(might save your time).
1.http://handleopenurl.com/
2.http://wiki.akosma.com/IPhone_URL_Schemes
Yes, you can use private api. First
#interface PrivateApi_LSApplicationWorkspace
- (NSArray*)privateURLSchemes;
- (NSArray*)publicURLSchemes;
#end
then use it:
PrivateApi_LSApplicationWorkspace* _workspace;
_workspace = [NSClassFromString(#"LSApplicationWorkspace") new];
- (NSArray*)privateURLSchemes
{
return [_workspace privateURLSchemes];
}
- (NSArray*)publicURLSchemes
{
return [_workspace publicURLSchemes];
}
check https://github.com/wujianguo/iOSAppsInfo.
I'm going to go out on a whim here and assume you are trying to do the following:
You have a PDF in your app.
You want to check (programmatically) to see if any other app can open PDF files.
If so, open PDF using that app.
If you want to do this, you don't have to do step 2 manually. As a matter of fact, you can't. However, you can use the UIDocumentInteractionController class to present a menu of compatible apps.
This is the only way you can "check" for other apps installed on the phone. At least on iOS 7 and under.
It's not supported officially by Apple API without jailbreaking
A workaround might be how Bump knows which apps are launched and support URL Schemes:
http://danielamitay.com/blog/2011/2/16/how-to-detect-installed-ios-apps

Resources