IOS Deep linking: Universal Links - deep-linking

Universal deep linking is not working in my code.
I had generated AASA file and is validated using aasa validator. I had added my domain in "Associated Domains" in my project target file. Domain name like this "applinks:DomainName.com".
After implementing all those things if I search in Safari "MyAppName.com", it will not redirect it to my App.
AASA (apple-app-site-association) File:
{"applinks":{"apps":[],
"details":
[{"appID":"xxxxxxxx.com.xxxxxx.org",
"paths":["*","/"]}]}}

I suggest you try with an actually user interaction, not just put the URL in the Safari address line.
Create simple web page with your link as an a ref and click on that.
This is the best test

Related

iOS URL scheme or not existing Universal Link

I was developing Android App that could be opened by url link sent to email. The domain exist but the path not (ex. google.com/abcdefgh1234). Im not an owner of the website so putting AASA file there is not possible. The link also contained jwt with some info that I was handling in the app. I wanted to do the same on ios but what I found, URL schemes doesn't support http and Universal Links need special file on that website. Is there a way to handle this on iOS?
You can check custom URL scheme https://developer.apple.com/documentation/xcode/allowing_apps_and_websites_to_link_to_your_content/defining_a_custom_url_scheme_for_your_app
It will work without adding special file to the server. You need only a special link and after a tap on it, you will be redirected to that app (if it exists on your phone). Maybe this is what are you looking for

ios Universal Links - from multiple domains

I have a question about the apple-app-site-association and where it should be deployed in the case where I have 2 (or more) websites that are going to display a URL that will direct a user to my app.
For instance, I have a main website where my AASA file is deployed here:
www.my-main-domain.com/.well-known/apple-app-site-association
With a wildcard in it like this:
"paths": ["/my-app/*"]
This means any link like this:
www.my-main-domain.com/my-app
Will open up in my app.
What if I have another website and I want to link to the app from there. The new site is:
www.my-other-domain.com
Can I link to the app using the same URL above? Do I need another AASA file deployed on the new domain?
Thanks
There is no need to make changes on this other site, I was given incorrect information. There was an issue with the way it was implemented in our app that was causing it to not work from other domains.

How to implement DeepLinking If user don't have app then?

I have 3 requirement for DeepLinking or Universal Links to my project.
If user is having the application then URL should redirect to application with content.
If user don't have the application then it should redirect to Appstore.
If user don't have the application then it should redirect to Appstore and after download the app it should go to that page with data which I am sending with URL.
Links which I followed:
https://www.raywenderlich.com/128948/universal-links-make-connection
https://developer.apple.com/library/content/documentation/General/Conceptual/AppSearch/UniversalLinks.html.
http://swiftdeveloperblog.com/deep-linking-using-custom-url-scheme/.
http://blogs.innovationm.com/deferred-deep-linking-in-ios-with-universal-link/
https://developer.apple.com/documentation/security/shared_web_credentials/preparing_your_app_and_website_to_share
http://www.brianjcoleman.com/tutorial-deep-linking-in-swift/.
What I understood is:
Creating and Uploading the Association File and for this I have to follow some steps:
Adding support for universal links is easy. There are three steps you need to take:
Create an apple-app-site-association file that contains JSON data about the URLs that your app can handle. Upload the apple-app-site-association file to your HTTPS web server. You can place the file at the root of your server or in the .well-known subdirectory. Prepare your app to handle universal links.
Creating and Uploading the Association File
To create a secure connection between your website and your app, you establish a trust relationship between them. You establish this relationship in two parts:
An apple-app-site-association file that you add to your website
A com.apple.developer.associated-domains entitlement that you add to your app
Preparing Your App to Handle Universal Links.
In your com.apple.developer.associated-domains entitlement, include a list of the domains that your app wants to handle as universal links. To do this in Xcode, open the Associated Domains section in the Capabilities tab and add an entry for each domain that your app supports, prefixed with applinks:, such as applinks:www.mywebsite.com.
Problem is: I followed all steps and I have a url I added it in the domain in my Associated Domain.
Example: https://<My_Domain>/anything.
Now Backend is generating URL and sending.
We are using Http server.
Example:
Route::get('appstore',function(){ return redirect()->away('https://itunes.apple.com/in/app/whatsapp-messenger/id310633997?mt=8');});
Problem is when I am clicking on that URL I am not getting any popup for already app and also After download how data I will get ?
Am missing something or backend is missing something?
So it seems like you are trying to accomplish deferred deep linking, which means you route the user to the content if the app is installed or you route the user to the app store to download the app and present them the content once the app is opened. This is very difficult to do by yourself and I'll explain more in a bit.
It looks like you are setting up your universal links correctly but the redirect to the app store is fairly hacky. Universal Links are meant to be used to redirect users to the web version, which means bringing them to the app store instead is no easy task.
If you do get the user to the app store, deferred deep linking which is just directing them to the content after they install the app is nearly impossible to do yourself without using a third-party service like Branch. Branch also will allow you to push users back to the app store to download the app, if that's the user experience your looking for.
Hope this helps!

Why can't Applebot crawl my website?

I am trying to set-up universal links for an iOS app.
The Apple search validator keeps failing when I try to validate the file apple-app-site-association with error message:
Unable to parse that webpage URL. Try a different URL.
The file content is correct, I tried with already validated files from other websites but it seems the crawler fails to access the website generally.
The domain and website are hosted on a shared server at 1and1.com without SSL. The file is not signed.
Any idea why that is?
This is the "App Search API Validation Tool", not the "Universal Links Validation Tool" (which doesn't exist from Apple). The results from this tool have no connection to whether Universal Links work or not.
That said, you must have SSL in order for Universal Links to work. That is the number one requirement. If you can't/don't want to set this up, look at an external link hosting service like Firebase Dynamic Links or Branch.io (full disclosure: I'm on the Branch team)
In reference to "you must have SSL in order for Universal Links to work. That is the number one requirement." This is no longer a requirement.
If your app runs in iOS 9 or later and you use HTTPS to serve the apple-app-site-association file, you can create a plain text file that uses the application/json MIME type and you don’t need to sign it.

Universal link test: Could not extract required information for application links

Trying to configure Universal Links for iOS 9. I am using Apple's validation tool:
https://search.developer.apple.com/appsearch-validation-tool/
Everything is passing except I get Action Required for Link to Application. The message is: "Could not extract required information for application links. Learn how to implement the recommended Universal Links." I have tried running the tool both from my desktop and from a device that I believe is properly configured. Universal Links are not working for me when I try them from Safari.
There is nothing in the linked documentation that explicitly explains what this required information might be.
What fixed it for me, is realizing that you must enter an actual URL in the validation tool, and not just the domain (root) >IF< your apple-app-site-association file specifies a sub-path.
In other words, if only part of your website redirects to an app, be sure to enter in the validation tool a URL that includes the subdomain!
[Spent all day figuring this out - LOL]
In my case the issue was with the '#' symbol in the link.
While apple-app-site-association file has the wild card to any "/?/foo/*" links, "/a/foo/bar" will pass while "/#/foo/bar" will not

Resources