Branch io: Setup custom domain for universal link - ios

I'm stucking at Domain is incorrectly set up; please use the nameservers below as your NS record.But before setup NS record, i want confirm something because the custom domain i'm using is belong to my client.
So when user click mydomain.com (not .app.link or anything from Branch), does app open? If user don't have app, does AppStore open?
2nd question: How do i edit AASA file? I want some link open app, some link open web.My current path in AASA file: "paths": ["/catalog/*", "NOT /blog/*.html", "/blog/*"]

Any domain, be it branch link or not needs to configured in the android manifest file so as for it to be a supported link for the app.
All supported links will open the app directly (if the user has the app).
For ios, these have to be declared in associated domains.
All App Links and Universal links help in improving customer experience by directly opening into the app.
It is possible to edit the AASA file as per your use case. You would need to raise a ticket to support#branch.io regarding your request and this will be answered to.
You can look into our documentation here so as to understand better : https://help.branch.io/using-branch/docs/advanced-settings-configuration#section-change-link-domain

Related

iOS Universal deeplinking without third party app

I am implementing universal deeplinking, I don't want to use any third party framework I have the domain and I have uploaded the apple-app-site association file. Now I want to test if everything is correct or not. How to create the universal link, how to specify ios url scheme and app id in the link ?
Universal Links do not look any different than normal links with your domain. If you registered your AASA at yourdomain.com/apple-app-site-association then yourdomain.com/?example=data should open your app. In the comments you mentioned you want it to open the app store if its not installed. You'll actually need to redirect your link to go to the app store. The Universal Link will not automatically handle that. So yourdomain.com/ will actually need to return a 301 redirect to the app store url. Branch links have that functionality built in if you'd like to save yourself a lot of time.

Universal link failing to redirect to app occasionally after OAuth

