Apple-app-site-association file not linking to application - ios

Even after 48 hours, as said in apple documentation, apple-app-site-association is not working in my application. I have checked with [apple validation tools] (https://search.developer.apple.com/appsearch-validation-tool/) but its showing Error no apps associated with url in the Link to Application. Here is the format of my apple-app-site-association file
{
"applinks": {
"apps": [],
"details": [{
"appID": "{team_id}.{bundle_id}",
"paths": ["*"]
}]
}
}
I have also enabled Associated Domains for the appId from developer.apple.com and in the XCode capabilities settings also.
I have already tried [this] (iOS Universal Links not working via TestFlight)
Also check the Apple Developer Forum but couldn't find a solution there also.

Little late to this thread but if you want Apple to call your app-site-association file each time the app is installed, simply do this:
applinks:[domain]?mode=developer
This way you can change the settings of the file while developing!

Make sure you are following these steps
Enabled Associated Domains in the app App services from the developer.apple.com
Set the domain name correctly in the Associated Domains in the Xcode capabilities and also enabled this.
You have correctly generated the apple-app-site-association file. The file must not have any extension. Here is the format for the file:
{
"applinks": {
"apps": [],
"details": [{
"appID": “{app_prefix}.{your_app_bundle_identifier}”,
"paths": ["*"]
}]
}
}
Make sure apps tag in the file is be empty and appID is made up of your app Prefix and bundle identifier separated by.
NOTE: I don't know why but I am using app prefix instead teamID as mentioned in most of the posts and even on the apple documentation. But it didn't work for me.
You can also try by using app prefix of the app id instead of teamID

Related

Does universal link work on the apps from enterprise program?

I've followed instructions from the apple for enabling universal links.
Following is my aasa file
{
"applinks": {
"apps": [],
"details": [
{
"appID": "app.store.app",
"paths": ["*"]
},
{
"appID": "enterprise.app",
"paths": ["*"]
}
]
}
}
I am able to use universal link for the app store app. But I've never been able to open links for the enterprise app(apps that are created for internal distribution https://developer.apple.com/programs/enterprise/)...
I have followed https://developer.apple.com/library/archive/documentation/General/Conceptual/AppSearch/UniversalLinks.html and made sure that "The appID value is the same value that’s associated with the “application-identifier” key in your app’s entitlements after you build it". I have also check the entitlement file having the domain
Is there any document from Apple stating that enterprise apps cannot use universal link?
Thanks in advance!
YES
In order to allow such a behavior, be sure to provide the apporiate TEAMID in the json file, as described https://developer.apple.com/documentation/uikit/inter-process_communication/allowing_apps_and_websites_to_link_to_your_content/enabling_universal_links
"details": [{
"appID": "D3KQX62K1A.com.example.photoapp",
"paths": ["/albums"]
Moreover if your internal apps point to another server than the public one, remind to add a new associated domain in your app capabilities
Do not forget to remove the the developer mode from the associated domain when you are going to distribute your application.
We had the issue that Universal Links didn't work for a distributed Enterprise Application.
Removing the developer mode fixed it.

Not able to setup Deep linking or Universal linking for ios app

I am a newbie in ios development and working on Universal deep-linking.
I have added apple-app-site-association file to my website. (I have validated the file)
Client enabled Associated Domains feature for the app and added me as a team member.
He has an individual account and sent me an invitation for the app.
I have a couple of questions:
Do I need to enable signing with my account (created by invitation) for Universal deep linking to work in the development phase?
If yes then Issue is that I am getting "Your development team, "Bhaskar Dabhi", does not support the Associated Domains capability." maybe because he couldn't enable access to certificates, identifiers and profiles. Does he need to enable "access to certificates, identifiers and profiles" for me to Universal deep linking to work?
if No then Universal deep linking is not working. not sure why.
I went through a couple of tutorials but couldn't figure out if it's because of signing in.
Universal Links
Step 1: Register your app at developer.apple.com.
Step 2: Enable ‘Associated Domains’ on your app identifier.
Step 3: Enable ‘Associated Domain’ on in your Xcode project.
Step 4: Configure your website to host the ‘apple-app-site-association’ file
AASA (apple-app-site-association) File
{
"applinks": {
"apps": [],
"details": [
{
"appID": “*****.com.*****.ios",
"paths": [
"*"
]
}
]
}
}
Step 5: Host your AASA file on your domain. After validating it using AASA validator.
Refer: https://developer.apple.com/ios/universal-links/

Apple association file fetched in development but not in TestFlight and App Store

Universal links work perfectly fine in development, but once I sign the applications and deploy them to TestFlight and App Store, it looks like the apple-app-site-association is not fetched and therefore the app isn't registered for oppening the universal links.
1. /.well-known/apple-app-site-association file:
{
"applinks": {
"apps": [],
"details": [{
"appID": "myteamid.com.mycompany.appName",
"paths": ["*"]
}]
}
}
The server part looks OK, since it is successfuly fetched whenever I run the app via the cable on my phone.
App Search API Validation tool returns this for Link to application:
Action required
Could not extract required information for Universal Links. Learn how
to implement the recommended Universal Links.
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.
2) Capabilities:
Associated domains - ON with Domain list of:
applinks: link.mycompany.com
Other things I have turned on are: Push Notifications and Background Modes.
3) Provisioning profile:
I created a new one after adding the Universal links and Push notifications and it includes:
Capabilities:
Associated Domains,
List item
Game Center,
In-App Purchase,
Keychain Sharing,
Push Notifications.
Entitlements:
get-task-allow,
app-enviroment,
com.apple.developer.associated-domains,
com.apple.developer.team-identifier,
application-identifier,
beta-reports-active,
keychain-access-groups
4) While installing the app, it behaves different in test flight then it does when loading via cable:
Via cable I can see the successfull http request for the apple-app-site-association file and finally form the process swcd: "Added service 'applinks', appID 'myteamid.com.mycompany.appName', domain 'link.mycompany.com' "
Test flight - when installing there is no sign of http request and the following line is shown if I previously had the app installed via cable: "Removed service 'applinks', app ID 'myteamid.com.mycompany.appName', domain 'link.mycompany.com' (removed domain) "
This of course results in the fact that whenever I install the app via TestFlight or Describution, the Universal links do not work.
Any ideas where it goes wrong?
I finally got to the bottom of this with help of Apple Developer Technical Support. In my (cordova) project folder there are two files:
Entitlements-Debug.plist
Entitlements-Release.plist
When I add the value applinks:mywebpage.com to Capabilities->Associated domains->Domains, the Entitlements-Debug.plist got the lines:
<key>com.apple.developer.associated-domains</key>
<array>
<string>applinks:mywebpage.com</string>=
</array>
BUT the Entitlements-Release.plist did not change. What I did to solve the issue is to copy-paste the generated lines form the Entitlements-Debug.plist. After this, I did the exact same Archive and upload process as before and everything worked fine.

