xamarin - 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 文件并加载它,并且服务器日志显示它已被请求。
很明显,我的通用链接不起作用的原因是我的应用程序从不请求这个文件,但我现在不知道为什么。
解决方案
在 Xamarin iOS中设置通用链接的步骤:
将文件上传
apple-app-site-association
到您网站的根目录或.well-known
子目录中,并确保它是通过HTTPS
1.1 如果它是通过 HTTPS 提供的,并且您不需要以 iOS8 为目标,请不要费心尝试对 JSON 文件进行签名。一个简单的 JSON 文件就可以了。
启用
“Associated Domains”</code> functionality in the Apple Developer Center for your app and regenerate the
provisioning
profileAdd the domain(s) you want to add universal linking for to your
”</p>iOS Entitlements file
in the section “<code>Associated Domains确保添加应用链接:
prefix (ex. applinks:ctcode.wordpress.com)
在 AppDelegate 类中实现逻辑
推荐阅读
- java - 获取2个时区之间的时间差异并相应地从当前时间添加或减去
- c++ - c++ 我总是在 0 和 1 之间得到相同的数字 Radnom
- jsp - Google reCAPTCHA v2 在 Microsoft Edge 中遇到 CSP14312 错误资源被阻止
- sql - 又一个 SQL 案例(GROUP BY)
- python - Python 3,将当前单文件源代码拆分为一个主文件和多个子文件。我需要在所有文件中导入通用模块吗?
- arrays - 我可以创建一个静态数组并使用指针从范围之外访问该数组吗?
- flutter - 在我们使用条件返回答案的未来函数中使用 // ignore: missing_return 是个好主意吗?
- python-3.x - 如何根据条件从多列中选择值
- c# - PDF 到文本转换 - 下一页中的多行
- laravel - 作曲家更新后Laravel Passport未经身份验证