onC*_*ion 6 swift ios9 ios-universal-links
我已经实现apple-app-site-association了与我的 iOS 应用程序的深度链接。
我创建了没有扩展名的 .JSON 文件并放置在我网站的根目录中。
现在,我可以在任何浏览器上看到该文件为https://example.com/apple-app-site-association。
以下是 apple-app-site-association 文件中的 json 正文 -
{
"applinks": {
"apps": [],
"details": [
{
"appID": "AppID.bundleIdentifier",
"paths": [ "*"]
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
仅供参考,我在我的网站(angular.js).htaccess 中添加了以下内容 -
<FilesMatch "^apple-app-site-association$"> ForceType application/json </FilesMatch>
Run Code Online (Sandbox Code Playgroud)
我已经在 Xcode 和 developer.apple.com 中启用了“关联域”。
但是,当我尝试安装新版本时,它不起作用。
通过深入研究设备日志,我收到以下错误。
请看看并帮助我了解我做错了什么。
[SWC] ### 错误的 apple-app-site-association JSON:错误域=NSCocoaErrorDomain 代码=3840“JSON 文本未以数组或对象开头,并且没有设置允许片段的选项。” UserInfo={NSDebugDescription=JSON 文本没有以数组或对象开头,并且没有设置允许片段的选项。}
Pra*_* GM 17
测试文件配置是否正确的最佳方法是使用
curl -v https://app-site-association.cdn-apple.com/a/v1/yourdomain.com
Run Code Online (Sandbox Code Playgroud)
或者
curl -v https://app-site-association.cdn-apple.com/a/v1/sub.domain.com
Run Code Online (Sandbox Code Playgroud)
如果您收到 apple-app-site-association 的 JSON 作为响应,您的配置是正确的,您可以检查您的关联域配置。卸载并重新安装会有所帮助,或者尝试重新启动您的 iPhone。
但是如果你没有从上面的curl中得到JSON响应,问题一定出在服务器配置上
添加.well-known/到您的路径:
https://<fully qualified domain>/.well-known/apple-app-site-association
来自https://developer.apple.com/documentation/safariservices/supporting_related_domains_in_your_app
该文件已适当托管,如使用确认:
curl -I https://pravin-dev.slicepay.in/apple-app-site-association
Run Code Online (Sandbox Code Playgroud)
您还可以使用Apple 的 Applebot来抓取您的网站以验证 apple-app-site-association。但是,这只能完全验证您的应用程序是否已上线。
问题可能与您的关联文件无关。您应该验证您的应用程序确实在检查https://pravin-dev.slicepay.in/apple-app-site-association而不是https://slicepay.in/apple-app-site-association。在您的功能的关联域部分中仔细检查您的应用链接,并且 .entitlements 文件已正确生成。您正在使用 pravin-dev 子域 - 如果未指定,您的应用程序可能无法在正确的位置查找。
您可能知道您必须卸载该应用程序才能重新检查 apple-app-site-association。
Ale*_*uer -3
看来该文件以某种方式被服务器提供为错误的类型。如果您尝试在 Web 浏览器 ( https://branchmaps.app.link/apple-app-site-association ) 中加载工作的 AASA 文件,您会看到它会立即下载,并且生成的文件没有类型。您的文件正在浏览器中显示,下载后会显示 JSON 文件类型。
如果您将文件另存为apple-app-site-association.json,然后删除扩展名,请尝试直接从 Atom/Sublime/其他文件保存而不带文件名,以确保操作系统不会嵌入元数据。
您还可以使用免费的深层链接平台,例如Branch.io(完全披露:我在 Branch 团队中),并且不需要处理此服务器配置:)