专用 LAN 上的通用链接
Universal Links on private LAN
我正在尝试让通用链接在我的应用程序中工作,以替代 URL 方案,因为从 iOS 9 开始,系统似乎在每次应用程序出现时都会显示一个警告对话框从 Safari 调用。我希望在使用通用链接时替换关联域中已注册 URL 路径的 URL 方案调用将使对话框消失。
所以我不会调用 myscheme://app?params=values
,而是调用 https://example.com/universal-link/wakeup?params=values
。
我的 apple-app-site-association(未签名)文件如下所示
{
"applinks": {
"apps": [],
"details": [
{
"appID": "XXXXXXXX.com.company.appid",
"paths": [ "/universal-link/*" ]
}
]
}
}
请注意,目前我使用的是托管在公司局域网中的网络服务器,它不是互联网上的 public 服务器。因此,在应用程序功能 "Associated Domains" 中,我写了类似 applinks:host.company.lan:7700
的内容,但在应用程序首次启动后,apple-app-site-association 文件从未被提取。
我不知道还能尝试什么,所以我认为服务器位于专用网络中可能是个问题。
我在 Apple 开发者论坛上找到了这个question,它阐明了这一点。
看起来问题是,apple-app-site-association 由不受信任的根签名的域托管,如果您在系统中安装根证书也没有关系,它也不会下载.我假设它必须由默认情况下已包含在 iOS 中的 CA 签名。
我让这个在专用网络上工作,但我必须信任设备上的证书。
要在模拟器上测试,您可以将证书拖到模拟器中,在设备上,您可以将其邮寄到设备或空投给它
我一直在尝试使用开发人员模式(关联域开关),这对 VPN 内的内部域有效,但我认为这不是非技术用户的最佳解决方案。
Apple 的 WWDDC'20 视频之后的默认选项是在设备中安装受信任的根证书。但这行不通,至少对我而言。
我正在尝试让通用链接在我的应用程序中工作,以替代 URL 方案,因为从 iOS 9 开始,系统似乎在每次应用程序出现时都会显示一个警告对话框从 Safari 调用。我希望在使用通用链接时替换关联域中已注册 URL 路径的 URL 方案调用将使对话框消失。
所以我不会调用 myscheme://app?params=values
,而是调用 https://example.com/universal-link/wakeup?params=values
。
我的 apple-app-site-association(未签名)文件如下所示
{
"applinks": {
"apps": [],
"details": [
{
"appID": "XXXXXXXX.com.company.appid",
"paths": [ "/universal-link/*" ]
}
]
}
}
请注意,目前我使用的是托管在公司局域网中的网络服务器,它不是互联网上的 public 服务器。因此,在应用程序功能 "Associated Domains" 中,我写了类似 applinks:host.company.lan:7700
的内容,但在应用程序首次启动后,apple-app-site-association 文件从未被提取。
我不知道还能尝试什么,所以我认为服务器位于专用网络中可能是个问题。
我在 Apple 开发者论坛上找到了这个question,它阐明了这一点。
看起来问题是,apple-app-site-association 由不受信任的根签名的域托管,如果您在系统中安装根证书也没有关系,它也不会下载.我假设它必须由默认情况下已包含在 iOS 中的 CA 签名。
我让这个在专用网络上工作,但我必须信任设备上的证书。
要在模拟器上测试,您可以将证书拖到模拟器中,在设备上,您可以将其邮寄到设备或空投给它
我一直在尝试使用开发人员模式(关联域开关),这对 VPN 内的内部域有效,但我认为这不是非技术用户的最佳解决方案。
Apple 的 WWDDC'20 视频之后的默认选项是在设备中安装受信任的根证书。但这行不通,至少对我而言。