Подтвердить что ты не робот

IOS 10.3 Универсальные ссылки не работают

Я проделал почти все вопросы Universal Links на SO, которые я могу найти и еще не имел никакой удачи. Для записи это все, кажется, передает Фиксатор валидации.

Я запускаю iOS 10.3 и обслуживаю свой файл aasa за https, поэтому теоретически мне не нужно его подписывать.

Здесь, где я стою:

Когда приложение установлено, хвост журналов 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, route и Rails-контроллер, который обслуживает его:

apple-app-site-association (живет в /public как apple-app-site):

{
    "applinks": {
        "apps": [ ],
        "details": [
            {
                "appID": "[Prefix].[AppId]",    
                "paths": [ "*", "/" ]
            }
        ]
    }   
}

маршрут (ы):

  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) В My AppDelegate я внедрил приложение: continueUserActivity: restore Handler: function, и оно настроено на то же самое, что и при вызове метода didFinishLaunchingWithOptions (плюс распечатать тонну ==== для ударов )

И ЕЕТ...

Ничего. После развертывания на стадии размещения я загружаю приложение на свой телефон, перейду через наши общие функции, чтобы создать ссылку, сохранить ее в примечаниях и щелкнуть по ней, только чтобы открыть ее в Safari. Длительное нажатие ничего не делает, и нет никаких других признаков того, что Safari открывается вместо приложения. Журналы устройств, похоже, не указывают на какие-либо проблемы, но, может быть, я не искал правильную вещь?

Halp.

4b9b3361

Ответ 1

В конечном счете, что заставило его работать, было добавление права application-identifier со значением, аналогичным appID из файла AASA; Я использовал подстановочный знак $() для суффикса, поэтому теоретически он будет работать во всех средах развертывания. Не знаю, откуда это взялось, или какие предположения были сделаны со стороны документации Apple, но... теперь приложение открывается из ссылок!

Ответ 2

Кажется, что ваша проблема связана с реализацией вашего приложения, а не с сервером.

Вам нужно реализовать функцию application:continueUserActivity:restorationHandler: в вашем делете приложения.

Вы можете прочитать об этом здесь, который, я думаю, вы уже посетили, но обратите пристальное внимание на "Подготовка приложения для обработки универсальных ссылок" ", в частности:

После того, как вы укажете свои связанные домены, Методы UIApplicationDelegate для Handoff (в частности, application: continueUserActivity: restoreHandler:), чтобы ваше приложение может получить ссылку и обработать ее соответствующим образом.

Когда iOS запускает ваше приложение после того, как пользователь называет универсальную ссылку, вы получить объект NSUserActivity с значением activityType NSUserActivityTypeBrowsingWeb. Объекты деятельности webpageURL свойство содержит URL-адрес, к которому пользователь обращается. URL веб-страницы свойство всегда содержит URL-адрес HTTP или HTTPS, и вы можете использовать API NSURLComponents для управления компонентами URL.

Ответ 3

Я думаю, что следующее может помочь вам.

1) applinks: trueey-staging.herokuapp.com в связанных доменах

2) Попытайтесь изменить свой json в https://trueey-staging.herokuapp.com/apple-app-site-association на

{"applinks":{"apps":[],"details":[{"appID":"SSHENFP95X.com.markmywordsllc.trueey-staging","paths":["*"]}]}}

3) Apple занимает время, чтобы зарегистрировать новые универсальные ссылки.

После этих шагов попробуйте открыть https://trueey-staging.herokuapp.com из другого приложения, и оно должно открыть ваше приложение