will iOS universal links support work without web server? - ios

I have created an cordova iOS app and wanted to add universal links support to it with a custom domain. Means I don't have any web server to configure my app association file . But still i need to support my app to handle a custom domain link like abc.com/path/* . abc.com doesn't exist but i need to handle this links in my ios app. Same is working fine in Android. any custom non existing domain links are working fine in android. but the same is not the case for ios. Can some one please help me in this how can i achieve this.
I have already tried cordova-plugin-deeplinks to do the same. Android is working perfectly but ios is not working.

No, it will not work. You need to host the apple-app-site-association file on that domain in order to prove ownership of the domain.
Otherwise, iOS wouldn't be able to prevent your app from hijacking e.g. twitter.com.

Custom URL Scheme solved my problem. used cordova-plugin-customurlscheme plugin and configured my custom url schema.

Related

React native ios deeplinking with universal URL

I've been facing issue setting up deeplinking with react native for IOS with react navigation 5.
When i try the URL scheme of myownapp://homepage/ it opens up the app.
But if i try with url : https://dev.myownapp.com/homepage/ it opens up the safari browser, but it doesnt open up the app.
I've tried with the documentation by adding Appropriate code in AppDelegate.m file and also ive added myownapp.com in the Associated Domains in Xcode.
Can you guys brief about what configuration is left to be done because the same opens in android. Thanks in Advance
Can you reach https://dev.myownapp.com/.well-known/apple-app-site-association or https://dev.myownapp.com/apple-app-site-association yet?
If you can't, please host the file on the servers you want to be supported universal link.
So to make it work:
You need to setup your app to be supported wildcard domain by set applinks:*.myownapp.com.
You also need to host the config file (apple-app-site-association) to all the sub-domains, it means you're able to reach:
https://sub1.myownapp.com/.well-known/apple-app-site-association
https://sub2.myownapp.com/.well-known/apple-app-site-association
....
Another thing you should notice that all your domains must be supported secure connection (https).

Apple universal links not working even after uploading Apple-app-site-assocaiton(AASA) file on server

I tried to implement universal links functionality in my app. For that I created a Apple-app-site-assocaiton(AASA) with in verified json format by branch.io and uploaded on my root server. After that I enable associated domains in my app capability in Xcode to define (applinks:) that help website url to detect my app into the active device. Now, problem is after implementation I could not avail that functionality as Web url not detecting my app. I tried so many trouble shooting method but it hasn't help me out.
Secondly, apple api validator tool is also not showing my website compatible to deep link even after successfully adding AASN file. Can anybody help where exactly I'm lacking behind.

How do I find an apps/websites Deep Link?

I have a cordova app which uses the AppAvailability Plugin (https://www.npmjs.com/package/cordova-plugin-appavailability) and I have to find out if a specific app is installed. Its easy on Android, since I just know the packagename, but on IOS I have to know the URI Scheme or the DeepLink (eg. myapp://).
But I just seems to not be able to find out how to get it. Example is the asos.com.au website and their app. The Package name is 'com.asos.app', so that part is solved.
But if you go on the website (or in my usecase, if you are forwarding to their website) it opens the app if is available. And if it is available I want to have my app know that it wont redirect to the website (this is actually pretty important).
So, on IOS I have to know this URI Scheme.
Any Ideas?
This sounds like asos.com has implemented deep linking, and indeed http://www.asos.com/apple-app-site-association is present and looks good. Find more documentation here: https://developer.apple.com/library/content/documentation/General/Conceptual/AppSearch/UniversalLinks.html

Long list of domains in iOS Entitlement file in iOS 9.0-9.2

We have a need to support 100+ domains in our entitlements file for Universal Links.
Example:
applinks:test.myapp.com
applinks:blah.myapp.com
applinks:foo.bar.com
etc...
I know that *.myapp.com will be supported in iOS 9.3, but is there a way to do this elegantly for customers using iOS 9.0 to 9.2 without having to manually add 100+ entries to the entitlements file? Is there a way to do this without having to rebuild and re-release our app every time we need to add a domain to the list?
Thanks!
The new wildcard support in iOS 9.3 is designed for exactly the situation you're describing, so there isn't really a solid alternative in earlier OS versions.
If you don't want to worry about continually updating the list of subdomain applinks entries (or even if you do, but need to wait for App Store review), the best workaround is probably hosting fallback pages on each subdomain with a call-to-action the user can use to continue into the app. That would work as follows:
Assume that you have applinks:mydomain.com configured.
User opens a link to new.mydomain.com/exciting-page (which is NOT covered by the entitlement above).
User sees a custom interstitial, functionally similar to something like this. On this interstitial is a link pointing to mydomain.com/new/exciting-page
User opens the link and the app launches.
The only thing I am not sure about is whether mydomain.com and new.mydomain.com count as 'different domains' for the purpose of Universal Links, since Universal Linking functionality is disabled in Safari for links within the same domain (source). If this turns out not to work, you could easily use something like applinks:mydomain.io and a link to mydomain.io/new/exciting-page in step 3 instead.

Universal Links to Amazon

Shouldn't we be able to use Universal Links into Amazon on iOS? They are hosting this file: https://www.amazon.com/apple-app-site-association and this blog post seem to be certain of it. However, if I make a link that follows one of their site-association rules, such as
http://www.amazon.com/gp/product/0062273205,
I keep getting directed to Safari instead of the app. I have never clicked Back to X from the Amazon app, so it can't be that cache that is messing with me.
Universal Links do work with the Amazon app on iOS. I tested the example (http://www.amazon.com/gp/product/0062273205) on iOS 9.2.1, and it opened the app as expected.
Have you have scrolled all the way to the top of the Amazon page? There should be a banner like this that will forward you to the app. If not, I suppose it's conceivable that your copy of the Amazon app didn't correctly register for Universal Links when first installed. You could try deleting it and reinstalling.
I know this is an old question, however I did post an answer that seems to work currently which might help someone:
I too had mixed results with universal links, it worked on some devices and not on others even though the Amazon app is installed.
In summary, what I did was:
Using https://www.appsight.io/app/amazon I was able to get the URL Scheme for the amazon app
I whitelisted that URL scheme in my info.Plist
I added some code to check if I can open the amazon app using the scheme otherwise I should fallback to using Universal links
Exact code I used is available on my answer here.

Resources