Hello, I'm currently configuring Universal Links and I'm getting error SWCERR00201 from Apple CDN.
$ curl -I -v https://app-site-association.cdn-apple.com/a/v1/pamestoixima.gr
...
< Apple-Failure-Details: {"location":"http://www.pamestoixima.gr/.well-known/apple-app-site-association/"}
Apple-Failure-Details: {"location":"http://www.pamestoixima.gr/.well-known/apple-app-site-association/"}
< Apple-Failure-Reason: SWCERR00201 Insecure (non-https) redirects forbidden
Apple-Failure-Reason: SWCERR00201 Insecure (non-https) redirects forbidden
< Apple-From: https://pamestoixima.gr/.well-known/apple-app-site-association
Apple-From: https://pamestoixima.gr/.well-known/apple-app-site-association
...
I cannot understand why it is mentioning http as the AASA is hosted at pamestoixima.gr that uses https, not http. I can get it via accessing https://www.pamestoixima.gr/.well-known/apple-app-site-association/.
I would greatly appreciate any help on this.
Thank you
Universal Links
RSS for tagAllow your users to intelligently follow links to content in your app or to your website using universal links.
Posts under Universal Links tag
83 Posts
Sort by:
Post
Replies
Boosts
Views
Activity
Hello,
We're facing an issue with app links failing and falling back to browser website journeys. Our apple-app-site-association file is hosted publicly and the app to app journeys have been working correctly up to very recently - we are trying to identify any potential network infra changes that could have impacted the Apple CDN being able to retrieve the apple-app-site-association file.
We can see in the iPhone OS logs that the links cannot be verified by the swcd process, and using the app-site-association.cdn-apple.com/a/v1 api via curl can also see the CDN has no record of the AASA file.
Due to the traffic being SSL and to a high volume enterprise site it is difficult for use to trace activity through anything other that the source IPs - we cannot filter on user-agent for "AASA-Bot/1.0.0" as breaking the SSL would be impactful due to the load. Is it possible to get a network range used by the Apple CDN to retrieve the AASA file as this would help us identify potential blocking behaviour?
Thank you.
Hi!
Instead of using username/password authentication, I wanted to use a magic link to authenticate users of my app to simplify the process.
However, on the app review, it got rejected because of the magic link:
Guideline 2.1 - Performance - App Completeness
Issue Description
The app exhibited one or more bugs that would negatively impact App Store users.
Bug description: The Magic Link failed to open the installed app.
Review device details:
- Device type: iPad Air (5th generation)
- OS version: iPadOS 18.1
Next Steps
Test the app on supported devices to identify and resolve bugs and stability issues before submitting for review.
If the bug cannot be reproduced, try the following:
- For new apps, uninstall all previous versions of the app from a device, then install and follow the steps to reproduce.
- For app updates, install the new version as an update to the previous version, then follow the steps to reproduce.
Resources
- For information about testing apps and preparing them for review, see Testing a Release Build.
- To learn about troubleshooting networking issues, see Networking Overview.
I had no luck to reproduce this.
The magic links trigger my application on all my testing devices.
I also had external testers using TestFlight and it works for all of them as well.
The only time where I can see it failing is if I archive the IPA and install it on an external service like AWS Device Farm or BrowserStack App Live. But here it is very hard to debug because I think I cannot get the sysdiagnose file and I don't know if it is even supposed to work in this case because those devices are not associated with my developer account.
I read countless links, tutorials and discussions on this topic but it did not really help.
https://developer.apple.com/documentation/technotes/tn3155-debugging-universal-links
https://developer.apple.com/documentation/xcode/allowing-apps-and-websites-to-link-to-your-content
Here is my set-up:
I added the Associated Domains capability to my app.
There under Domains I put applinks:subdomain.domain.com
Under https://subdomain.domain.com/apple-app-site-association and https://subdomain.domain.com/.well-known/apple-app-site-association I host this file with JSON content header:
{
"applinks": {
"apps": [],
"details": [
{
"appID": "<TEAM>.<TestAppIdentifier>",
"paths": [
"/magiclink/*",
"/activate/*"
]
},
{
"appID": "<TEAM>.<Identifier>",
"paths": [
"/magiclink/*",
"/activate/*"
]
}
]
}
}
My main entry point of the app has a
.onOpenURL { url in
handleOpenURL(url)
}
on the ContentView()
If I go to https://app-site-association.cdn-apple.com/a/v1/subdomain.domain.com, I see the file correctly as I specified it above.
If I go on my development phone to Settings > Developers > Universal Links > Diagnostics and I enter one of the "magic links" into the field, it says with a checkmark Opens Installed Application.
https://getuniversal.link/ says my AASA file is valid.
Any suggestion on what I could do to further debug or resolve this is highly appreciated.
I am working on an app on which I want to develop a feature to install eSIMs. I am trying to follow the approach of installing the eSIM with the Universal Link solution by appending the activation code to the link https://esimsetup.apple.com/eSIM_QRCode_Provisioning?carddata=.
I was able to successfully call the link and install the eSIM. But after installation, the user stays on the settings app.
Is it possible to bring my app back to foreground after installation? Furthermore, is there a way I can listen to the installation result from my app?
I need my app to open all other links except domain.com. But clicking on domain.com still opens the app though I have added 'excluded': true.
Below is my aasa file
{
"applinks": {
"apps": [],
"details": [
{
"appID": "com.domain",
"paths": ["NOT /"],
"components": [
{
"/": "/",
"exclude": true
},
{
"/": "/biz/*"
},
{
"/": "/offers/deal-detail*",
"?": { "oId": "*" }
},
{
"/": "/review/*"
},
{
"/": "/emailActionHandler*"
}
]
}
]
}
}
I have also tried to verify this with swcutil tool, and it gives the right matches and blocks 'domain.com'. But the actual behavior on an iOS device is not the same.
Deeplinks in our Mobile (native) application work fine from email clients such as Gmail and Outlook with a default browser such as Safari. If the app is already installed, clicking the link launches it.
However, when we click on the same link from Outlook email with the default browser, Edge, it opens directly in the browser, because any external links in Outlook email route through safe links, which prevents deep linking to the APP.
The current behavior is as follows:
When Safari is the default browser, the process works seamlessly, and the app opens directly. outlook->deep link pressed -> redirect to safari ->opens the app if already installed
However, when Microsoft Edge is set as the default browser, it opens the App Store link in a popover, with an option to open the app if installed.
outlook->deep link pressed -> redirect to Edge->opens the app store inside edge even app already installed
Note : outlook is enforcing safe link policies and also App protection policies.
I would like to achieve the same behavior with Microsoft Edge as with Safari, where the app opens directly rather than redirecting to the App Store.
Is there a specific configuration or workaround to ensure that Microsoft Edge, when set as the default browser, opens the app directly instead of redirecting to the App Store?
Any insights or suggestions would be greatly appreciated.
I am expecting that this safe link works the same as works with a safari in iOS Devices. I have also tried this - https://learn.microsoft.com/en-us/mem/intune/apps/app-protection-policy-settings-ios#exempt-universal-links but not working I'd appreciate it if you could assist me with this matter as soon as possible. How to handle deep links in Outlook when using a default browser like Edge
I'm developing two native apps and one is a authentication app and other one is business app. In the main flow if buisness application is on the foreground and did nothing for at least 10 minutes it will automatically time out and redirect to the autentication app for token refresh. In this flow universal link redirect to the authetication app without opening Safari.
But if i execute the below flow buissness app redirect to the Safari.
Buisness App In Foregorund → Displaying a OS screen while app is in Foreground(Like Push Notification Center) → On this satate leave device for 10 minutes → Buisness app will automatically timeout and rediret to Safari(In safari 「NoSuchKey The specified key does not exist.」message is displaying but authentication app Universal link Start button is showing) → After click the Universal Link start button in Safari Authentication App open.
I use the below code to start the Universal Link:
if let url = URL(string: path) {
UIApplication.shared.open(url)
}
So i would like to know is there a special reason that when Displaying a OS screen while app is in Foreground(Like Push Notification Center) affect the normal flow of Universal redirection to another app?
We are encountering an issue with the universal link functionality in our app, which was previously working as expected but has now stopped functioning
We have followed all the steps to configure universal links and ensured the necessary settings are in place. The associated domains are enabled within our app's capabilities, with the following domains listed:
We have also verified the apple-app-site-association files for both servers, which are accessible via the following URLs:
https://app.digiboxx.com/apple-app-site-association
These files appear to be correctly formatted according to Apple's guidelines. However, despite this, links such as https://app.digiboxx.com/share/123456 are no longer redirecting to the app.
This is a significant issue for our customers, and we would appreciate your help in resolving the matter.
Hello there!
My problem concerns Universal Links:
My website is https://www.xn--voil-3na.app/ and has a proper apple-app-site-association set, which is validate by all validators, and also well cached on Apple side. (requested with curl https://app-site-association.cdn-apple.com/a/v1/xn--voil-3na.app)
My app is voilà and :
My provisioning profile allows Associated Domains
I can see the associated domains is well defined to xn--voil-3na.app on XCode
My AppID and bundle (in the entitlements) are matching the ones on my apple-app-site-association
After having made all the debugs following the docs, i'm wondering if the problem doesn't come from my international domain name.
Really looking forward some help, as my application is growing (really) fast and I'd like to serve this feature to my users...
Sincerly,
AB from voilà
We’re trying to get Passkeys to work with iOS and macOS Catalyst.
Apple fails to accept the associated domain, without giving a reason why.
The JSON is correct and shows up on Apple’s CDN.
We are stuck.
Hi,
We have an IPv6 only server setup, where we have put AASA file as required:
https://qa-jen.noknoktest.com/.well-known/apple-app-site-association
But Apple CDN does not found it:
https://app-site-association.cdn-apple.com/a/v1/qa-jen.noknoktest.com
Is there any restriction on IPv6 only servers?
Everything works with our other IPv4 servers.
Note: With alternate mode configuration in application, the AASA is accessible to devices.
There is no any geo restriction or IP filtering for server.
What is missing to force CDN cache the file fro mentioned server?
Hi! We are having a hard time with the universal link, help is appreciated! Thanks in advance!
The universal link doesn't work after installation for some time. A user has to wait for from 5 to a couple of hours after the app is installed on the device.
This has also affected App reviewers since we need the universal link to work for successful login. Each submission will receive a rejection of we cannot login and it will be approved until we kindly ask them to try again.
I believe the JSON is delivered to devices by Apple's CDN system and the fact that it works on most devices most of the time should imply that we have a valid apple-app-site-association setup.
So I am really confused about the wait time, which is giving us trouble with app review and a bad user experience
Hi Team,
Universal linking is not working with safelink and when using the amazon SES.
https://docs.aws.amazon.com/ses/
When we have email template and click on the links we are unable to open the app with safe links, does anyone faced this problem before for when using safe link with amazon SES or any other services.
Please help me to resolve this issue as soon as possible.
I am struggling getting universal links/applinks working for an App Store Event. I have been through the docs and various troubleshooting methods a number of times and cannot figure out why the universal link is not opening the app.
Here's the apple-app-site-association file we have hosted on our website in .well-known (full url https://binaryformations.com/.well-known/apple-app-site-association):
{
"applinks": {
"details": [{
"appIDs": ["com.BinaryFormations.UnderMyRoof"],
"components": [{
"/": "/umrappevent/*",
"comment": "Matches any URL whose path starts with /umrappevent/"
}]
}]
}
}
Here's the configuration in the Associated Domains section in Xcode:
I've also implemented scene(_ scene: UIScene, continue userActivity: NSUserActivity) in the window scene delegate.
Just to see if it might solve the problem, I also implemented application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([any UIUserActivityRestoring]?) -> Void) -> Bool in the application delegate.
I've been testing with this URL, among others, and the app is not being opened:
https://binaryformations.com/umrappevent/9999
I've tried every troubleshooting technique I could find, including the once mentioned in TN3155 on debugging universal links (https://developer.apple.com/documentation/technotes/tn3155-debugging-universal-links) and everything seems to be as it should. Here's a summary of what I've tried so far:
Checked that the CDN was returning the correct apple-app-site-association file:
https://app-site-association.cdn-apple.com/a/v1/binaryformations.com
Ran the following test with curl to verify there are no redirects (it returned with the response code of 200):
curl -v https://binaryformations.com/.well-known/apple-app-site-association
Using the above mentioned apple-app-site-association file as test.json, I randomly this test using swcutil and the URL seems to match fine:
sudo swcutil verify -d binaryformations.com -j test.json -u https://binaryformations.com/umrappevent/9999
{ s = applinks, a = com.BinaryFormations.UnderMyRoof, d = binaryformations.com }: Pattern "https://binaryformations.com/umrappevent/9999" matched.
Associated Domains Development Diagnostics on the phone seem to indicate everything is okay with the URL:
Last one: after installing a build from TestFlight on an iPhone (iOS 18), I see this in the swcutil_show.txt file from a sysdiagnose after trying the following link:
https://binaryformations.com/umrappevent/9999
Service: applinks
App ID: G52SXV33MH.com.BinaryFormations.UnderMyRoof
App Version: 20240910.0
App PI: <LSPersistentIdentifier 0x4f8026100> { v = 0, t = 0x8, u = 0x474, db = 52D70E5E-2E19-4D2C-ADA7-1E6154CA1AFA, {length = 8, bytes = 0x7404000000000000} }
Domain: binaryformations.com
User Approval: unspecified
Site/Fmwk Approval: denied
Flags:
Last Checked: 2024-09-11 15:36:17 +0000
Next Check: 2024-09-16 15:17:08 +0000
I'm sure I'm doing something silly that I just keep overlooking, but cannot seem to figure it out. Is there anything that's jumping out from all of this that I'm missing? Is there any way to get more information from the diagnostics as to why the rule was denied or anything else I should try?
Thank you in advance.
Hello there, I try to add universal links to my app but get some problems. When I started researching how I can test it I found a lot of talks about App Search API Validation Tool. But this service is not open for me, I'm always redirected to the home page. Is there something wrong with me or is this service not working at all?
While we have shared any product link to the user.
If the user doesn't have our app, it will be taking him to the app store and after installation, we need to show that product page to him.
So, how can we get that shared link after installing the app from the app store. Can you share any reference code if available.
Our app includes showing external web service with WebView or Safari and returning to the app with custom URL scheme or universal link.
When we set "Hide and Require Face ID" feature which was available on iOS 18, neither custom URL scheme nor universal link activated the app.
If we only set "Require Face ID", the deep link worked properly.
Here is what we've tried:
Define custom URL scheme or universal link in the app
https://developer.apple.com/documentation/xcode/defining-a-custom-url-scheme-for-your-app
https://developer.apple.com/documentation/xcode/supporting-universal-links-in-your-app
Implement external web service with one of the following frameworks
ASWebAuthenticationSession
https://developer.apple.com/documentation/authenticationservices/aswebauthenticationsession/
SFSafariViewController
https://developer.apple.com/documentation/safariservices/sfsafariviewcontroller
Safari
WKWebView
https://developer.apple.com/documentation/webkit/wkwebview
On iOS 18 device, install the app and set "Hide and Require Face ID"
Access external web page and tap the link which activates custom URL scheme or universal link
We expected the deep link to work, but the results were:
Custom URL scheme &amp; ASWebAuthenticationSession/SFSafariViewController/Safari
The system shows "Cannot open the page because the address is invalid"
Custom URL scheme &amp; WKWebView
Nothing happens when tapping the link
Universal link
Directed to the server with associated domain file, but the system doesn't call the app which is defined in the associated domain file
We tested the feature with the app built with Xcode16 beta 6, and the device with iOS 18 Seed 8(22A5350a).
Does hide app feature support custom URL scheme and universal link?
We have universal links which takes user to various journeys in the app when user clicks on the link, however it works only when app is installed. If app is not installed link takes user to the App Store and when the user installs and opens the app, the link does not launch the intended deeplink flow.
Is there any way we can pass context to app store and receive it when user opens the app?
Android provides similar functionality using install referral lib. Checking if similar is possible in iOS.
We need to read the value for userActivity.referrerUrl when the app is accessed through a Universal Link, which when using the UIKit lifecycle we can easily do by implementing the method scene(_: UIScene, continue: NSUserActivity) in SceneDelegate and filtering for activity type of NSUserActivityTypeBrowsingWeb.
When the app uses the SwiftUI lifecycle that method doesn't get called, even though the app is correctly configured to use AppDelegate and SceneDelegate (through the @UIApplicationDelegateAdaptor wrapper). I can confirm that the setup is correct because the method scene(_: UIScene, willConnectTo: UISceneSession, options: UIScene.ConnectionOptions) in SceneDelegate is called on app launch.
The obvious SwiftUI way of achieving the same would be by using the .onContinueUserActivity(NSUserActivityTypeBrowsingWeb) modifier, but that doesn't work. Is this a bug?
We use universal links for an email link sign-in flow. In the last few days, we have received several reports of the links opening the browser instead of the app. Many other new users are able to sign-in with no problem.
Our AASA file has not changed and is hosted via an S3 website, which should have extremely high availability.
Anybody know what might cause this? How can I go about diagnosing it?
Thanks
Jacob