Динамическая ссылка Firebase не открывает приложение iOS
Я разработал и установил приложение iOS локально на своем устройстве.
И установили пользовательскую схему в info.plist как mydlink
Задайте связанные домены как weel: applinks:<myapp>.app.goo.gl
Создана динамическая ссылка на firebase как:
https://<myapp>.app.goo.gl/?link=http://<mysite.com>/&ibi=<app bundle id>&ius=mydlink&ifl=https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id%3D<app store id>%26mt%3D8&pt=<app store id>
Когда я открываю или щелкаю по динамической ссылке, она открывает страницу приложения в приложении "App Store" и не открывает приложение, хотя оно установлено.
Что мне здесь не хватает?
Ответы
Ответ 1
Если вы используете iOS 9, будут использоваться универсальные ссылки. Универсальные ссылки не работают во многих случаях, например:
- Если вы используете симулятор
- Если вы попытаетесь открыть ссылку непосредственно в сафари на устройстве (введите его в поле адреса в браузере)
Я потратил много времени на это и не мог заставить его работать на симуляторе надежным способом. То, что я делаю, это отправить мне ссылку на эту ссылку и открыть ее из папки "Входящие". Затем он работает каждый раз!
Ответ 2
Прошу прощения за поздний ответ. Я надеюсь, что ваша проблема решена и что это полезно для тех, кто может испытывать ту же проблему.
Здесь может быть одна или несколько проблем для iOS 9+; Dynamic Links полагаются на Apple Universal Links, чтобы открыть приложение на iOS 9+, и эти предложения направлены на решение проблем с Universal Links и Firebase и не имеют ничего общего с SDK напрямую.
- Убедитесь, что файл-ответ верен на странице https://app_id.app.goo.gl/apple-app-site-association - он должен выглядеть так, как https://maps.app.goo.gl/apple-app-site-association, но только с одним элементом в деталях.
- Как указано в другом ответе, убедитесь, что идентификатор вашей команды правильно установлен в консоли Firebase.
- Если вы давно нажали ссылку, а затем нажали кнопку "Открыть в Safari" или вы нажали кнопку "goo.gl > " в строке состояния вашего приложения после того, как приложение открывается через Universal Link, тогда iOS по умолчанию открывается Universal Links в Safari. Это можно устранить, потянув вниз всплывающее окно, открытое в Safari, и нажав "Открыть в приложении" (или аналогичный) на смарт-баннере.
Параметр "ibi" не участвует в открытии приложения при установке после установки на iOS 9+, но находится в предыдущих версиях, когда параметр "ius" не установлен.
Что касается iOS 8, можете ли вы попробовать запустить приложение, а затем нажать ссылку после установки приложения? В версиях до iOS 9 вы можете протестировать, скопировав/вставив ссылку в сафари.
https://firebase.google.com/docs/dynamic-links/ios
Ответ 3
У меня возникла такая же проблема. Интересно, что если вы открываете динамическую ссылку в Chrome, приложение запускается напрямую и успешно. Но в Safari всегда он пытается открыть AppStore, хотя приложение установлено. Я не знаю, почему Safari не работает в этом случае.
Ответ 4
иногда мы допускаем ошибку в правах ассоциированных доменов. Там не должно быть пробелов
applinks:mydomain.page.link
Ответ 5
Динамические ссылки Firebase не работали для нас (на iOS9, где они используют универсальные ссылки) из-за проблемы в предположениях Firebase во время установки. Вот как мы исправили проблему в нашем приложении:
Firebase запрашивает ваш "идентификатор команды" при добавлении вашего приложения iOS к настройкам проекта Firebase Console и предполагает, что ваш уникальный идентификатор приложения будет в формате TeamID.com.foo.bar
Однако в нашем случае это не наш уникальный идентификатор приложения. Когда я просмотрел наш профиль обеспечения (на developer.apple.com, я нашел наш профиль обеспечения и нажал "редактировать" ), я увидел, что наш уникальный идентификатор приложения был на самом деле SomethingElse.com.foo.bar
Мне нужно было войти в Firebase Console и ввести "SomethingElse" в том месте, где он запросил идентификатор команды, хотя это был не наш идентификатор команды. Как только я сделал это изменение, Firebase Dynamic Links начал работать правильно.
Похоже, Firebase делает предположение, что ваш уникальный идентификатор приложения всегда будет начинаться с вашего идентификатора команды, что, по-видимому, не всегда так.
Обратите внимание, что изменение идентификатора вашей команды может занять значительное количество времени. Вы можете видеть, что это произошло, проверив соответствующую ссылку для вашего app_id (https://app_id.app.goo.gl/apple-app-site-association).
Ответ 6
Испытал ту же проблему.
Решением для меня было использовать
Идентификаторы → Идентификаторы приложений → 'my.app.ID' → Префикс
Вы можете найти его по адресу: https://developer.apple.com/account/ios/identifier/bundle
Вместо номера 'DevelopmentTeam'
из .pbxproj
который я использовал, и добавьте его к Team ID
для моего приложения iOS в консоли Firebase.
И не забудьте скачать и добавить новый .plist в проект.
Ответ 7
Когда ссылка открыта в сафари, она показывает кнопку "открыть (название проекта)". Если эта кнопка нажата в течение 2-3 секунд, она просит открыть ее в разных приложениях в первый раз. Она также показывает ваше имя приложения. Если вы выберите свое приложение, оно откроет ваше приложение. После этого, если вы снова откроете эту ссылку и нажмите кнопку в сафари, она всегда будет работать нормально.
Это устранило проблему для меня.
Ответ 8
Убедитесь, что у вас есть идентификатор команды, установленный в консоли firebase для вашего приложения. (вам нужно будет загрузить и импортировать файл .plist).
Это устранило проблему для меня.
Ответ 9
После интеграции динамических ссылок Firebase образец ссылки сразу начал работать на устройстве с iOS 8. Для устройств iOS 9 используется механизм универсальных ссылок, как упоминалось в других ответах. Это означает, что Apple необходимо обновить данные права, используемые для проверки двойной аутентификации двойной ссылки. Это может занять 48 часов, согласно Apple Инструмент проверки API поиска приложений.
Ниже приведены советы по устранению неполадок Universal здесь.
Ответ 10
Если ни один из описанных выше обходных путей не работает для вас, проверьте, добавили ли вы продолжение деятельности в связанных доменах или нет.
![Followin image shows the exact place where you have to add that(if you havn't done that already)]()
Ответ 11
Одна вещь, которую мы обнаружили при попытке реализовать динамическое связывание Firebase в нашем приложении, заключалась в том, что файл ассоциации приложений Apple должен находиться в каталоге .well_known на веб-сервере. Документация ассоциации приложений Apple утверждает, что файл ассоциации может быть либо в корневом, либо в .well_known:
Place this file either in your sites .well-known directory, or directly in its root directory.
Настройка файла ассоциации приложений
Однако, просматривая журналы веб-сервера при выполнении новой установки приложения на устройстве, мы увидели, что были сделаны вызовы в каталог .well_known. После того, как мы скопировали файл ассоциации в каталог .well_known, Firebase Dynamic Linking заработала, как и ожидалось.