Universal Link not working

I need to open my app from the email.
this is the email url: http://staging.imixedtape.com/accept_invite?token=be484a99b1f4554e42b7232dc2268c5e
And for this i need to integrate universal link in my app.
this is my apple-app-site-association file which opens via:
http://staging.imixedtape.com/apple-app-site-association
it returns:
{
"applinks": {
"apps": [],
"details": [
{
"appID": "ZVDN92A33X.com.lemondeit.mixedtape",
"paths": ["*"]
}
]
}
}
Still my app is not opening up from the link provided above.
I have added the domain "staging.imixedtape.com" in the associated domain capabilities tab.
I don't know what's left. also the apple-app-site-association file is uploded onto the root of the server.
Also i have edited my scheme to Release rather Debug, and i am testing it on the real device

Universal links doesn't work

This is my apple-app-site-association file:
{
"applinks": {
"apps": [],
"details": [
{
"paths": [
"*",
"\/doubanapp\/*",
"\/authorHome"
],
"appID": "KV99XUUJ3U.com.moer.MoerFinance"
}
]
}
}
I already set Xcode Associated Domains, this is my screenshot:
I use https://search.developer.apple.com/appsearch-validation-tool/ test my domains,but get error:
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.
If my app must be released then wait for 48 hours?
There is no requirement that your app be live in the App Store for Universal Links to work.
However, looking at https://moer.jiemian.com/apple-app-site-association and https://moer.cn/apple-app-site-association, both are serving invalid SSL certificates. iOS will reject these, which breaks Universal Links.
I'll put in a shameless plug here for Branch.io (full disclosure: I'm on the Branch team), in case you're just looking for simple deep linking and don't want to deal with these set up details.
For the self-signed cert issue, have you tried adding ?mode=developer to the URL in your entitlements (e.g. applinks:mydomain.com?mode=developer) for the Associated Domains?
This is the format for the domain when you're using an untrusted cert:
<service>:<fully qualified domain>?mode=<alternate mode>
with
<alternate mode> set to developer as in my example above
Docs say:
developer
Specifies that only devices in developer mode can access the domain. In this mode, you can use any valid SSL certificate on your web server, including a certificate the system doesn’t trust. Make sure you don’t expose your users to security issues, such as man-in-the-middle attacks. As an added precaution, only apps signed with a development profile can use developer mode, and users must opt in on any device they use.
Here's the reference documentation from Apple - scroll to the bottom of the page:
https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_developer_associated-domains

Resources