我已经经历过几乎所有关于我的Universal Links问题,我可以找到并且还没有运气。为了记录,这一切似乎都通过了Branch's validator。
我正在运行iOS 10.3并在https后面提供我的aasa文件,因此理论上我不需要签名。
这就是我的立场:
安装应用程序后,为我的登台服务器拖尾Heroku的日志会给我这个:
7-07-27T17:24:59.818724+00:00 heroku[router]: at=info method=GET path="/.well-known/apple-app-site-association" host=trueey-staging.herokuapp.com request_id=54b817e2-1d89-4c7a-9ed8-f52bdb3ad46e fwd="24.23.197.78" dyno=web.1 connect=1ms service=6ms status=200 bytes=618 protocol=https
2017-07-27T17:24:59.812926+00:00 app[web.1]: Started GET "/.well-known/apple-app-site-association" for 24.23.197.78 at 2017-07-27 17:24:59 +0000
2017-07-27T17:24:59.814845+00:00 app[web.1]: Processing by Web::AppSiteController#show as */*
2017-07-27T17:24:59.815538+00:00 app[web.1]: Completed 200 OK in 1ms (Views: 0.1ms | ActiveRecord: 0.0ms)
1)我的权利:
applinks:trueey-staging.herokuapp.com
applinks:https://trueey-staging.herokuapp.com
这些是一回事吗?可能,但让我们双倍下降
2)我的apple-app-site-association文件,路由和Rails控制器为其提供服务:
apple-app-site-association(位于/public
apple-app-site
):
{
"applinks": {
"apps": [ ],
"details": [
{
"appID": "[Prefix].[AppId]",
"paths": [ "*", "/" ]
}
]
}
}
路线(S):
get "/apple-app-site-association", to: "web/app_site#show"
get "/.well-known/apple-app-site-association", to: "web/app_site#show"
控制器:
module Web
class AppSiteController < ApplicationController
def show
data = File.read("#{Rails.root}/public/apple-app-site")
render json: data
end
end
end
3)在我的AppDelegate中,我实现了应用程序:continueUserActivity:recover Handler:
函数,它的设置与调用didFinishLaunchingWithOptions完全相同(加上打印出大量的{{1} (踢))
AND YET ......
无。部署到分段后,我在手机上加载应用程序,浏览我们的共享功能以生成链接,将其保存到备注中,然后单击它以使其在Safari中打开。长按没有做任何事情,并且没有其他迹象表明Safari正在打开而不是应用程序。设备日志似乎没有表明任何问题,但也许我不是在寻找正确的东西?
HALP。
答案 0 :(得分:1)
您的问题似乎在您的应用实施中,而不是您的服务器。
您需要在应用代理上实施application:continueUserActivity:restorationHandler:
功能。
你可以阅读更多关于here的信息,我猜你已经访问了它,但要密切注意“准备你的应用来处理通用链接”部分,特别是:
指定关联的域后,请采用 用于Handoff的UIApplicationDelegate方法(具体来说 应用程序:continueUserActivity:restorationHandler :)以便您的应用程序 可以收到一个链接并妥善处理。
当iOS用户点击通用链接后启动您的应用时,您就可以了 接收活动类型值为的NSUserActivity对象 NSUserActivityTypeBrowsingWeb。活动对象的网页URL property包含用户正在访问的URL。网页网址 属性始终包含HTTP或HTTPS URL,您可以使用 NSURLComponents API用于操作URL的组件。
答案 1 :(得分:0)
我认为以下内容可以帮助您。
1)applinks:关联域中的trueey-staging.herokuapp.com
2)尝试将https://trueey-staging.herokuapp.com/apple-app-site-association中的json更改为
{"applinks":{"apps":[],"details":[{"appID":"SSHENFP95X.com.markmywordsllc.trueey-staging","paths":["*"]}]}}
3)Apple花时间注册新的通用链接。
完成这些步骤后,尝试从其他应用中打开https://trueey-staging.herokuapp.com,它应该会打开您的应用
答案 2 :(得分:0)
最终使其工作的是添加application-identifier
权利,其值与AASA文件中的appID类似;我使用通配符$()作为后缀,因此从理论上讲它可以跨部署环境工作。不知道应该从哪里来,或者Apple的文档中有什么假设,但是...应用程序现在从链接打开!