首页 > 解决方案 > Xamarin 通用链接不请求苹果应用程序站点文件

问题描述

我正在尝试在我的 iOS Xamarin 应用程序中实现通用链接。我已将 apple-app-site-association 文件上传到我的服务器,将其作为 application/json 发送并进行测试以确保它可以下载。

然后,我将以下内容添加到 Entitlements.plist:

<dict>
    <key>com.apple.developer.associated-domains</key>
    <array>
        <string>applinks:mydomain.com</string>
        <string>applinks:*.mydomain.com</string>
    </array>
</dict>

我需要链接在所有子域中工作,所以我的理解是包括根域和通配符条目,因此上面的两个条目。apple-app-site-association 文件由根域和所有子域提供。

我正在通过 Visual Studio 在调试模式下测试我的应用程序到实际设备(iPhone XS)。我的理解是,安装该应用程序时,它会尝试从服务器下载 apple-app-site-association 文件,但是,当我检查服务器日志时,没有发生这种情况的记录。

我尝试从手机中删除该应用程序,重新构建并再次运行,但没有任何乐趣。

我尝试使用浏览器访问 apple-app-site-association 文件并加载它,并且服务器日志显示它已被请求。

很明显,我的通用链接不起作用的原因是我的应用程序从不请求这个文件,但我现在不知道为什么。

标签: xamarinios-universal-links

解决方案


在 Xamarin iOS中设置通用链接的步骤:

  1. 将文件上传apple-app-site-association到您网站的根目录或.well-known子目录中,并确保它是通过HTTPS

    1.1 如果它是通过 HTTPS 提供的,并且您不需要以 iOS8 为目标,请不要费心尝试对 JSON 文件进行签名。一个简单的 JSON 文件就可以了。

  2. 启用“Associated Domains”</code> functionality in the Apple Developer Center for your app and regenerate the provisioning profile

  3. Add the domain(s) you want to add universal linking for to your iOS Entitlements file in the section “<code>Associated Domains”</p>

  4. 确保添加应用链接:prefix (ex. applinks:ctcode.wordpress.com) 在 AppDelegate 类中实现逻辑

参考:通用链接universal-links-in-ios


推荐阅读