2017-07-26 132 views
10

我已经经历了几乎所有的通用链接问题,我可以找到并且还没有任何运气。记录,这一切似乎通过Branch's validatoriOS 10.3通用链接不工作

我正在运行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)我的苹果应用程序站点关联的文件,路由和Rails控制器,提供起来:

苹果应用程序站点关联(生活/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:恢复Handler:功能,它被设置为做完全相同的事情时didFinishLaunchingWithOptions被称为(加上打印出来踢一吨====

AND YOU ...

什么都没有。在部署到分级后,我在手机上加载应用程序,通过我们的共享功能生成链接,将其保存为便笺,然后单击它以便在Safari中打开它。长按不做任何事情,没有其他迹象表明Safari正在打开,而不是应用程序。设备日志似乎没有显示任何问题,但也许我没有寻找正确的东西?

Halp。

+0

您是否尝试删除并重新安装你的应用程序?当应用程序在刚安装 – donnywals

+0

@donnywals呀通用链接进行了注册,几乎每一个我在Xcode重建时间我卸载该应用程序在手机上...有更多的东西,我需要做什么? –

回答

0

最终是什么使它的工作增加了application-identifier权利,其值与AASA文件中的appID相似;我使用通配符$()作为后缀,因此理论上它可以在各种部署环境中使用。不知道从哪里是从何而来,或正在对苹果的文档的一部分做什么推定,但是...该应用从链接打开,现在!

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)苹果需要时间来注册新的通用连接。

完成这些步骤后尝试打开其他应用https://trueey-staging.herokuapp.com,它应该打开应用

+0

哈,我AASA实际上是“SSHENFP95X.com.markmywordsllc.trueey分期”,我只是编辑就在这里隐私的目的呢?但是,当然,任何人都可以访问网址并查看ID,嘿。 –

1

看来,你的问题是在你的应用程序的实现不是你的服务器。

您需要在您的应用程序委托上实现application:continueUserActivity:restorationHandler:函数。

你可以阅读更多关于它here,我猜你已经访问过,但要密切关注“准备您的应用程序以处理通用链接”部分,具体如下:

后您指定的相关领域,采用用于切换的 UIApplicationDelegate方法(具体 应用:continueUserActivity:restorationHandler :)让你的应用程序 可以收到一个链接,并妥善处理这个问题。

当iOS在用户点击通用链接后启动您的应用程序时,您将收到一个NSUserActivity对象,其activityType值为 NSUserActivityTypeBrowsingWeb。活动对象的网页URL 属性包含用户正在访问的URL。该网页的网址 属性总是包含HTTP或HTTPS URL,并且可以使用 NSURLComponents API来操纵URL的组成部分。

+0

请注意我的问题中的第3点 - 应用程序委托设置为处理传入的请求,并执行正常的didFinishLaunching流程将处理的内容,也就是说只是将应用程序打开到第一页。 我打算最终做更多的专业化的东西,但现在我只想让它启动...而且不是!我有continueUserActivity的打印语句和断点,并且它们没有被激活。 –

+0

我注意到了第3点,这就是我对这个解决方案的看法。它表明你没有实现所需的功能。该应用程序不会启动,除非你会实现它,请尝试添加它只是一个打印线来测试它,并返回结果,祝你好运! –

+0

这就是我所说的 - '继续userActivity'被实现,并且正在做'didFinishLaunching'正在做的事情,所以它应该只是打开应用程序到第一页 - 但没有。 –