Flutter 中的 iOS 通用链接

问题描述 投票:0回答:3

我似乎无法在我的 Flutter 应用程序上获取 iOS 通用链接。以下是我设置通用链接所采取的步骤:

  • 已安装flutter uni_links包

  • 上传了以下 apple-app-site-association(包含团队 ID 和捆绑包标识符的实际值):

    {
      "applinks": {
       "details": [
            { 
                "appID": "xxxxxxx.com.bundleIdentifier", 
                "paths": [ "*" ], 
                "appIDs": ["xxxxxxx.com.bundleIdentifier"], 
                "components": [ 
                    { "/": "*" } 
                ] 
            }
       ]
    }}
    
    
  • 通过 https://branch.io/resources/aasa-validator/验证了 apple-app-site-association 文件(值得注意的是,我无法使用 Apple 的 appsearch-validation-tool 进行验证 - 收到错误:“无法提取通用链接所需的信息。”)

  • 在我的项目功能中添加了关联域: screenshot from xcode

使用

/usr/bin/xcrun simctl openurl
打开或单击我的移动设备上的网址(从笔记应用程序尝试过)仍然会在 Safari 中打开网址,而不是打开应用程序。

我可能会错过什么?

ios flutter deep-linking ios-universal-links
3个回答
2
投票

另一件需要检查的事情是关联的域是否确实被纳入到构建中。此设置位于 Xcode 中的 Runner => Build Phases => Copy Bundle Resources 下。点击“+”按钮并添加 .entitlements(如果缺少)。 screenshot of xcode

(我不记得在哪里遇到这个建议,无论是堆栈溢出还是 github 问题,但如果我再次遇到它/记住它,我会添加它)。


1
投票

设备仅在应用程序版本发生变化时才读取AASA文件,请尝试更改版本/使用其他设备(/其他设备的模拟器)。


0
投票

您的 apple-app-site-association 将托管在 root 或 .wellknown 路径

您的内容将如下所示,

{
  "applinks": {
  "apps": [],
  "details": [
        { 
            "appID": "xxxxxxx.com.bundleIdentifier", 
            "paths": [ "*" ] 
        },
        {
            "appID": ["xxxxxxx.com.bundleIdentifier"], 
            "paths": [ "*" ]
        } 
   ]
}}

您的文件将可访问并可见,如下所示
https://google.com/apple-app-site-association
https://example-your-domain.com/apple-app-site-association

您的

apple-app-site-association
文件不包含任何扩展名。
根据您的配置设置内容类型=> https://gist.github.com/anhar/6d50c023f442fb2437e1#-modifying-the-content-type-of-the-apple-app-site-association-file


在签名和功能中的关联域下添加您的域

© www.soinside.com 2019 - 2024. All rights reserved.