iOS applink 无法在设备上运行,但可以在模拟器上打开应用
iOS applink not working on the device but opens app on simulator
我尝试尽可能多地遵循建议,但无法在我的应用程序上运行,该应用程序仍在开发中(尚未在应用程序商店中)。详情如下:
暂时只在 iOS 14 测试。
以下 JSON 文件“apple-app-site-association”存储在 Wordpress 网络根目录下以及 .well-known/
下
{
"applinks": {
"apps": [],
"details": [
{
"appID": "XXXXXXXXXX.com.xxx.myapp",
"paths": [
"item/*"
]
}
]
}
}
使用 .htaccess 强制 MIME 类型
<Files apple-app-site-association>
ForceType application/json
</Files>
curl -v
到 https://mydomain/.well-known/apple-app-site-association returns 具有正确 MIME 类型 application/json
和状态代码 200 的内容。
这是 .entitlements
文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>aps-environment</key>
<string>development</string>
<key>com.apple.developer.associated-domains</key>
<array>
<string>applinks:www.myapp.com</string>
<string>applinks:www.myapp.com?mode=developer</string>
</array>
</dict>
</plist>
在设置 -> 开发者菜单中启用 Associated Domains Debugging
。
在 developer.apple.com 门户中添加了 Associated Domains
功能。
通过 https://branch.io/resources/aasa-validator/
验证正常
实现了委托方法但未调用
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
print("Opening app thru applink")
// ....
return true
}
服务器访问日志中有这一行,表明是 Apple Bot 还是访问它的设备
00.000.00.00 - - [04/Mar/2021:23:05:19 -0700] "GET /.well-known/apple-app-site-association HTTP/1.1" 200 133 "-" "swcd (unknown version) CFNetwork/1220.1 Darwin/20.3.0" **0/507**
在与此相关的设备日志中没有看到和 swcd
错误。
尝试了调试和发布版本。
我还能做些什么来解决问题?
终于想通了。缺少一些东西:
- 关联文件中的路径必须有“/”前缀,如
"/item/*"
- 在“appID”字段中使用团队 ID,但使用 App 前缀 ID 有所帮助
我尝试尽可能多地遵循建议,但无法在我的应用程序上运行,该应用程序仍在开发中(尚未在应用程序商店中)。详情如下:
暂时只在 iOS 14 测试。
以下 JSON 文件“apple-app-site-association”存储在 Wordpress 网络根目录下以及 .well-known/
下{
"applinks": {
"apps": [],
"details": [
{
"appID": "XXXXXXXXXX.com.xxx.myapp",
"paths": [
"item/*"
]
}
]
}
}
使用 .htaccess 强制 MIME 类型
<Files apple-app-site-association>
ForceType application/json
</Files>
curl -v
到 https://mydomain/.well-known/apple-app-site-association returns 具有正确 MIME 类型 application/json
和状态代码 200 的内容。
这是 .entitlements
文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>aps-environment</key>
<string>development</string>
<key>com.apple.developer.associated-domains</key>
<array>
<string>applinks:www.myapp.com</string>
<string>applinks:www.myapp.com?mode=developer</string>
</array>
</dict>
</plist>
在设置 -> 开发者菜单中启用 Associated Domains Debugging
。
在 developer.apple.com 门户中添加了 Associated Domains
功能。
通过 https://branch.io/resources/aasa-validator/
验证正常实现了委托方法但未调用
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
print("Opening app thru applink")
// ....
return true
}
服务器访问日志中有这一行,表明是 Apple Bot 还是访问它的设备
00.000.00.00 - - [04/Mar/2021:23:05:19 -0700] "GET /.well-known/apple-app-site-association HTTP/1.1" 200 133 "-" "swcd (unknown version) CFNetwork/1220.1 Darwin/20.3.0" **0/507**
在与此相关的设备日志中没有看到和 swcd
错误。
尝试了调试和发布版本。
我还能做些什么来解决问题?
终于想通了。缺少一些东西:
- 关联文件中的路径必须有“/”前缀,如
"/item/*"
- 在“appID”字段中使用团队 ID,但使用 App 前缀 ID 有所帮助