Universal Links

RSS for tag

Allow your users to intelligently follow links to content in your app or to your website using universal links.

Universal Links Documentation

Posts under Universal Links tag

93 Posts
Sort by:
Post not yet marked as solved
0 Replies
25 Views
An archived documentation article about Universal Links, https://developer.apple.com/library/archive/documentation/General/Conceptual/AppSearch/UniversalLinks.html states: "In your com.apple.developer.associated-domains entitlement, include a list [...], prefixed with applinks:, such as applinks:sub.mywebsite.com. Limit this list to no more than about 20 to 30 domains." This document was updated last in 2016 and it appears to be archived since 2018. Newer documentation, like https://developer.apple.com/documentation/xcode/supporting-associated-domains or https://developer.apple.com/documentation/xcode/configuring-an-associated-domain do not mention any limitations and since iOS 14 there is also an Apple provided CDN that apps use to fetch domain association data, which lets one think that the limit may have been lifted. However, I'm in the process of implementing universal links and shared web credentials for a portal app with many customers, a few hundreds of them have their own domain, and would like to be sure this is supported before putting all the work into it. So if anyone with a similar setup or someone from Apple could share/verify that there is no such limit anymore (or if any, what number) I would highly appreciate it. Bests bbjay
Posted
by bbjay.
Last updated
.
Post not yet marked as solved
0 Replies
43 Views
I have managed enterprise app. universal link is working as expected from the safari but when I tried the same functionality from the managed edge browser, edge does not detect the universal link. Unable to open our managed app from the edge browser, although from the safari it's working as expected. Unable to open our managed app from the outlook/Team. although from a non-manged app, we can open our managed app. Does edge browser support universal link? iOS version : 17.4.1
Posted
by Rahul_EZ.
Last updated
.
Post not yet marked as solved
11 Replies
506 Views
I have published the app on the App Store along with its corresponding app clip, my app clip is configured with some advanced experiences for each one of my clients, but whenever some users try to scan an NFC or QR Code they see the card rendering correctly with their configured banner image, but with the message "App Clip Unavailable". The weird thing is that both iMessage and the website to which the associated domain is set and the apple-app-site-association is stored, renders the banner or card correctly, and when the users tap the banner or card they open the advanced app clip experience correctly without any issue. I have attempted to troubleshoot the issue by checking the following: if the app clip is below 15MB if we are using a second level domain in my associated domain both for my app clip and app (excluding the www subdomain). checking if the AASA is correctly stored inside .well-known directory checking the configuration for the advanced experience I opened a case: 102233443873, and added a bunch of videos and screenshot showcasing the issue, but I have not yet received a reply
Posted Last updated
.
Post not yet marked as solved
0 Replies
108 Views
Hi, I have added associated domains support for our desktop app and it works fine on my machine. But when I deploy it on other machines, it is not launching. It throws ‘The application ““ can’t be opened” message. It works fine when I install provisioning profile on those machines. Xcode is not allowing me to code sign the app manually as part of build process. Till now we were **** the same for other apps. Associated domain need a provisioning profile and I have created one distribution profile and code signed it. Now it works fine only on my machine and not working on other machines. It works only on other machines if I install provisioning profile. What should be the issue? How do I work this macOS app on other machines without installing provisioning profile?
Posted
by maju.
Last updated
.
Post not yet marked as solved
1 Replies
341 Views
Hello. Here is my AASA file (my appID changed): { "applinks": { "apps": [], "details": [ { "appIDs": [ "A123B4567C.app.myapp.tool" ], "components": [ { "/": "/en", "exclude": true }, { "/": "/en/*", "exclude": true }, { "/": "/workspace/*", "exclude": true }, { "/": "*" } ], "paths": [ "NOT /en", "NOT /en/*", "NOT /workspace/*", "*" ] } ] } } I need to open all links with my app except those with excluded flag. When I open 'right' links, my app opens them (that's great). When I open excluded link (e.g. https://myapp.app/workspace/personal) Safari opens it (that's great) but then the app is launched (that's what not expected). What I already checked: added the old "paths" property (it wasn't there originally) rebooted my device reinstalled my app from the TestFlight then from the AppStore asked ChatGPT used AASA validator (branch.io one) cleared Safari cache checked my links for redirects What else can I check? Thanks.
Posted
by Trand.
Last updated
.
Post not yet marked as solved
0 Replies
104 Views
We've got a AASA file on our site that has a list of URLs that our App can handle. These URLs follow a REST standard, but also have resource identifiers in them, for example /site/:siteId /site/:siteId/service/:serviceId Our service IDs are limited to specific numbers, which we've hardcoded in our AASA file so that only specific service URLs will open. Our AASA file looks like the below { "applinks":{ "apps":[], "details":[ { "appID":"${appIdPrefix}.${bundleIdentifier}", "paths":[ { "/":"site/*/service/1/" }, { "/":"site/*/" } ] } ] }, "webcredentials":{ "apps":[ "${appIdPrefix}.${bundleIdentifier}" ] }, "appclips":{ "apps":[ "${appIdPrefix}.${bundleIdentifier}.clip" ] } In this example, hitting a URL like /site/1/service/1 works correctly - however, hitting a URL like /site/1/service/999 will also open the app, despite it not being a valid URL. I'm assuming that the wildcard on site/*/ is causing the invalid URL to match. How can I set my AASA up so that the site ID can still be any value, but the URL is matched strictly?
Posted
by jmof.
Last updated
.
Post not yet marked as solved
0 Replies
214 Views
This page describes the procedure to create deep links in iOS. I was able to launch an IOS Companion app (name of the app in my case) using its deep link. But the same is not working in AppleWatch. This is my plist to register a custom scheme - Companion: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>CFBundleURLTypes</key> <array> <dict> <!-- <key>CFBundleTypeRole</key> <string>Viewer</string> --> <key>CFBundleURLName</key> <string><some unique ID></string> <key>CFBundleURLSchemes</key> <array> <string>Companion</string> </array> </dict> </array> </dict> </plist> I have implemented onOpenURL(perform:) to handle app launches using a deep link (url). var body: some Scene { WindowGroup { ContentView() .onOpenURL(perform: { (link: URL) in Log(String(format: "Link = %@", link.absoluteString)) // Use then deep link }) } } In iOS, I tested deep links in two ways: Wrote the full deep link in Notes app and tapped it. Created another app called AppLauncher with a Button saying 'Launch using Deep link'.... which when clicked opens the deep link using open(_:options:completionHandler:). Both the approaches work in iOS, but in watchOS, I can only try 2 because Notes app is not available for AppleWatch. So, I created another watchOS app called AppLauncher, which displays a SwiftUI Button saying 'Launch using Deep link', which when tapped, tries to open the link using openSystemURL(_:). But as mentioned in the documentation (linked earlier), Opens the specified system URL. this API only works for links associated with System apps i.e., Apple's call and message apps. So, how else can I use deep link to launch another app? I believe it's possible to launch an app using its deep link because the info.plist keys required to define a deep link scheme association (CFBundleURLTypes, CFBundleURLSchemes etc) is valid for watchOS too.
Posted
by GangOrca.
Last updated
.
Post not yet marked as solved
1 Replies
267 Views
I'm running my Capacitor app on my iPad on Developer mode and I haven't been able to get the Universal Link working. https://my-domain.com//.well-known/apple-app-site-association in browser and via curl correctly returns the file. running sudo swcutil dl -d https://my-domain.com --verbose returns SWCErrorDomain 8 { Domain: "<_SWCDomain 0x600002c92d80> https", Line: "532", Function: "-[SWCDownloader(Private) _downloadAASAFileForDomain:applicationIdentifier:downloadRoute:discretionary:completionHandlers:]_block_invoke" } I made my way down through here: <https://developer.apple.com/documentation/technotes/tn3155-debugging-universal-links#Host-and-verify-your-AASA> I continued onto the next section, but swcutil_show.txt file doesn't list my app even after uninstalling and re-deploying the app. Any help is appreciated!
Posted
by hberrybee.
Last updated
.
Post not yet marked as solved
0 Replies
200 Views
I have an application which supports universal links. Say it supports the domain www.example.com and thus universal links can be easily opened via this. We will have applinks:www.example.com in associated domains. Now say if I want to release another app and it also supports the same domain. Now how will iOS distinguish which app to open via universal links..?
Posted Last updated
.
Post not yet marked as solved
0 Replies
176 Views
Subject: Inquiry Regarding Placement of .well-known Folder for Hosting apple-app-site-association File I am writing to inquire about the placement of the .well-known folder for hosting the apple-app-site-association file. Currently, we are working on configuring deep linking for our iOS app, and we have encountered a question regarding the appropriate location for hosting the apple-app-site-association file. Our domain, service2-uat.mom.gov.sg, hosts various web assets, and we are considering placing the ".well-known" folder in a non-root directory, specifically at "https://service2-uat.mom.gov.sg/fwmc/api/stg/permanent/.well-known/apple-app-site-association", instead of the root directory. Before proceeding with this configuration, we wanted to confirm whether it is permissible and supported by Apple's specifications and requirements. Our objective is to ensure compliance with Apple's guidelines while optimizing our server structure. Could you please provide guidance or clarification on whether hosting the .well-known folder in a non-root directory is acceptable for serving the apple-app-site-association file? Additionally, if there are any specific considerations or best practices related to this configuration, we would greatly appreciate your insights. Thank you very much for your assistance in this matter. We look forward to hearing back from you soon. Best Regards, Senthil S
Posted
by senthil_s.
Last updated
.
Post not yet marked as solved
0 Replies
199 Views
The universal link for my app was working perfectly fine 2 days before but suddenly it stopped working. We have not changed applinks, or AASA file for long time.
Posted
by Kishan21.
Last updated
.
Post not yet marked as solved
0 Replies
416 Views
I followed the steps in this https://docs.flutter.dev/cookbook/navigation/set-up-universal-links to implement universal links and created a link that I published to the App Store. However, when I click on the deep link, I receive a 404 error in the browser saying the page can't be found. When the app is installed, all the redirections with the deep link work correctly. My problem is navigating to the App Store to the app's page. What should I check, and how can I determine if the problem is in the apple-app-site-association file or in some setting in the app? I try to add * like prefix on url in app setting but this don't help.
Posted Last updated
.
Post marked as solved
1 Replies
417 Views
I have a SwiftUI app which supports a launch from a configured universal link. I'm following this documentation. When the app is not running and I tap a universal link, app launches. This proves the association of the website and the app. Now, when the app is already running in the background, and then I tap a universal link, things don't work as expected. Quoting from the documentation If your app has opted into Scenes, and your app is not running, the system delivers the universal link to the scene(:willConnectTo:options:) delegate method after launch, and to scene(:continue:) when the universal link is tapped while your app is running or suspended in memory. I've implemented scene(_:continue:) in my SceneDelegate but it never gets invoked. I'm pasting some relevant logs AppDelegate.application(_:willFinishLaunchingWithOptions:) AppDelegate.application(_:didFinishLaunchingWithOptions:) AppDelegate.application(_:configurationForConnecting:options:) SceneDelegate.scene(_:willConnectTo:options:) SceneDelegate.sceneWillEnterForeground(_:) NSNotificationName(_rawValue: UIApplicationWillEnterForegroundNotification) SceneDelegate.sceneDidBecomeActive(_:) NSNotificationName(_rawValue: UIApplicationDidBecomeActiveNotification) Now, I background the app... SceneDelegate.sceneWillResignActive(_:) NSNotificationName(_rawValue: UIApplicationWillResignActiveNotification) SceneDelegate.sceneDidEnterBackground(_:) NSNotificationName(_rawValue: UIApplicationDidEnterBackgroundNotification) App runs in the background... Now, I tap a Universal link SceneDelegate.sceneWillEnterForeground(_:) NSNotificationName(_rawValue: UIApplicationWillEnterForegroundNotification) SceneDelegate.sceneDidBecomeActive(_:) NSNotificationName(_rawValue: UIApplicationDidBecomeActiveNotification) As shown in the logs above, there is no trace of scene(_:continue:). func scene(_ scene: UIScene, continue userActivity: NSUserActivity) { Log("SceneDelegate.scene(_:continue:)") guard userActivity.activityType == NSUserActivityTypeBrowsingWeb, let universalLink = userActivity.webpageURL else { Log("Not launched via universal links!") return } Log(String(format: "userActivities = %@", String(describing: userActivity))) Log(String(format: "universalLink = %@", universalLink.absoluteString)) StaticContext.dataFromMainApp = universalLink.absoluteString StaticContext.viewController.updateLabelWithLink() } What am I missing here?
Posted
by GangOrca.
Last updated
.
Post not yet marked as solved
0 Replies
345 Views
I am trying to Execute Universal Link of Netflix show from My App in tvOS 17.2 When I Call the open(_:options:completionHandler:) to execute the Link it does open the Netflix App but open the landing page of Title. I have tried different alternative links but all has same behaviour. The same Link works in iOS ans iPad OS. Here the links that I have tried and the code that handles the universal Link. http://www.netflix.com/title/81731618 nflx://www.netflix.com/title/81731618 // Handle remote notification here // For example, extract deep link and perform appropriate action if let deepLink = userInfo["deep_link_key"] as? String { // Handle the deep link here print("Received Deep Link: \(deepLink)") if let url = URL(string: deepLink) { UIApplication.shared.open(url) } } }
Posted
by cylon147.
Last updated
.
Post not yet marked as solved
0 Replies
467 Views
Hello Everyone, we've encountered an issue with our iOS mobile application, particularly affecting users on iOS version 17. It appears that our universal deep links coming from redirects have ceased to function properly. We've got quite a few marketing campaigns that send out promotional emails through an emailing system, which wraps our site's links inside their own. Obviously tapping these links does not open our app, instead directs the user to web mobile. Older phones like iPhone X with iOS 16 still work properly. We have checked domain association, and also when tapping direct deep link everything works properly. However, the issue arises specifically when users interact with marketing tracking links that redirect to a deep link. In this scenario, both Safari and Chrome fail to redirect outside of the browser environment. Instead, they execute an HTTP 301 redirection within the browser itself. Is this something be expected from iOS version 17, is there a way to avoid this behaviour and still continue using marketing links with redirection?
Posted
by Activ8.
Last updated
.
Post not yet marked as solved
1 Replies
277 Views
Hi. We have 2 apps in the store with universal links working fine, and we are readying the launch of a new version, essentially the same codebase but with different branding and into a different territory. however with this one universal links are not currently working. When the app is installed, swcutil shows the following: App ID: [REDACTED] App Version: 331.0 App PI: <LSPersistentIdentifier 0x5ccc0ee20> { v = 0, t = 0x8, u = 0x6b8, db = E038B2E7-CA87-4BA2-A129-C25394D0F72F, {length = 8, bytes = 0xb806000000000000} } Domain: [REDACTED] User Approval: unspecified Site/Fmwk Approval: denied Flags: Last Checked: 2024-02-16 12:06:39 +0000 Next Check: 2024-02-21 11:08:37 +0000 suggesting the CDN was denied access, but if I query the CDN using https://app-site-association.cdn-apple.com/a/v1/DOMAIN I get the correct app-association contents back. with the previous apps, they were well established before we introduced universal links, but this one is not yet available on the store. the debug build pointing at production seems to work (not using mode=developer) but the TestFlight build does not. we are confident in the contents of the app-association file as it mirrors the other apps. It's been suggested that this could be because the app is not yet available in the store. Is this the case?
Posted
by JW-SDG.
Last updated
.
Post not yet marked as solved
0 Replies
221 Views
Hi, I setup universal links (aka goto my website and it opens/adds-header-to-open my application). While in debug and testflight this worked flawlessly, in release I inconsistently have the header addon to open in app in safari. I don't understand why. When I goto developer tools and test the link, it returns it should open my app, and shows a green checkmark like everything is okay. But right after if I goto Safari, it does not show the open in app header. I've restarted my device several times and reinstalled the app with no luck in the open in app header in safari reliably being present. I had this same problem with another app, and it wasn't working for the first day and randomly showed up for a while, and then stopped again. Idk what's wrong? The only thing I can think of is we were messing with the MDM server and set it to None I believe at one point and it showed up (I think) - but perhaps that has nothing to do with it showing up. Does MDM server management of devices prevent universal links? Weirdly before setting MDM server to none, it worked flawless in debug and testflight. As of now the MDM server is restored to original our business set. So, I don't quite know what to do to debug this. The developer tools say it's fine, and debug/testflight work fine. Any suggestions/options? Does MDM server affect universal links? Thanks, user: ASDF123456
Posted Last updated
.
Post not yet marked as solved
0 Replies
242 Views
I've noticed on Android devices the use of deep linking, which also permits the inclusion of a backup URL that opens in the user's default browser. This feature has been incredibly useful for me in exiting in-app browsers, as many of them break sites by not allowing for downloads. I'm reaching out to request guidance on creating a reliable link for web developers, ensuring users can seamlessly redirect to the full-featured view of our websites.
Posted
by shalanah.
Last updated
.
Post not yet marked as solved
0 Replies
502 Views
Hi All, I would like to know if the 'deferred deep link' feature is compatible with the apps hosted in the Enterprise App Store. A 'deferred deep link' is intended to direct the user to the App Store page, where they can download the app. During the initial startup, SFSafariViewController is expected to provide the URL parameters passed as part of the deep link. I would appreciate your assistance in confirming whether the 'deferred deep link' functionality will work seamlessly if we use Enterprise Appstore for distribution. Thanks and regards, Sujith Joseph
Posted
by skj_apple.
Last updated
.