Я пытаюсь реализовать глубокие ссылки через branch.io для приложения iOS (Swift 4.2). Я интегрировал iOS SDK точно так, как указано в документации по филиалам. Чтобы проверить интеграцию, я запустил скрипт проверки универсальной ссылки branch.io, и он успешно прошел.
Что не работает для универсальных ссылок:
Нажатие на ссылку в «Заметках» или «Сообщения» открывает приложение, но данные не передаются. Branch просматривает полностью пустой URL (example.app.link?%24identity_id=611647344982868361
) вместо (example.app.link/hj86HlvvMk2?%24identity_id=611647344982868361
) при просмотре журналов отладки. Это то же самое, что просто открыть приложение вручную без ссылки. Данные недоступны с помощью отложенной функции Deeplink.
Использование схем URI вместо универсальных ссылок:
Если я отключу Universal Links через панель настроек ссылки branch.io, то все URL-адреса будут открыты в браузере, без запроса на открытие приложения. Однако, когда я открываю приложение вручную, данные Deeplink доступны при запуске (с помощью функции отложенной ссылки).
Другие попытки: Добавление $uri_redirect_mode: 2
к данным ссылки для принудительного открытия приложения на самом деле ничего не изменило. Единственное отличие состоит в том, что для схем URI в Safari отображается ошибка перед перенаправлением на $fallback_url
. Я также попытался переустановить приложение заново, очистив кеш Safari и куки, но безуспешно.
Я также упомяну, что не должно быть ничего плохого в самих глубоких ссылках. На Android те же самые глубокие ссылки работают отлично.
Ни один из методов не может открыть приложение с доступными немедленно данными диплинка. Есть ли другие варианты сделать эту работу?
ОБНОВЛЕНИЕ : URI и универсальные ссылки были отдельными проблемами. Мы получили URI для работы, дважды проверив нашу схему URI (это было неверно). Для универсальных ссылок может быть небольшая ошибка в документации Branch для Swift 4.2. Смотрите мой ответ для решения.
ОБНОВЛЕНИЕ 2019-02-05 : обновлена документация по филиалам для Swift 4.2. Все работает хорошо.