Our app sign-in flow involves redirecting our users to another app to sign in and authenticate followed by a redirect back to our app to complete the sign in process.
The redirect back to our app from the authenticating app is achieved by the calling of a universal link, this should always redirect the user back to our app, however for a select few users it seems to be opening safari and redirecting them to a page on our website instead.
We have a page set up on our site to handle just such an eventuality, the instructions on the page tell the user to click the 'open in app' link at the top of the page (the banner which ios inserts on all universally linked webpages) in order to open our app and complete the sign up procedure. However for some of these users this banner does not appear! It is as if there is no universal link set up at all. This means the users are unable to complete the sign up procedure and enter our app.
I've checked our universal link at the branch.io validator (https://branch.io/resources/aasa-validator/#resultsbox) and the results came back saying that everything was valid.
I also checked the link using apples 'App Search API Validation Tool' which returned the following message in the 'link to application' section:
Error no apps with domain entitlements
The entitlement data used to verify deep link dual authentication is from the current released version of your app. This data may take 48 hours to update.
Now this would seem to imply that we need to wait 48 hours from our most recent deployment for our universal link to become active, however the fact that the link works for the majority of people (including ourselves every time we have tested it) would imply that this is not the case.
We originally had our apple-app-site-association file uploaded at only the root of our webserver but I've now also uploaded it to .well-known/ just to be on the safe side though the issue still seems to be persisting.
Here is an anonymised version of our apple-app-site-association file:
{
"applinks": {
"apps": [],
"details": [
{
"appID": "1F5A4778Y4.com.Tested.Step",
"paths": [ "*", "NOT /privacypolicy/", "NOT /faq/", "NOT /terms/"]
}
]
}
I have retained the capitalisation which we have in the above file (the com.Tested.Step is capitalised in our actual apple-app-site-association file) I have not seen any other app id's which contain capitalisation in their reverse url section like this, could this be causing the issue?
So far we have managed to get some information from a few of these users and there seems to be no consistency in the app version (It seems happens equally to users of iOS 10.x and iOS 11 beta) and the issue is not resolved by the users deleting then reinstalling the app.
My question is thus is there anything which could suggest, given the above information, why some users are not being redirected to the app via the universal link? And furthermore are not seeing the banner at the top of safari offering to 'open in app'? Could this have anything to do with the error which was being returned from the App Search API Validation Tool?
Thanks in advance and please let me know if you require any additional information/clarification on any issues.
Update:
I've just discovered that the users in question having the issue seem to be not making calls to the apple-app-site-association file on our site, even after deleting the app and then reinstalling.
As your edit suggests, it sounds like these users are not successfully scraping the apple-app-site-association file on initial install.
The "App Search API Validation Tool" is not the "Universal Links Validation Tool" (which doesn't exist from Apple), so the results from this tool have no connection to whether Universal Links work or not. Officially, it is comparing your website's apple-app-site-association file to your app's listing on the App Store, so if the version of your app that is publicly available does not yet have Universal Links entitlements, that will cause these errors. However, Universal Links will still work fine with local builds. The version of your app in the App Store does not need to have Universal Links implemented in order to test what you are trying to do.
Your server may not be properly responding to all requests for the apple-app-site-association file, or there could be network issues on the user's end. You'd probably want to dig into logs, or attempt to test it at scale to see where things are failing.
Alternatively, look into a hosted deep link service like Branch.io (full disclosure: I'm on the Branch team) or Firebase Dynamic Links to absolve you of the responsibility 😉.

Understanding associated domain services and creating custom associated domain services

I've been doing a fair amount of research on universal links, handoff and associated domains on iOS. However, a lot of the documentation does go in depth of what is really happening under the hood with regards to associated domains (Well I couldn't find the documentation).
Here is what I understand so far:
Based the Universal Links, Hand off and Sharing web credentials documentation we have the following format when it comes to an associated domain:
<service>:<fully qualified domain>[:port number]
So when using universal links, the service isapplinks. When using hand off the service is activitycontinuation. When sharing of web credentials the service is webcredentials.
Whenever an app is downloaded theapple-app-site-association file is downloaded and stored on the phone and a registry is kept. For example lets work now with Universal Links.
Lets say my app in its associated domains section registers: applinks:com.example. Now lets say that when I get a link in an email that is www.example.com and I press this, I assume that the OS on the phone first checks the registry of all the applinks saved on the device and because a given app registers to com.example it then simply routes the URL to the given app that registered the com.example associated domain.
Question 1:Is this intuition correct?
If this is the case, I can't see any issue as a developer by creating my own web service i.e. mySpecialService:<Some-Domain> and in my apple-app-site-association file have something like:
{
"mySpecialService": {
"apps": [ "D3KQX62K1A.com.example.DemoApp",
"D3KQX62K1A.com.example.DemoAdminApp" ]
}
}
Question 2: Can developers create their own associated domain services? Or are associated domain services reserved by Apple?

Custom URL Scheme and http

Using my iPhone i noticed that when i open a youtube link like http://m.youtube.com/..., this is redirect to the native Youtube app.
I would like to do the same thing but using my custom url scheme, so i would like to have a custom url, if my app is installed in the device this is redirected in it, or if it's not installed, to do something else.
I've tried to register as a custom url scheme the "http://" url scheme, but the is not listening for these urls.
edit-
I've already tried to register my custom url scheme, i want to use an html page, in that page i want to put my custom url scheme, but the problem is that i can't detect, from the web page, if the app is installed in the device
Take a look to the Associated Domains.
If I understand well your question you need to define your own domain that will be associated to your app. Every time an app will find that specific domain the OS will check if any installed app can handle it.
You need to add the capabilities as specified by Apple here
Hope it helps
For that you need to create your custom URL Schema for that you can open via another app.
Following is the Tutorial where you can create your own URL Schema and use into your app.
Here is tutorial.
You can define custom url schemes that will open your app, but you can't make your app the designated handler for certain domain names so that opening that domain in Safari will launch your app automatically.
And One thing for more detail this solution given into this question also.
Happy coding.
You need to add your custom URL schemes in Info.plist. With this schema you can launch your app.

Add a link to my iPhone app before submission ("Catch 22")

I use the Facebook API for iOS, which enables posting content to the Facebook wall. The API allows custom links to be added next to "Like" and "Comment". I would like to add "Get App" here which links to my app on App Store, but how do I do this when my App ID will not be known to be before the app is actually approved? ("Chicken-and-egg" situation)
Possible solutions:
A) Link to a temporary URL which is changed to the App Store link after approval
B) Wait until version 1.1 to add this, when the App ID is known
Is there any other way to accomplish this?
You get an App ID once you create an app in iTunes Connect. That means you get the ID before you publish the app and it doesn't change when the app goes trough review or publishing process. I'm not able to make a screenshot right now, but it's easily found in top left corner when you click on manage apps > your app.
Some ISPs and independent providers offer domain name services that would help here, possibly.
I use EasyDNS, but there are other options.
The idea is that you register a domain name with them and purchase a plan that includes web forwarding. Web forwarding lets you send any web traffic for your domain to a specific URL.
You temporarily forward to any URL you like (presumably a page on your regular site, maybe a "Coming soon" page). Then, when you receive the real URL, change the forwarding to point there.
It might take a day or so for the change to percolate across the while interweb, but generally you can see and test results fairly quickly yourself, or at least that's been my experience.

Resources