Как я могу протестировать динамические ссылки Firebase, если моего приложения нет в App Store?

Я хотел бы иметь возможность открывать приложение и распечатывать параметры, когда я нажимаю на динамическую ссылку (даже если она не опубликована).

Есть ли способ сделать это?


person TIMEX    schedule 21.09.2016    source источник
comment
Вы видели этот ответ раньше? Может быть, реализовать то же самое и просто включить несколько журналов, где они вам нужны?   -  person AL.    schedule 22.09.2016


Ответы (2)


Да! Фактически, я подробно описываю этот процесс в видеоролике о начале работыS (часть 1), (часть 2), которую я рекомендую вам проверить, если вы еще этого не сделали.

Но, вообще говоря, вы можете протестировать поток Open my app, если он у меня установлен, просто щелкнув динамическую ссылку. Если ваше приложение установлено на устройстве, оно должно нормально открыться; даже если это не опубликованное приложение.

Если вы хотите протестировать неустановленный поток, это тоже довольно просто.

  • Сначала дайте проекту Firebase идентификатор магазина приложений в настройках проекта. Это может быть любой действительный идентификатор магазина приложений - не обязательно для вашего приложения.
  • Затем сгенерируйте новую динамическую ссылку.
  • На этот раз, когда вы нажмете на эту новую ссылку, она должна перенаправить вас в магазин приложений для идентификатора, который вы указали выше. Вам не нужно на самом деле устанавливать это приложение - достаточно просто добавить его в список приложений в магазине.
  • Теперь переустановите и запустите свое приложение. Если все работает правильно, он должен получить и отобразить данные динамической ссылки для вас.
person Todd Kerpelman    schedule 08.12.2016
comment
Большое спасибо - все сработало, как и ожидалось. Незначительное дополнение: для быстрого тестирования вам даже не нужен идентификатор магазина приложений - просто щелкните динамическую ссылку, она перейдет в магазин воспроизведения и покажет, что элемент не найден. Затем просто установите свое приложение - оно автоматически получит ссылку от намерения и будет вести себя так, как если бы ссылка была нажата. - person Apporve Chandra; 10.03.2017
comment
Это хороший способ проверить неустановленный поток. Я обнаружил, что когда приложение установлено, вызывается метод application: UIApplication, continue userActivity: NSUserActivity, restorationHandler, но когда приложение НЕ установлено, вызывается метод app: UIApplication, open url: URL, options. @ Тодд Керпельман, это правильно? - person Tom Spee; 27.03.2019
comment
Отличный ответ! - person Vishwas Singh; 24.12.2019
comment
Здесь тоже помог комментарий @Tom Spee .. +1 - person Abhinav Dobhal; 21.07.2020
comment
@Todd, Когда мы нажимаем на динамическую ссылку Сценарий 1: Когда приложение установлено :: Мы получаем URL правильно. Сценарий 2: когда приложение НЕ УКАЗАНО, мы получаем URL-адрес как NULL. Как этого добиться в данной ситуации? снимок экрана справки по коду prntscr.com/vfz4jj - person Rohit Mandiwal; 09.11.2020

Я столкнулся с теми же проблемами и потратил много часов, пытаясь найти решение, и следуя инструкциям по отладке, объясненным Тоддом Керпельманом post, я мог определить, что firebase не отправила универсальную ссылку при первом запуске приложения и отправила URL-адрес схемы со следующей структурой:

[bundle_id]://google/link/?deep_link_id=[firebase_universal_link]

Определив это, я нашел метод dynamicLinkFromCustomSchemeURL внутри Firesabe SDK и смог решить свою проблему при первом запуске приложения с помощью динамических ссылок.

/**
 * @method dynamicLinkFromCustomSchemeURL:
 * @abstract Get a Dynamic Link from a custom scheme URL. This method parses URLs with a custom
 *     scheme, for instance, "comgoogleapp://google/link?deep_link_id=abc123". It is suggested to
 *     call it inside your |UIApplicationDelegate|'s
 *     |application:openURL:sourceApplication:annotation| and |application:openURL:options:|
 *     methods.
 * @param url Custom scheme URL.
 * @return Dynamic Link object if the URL is valid and has link parameter, otherwise nil.
 */
- (nullable FIRDynamicLink *)dynamicLinkFromCustomSchemeURL:(NSURL *)url
    NS_SWIFT_NAME(dynamicLink(fromCustomSchemeURL:));

/**
 * @method dynamicLinkFromUniversalLinkURL:completion:
 * @abstract Get a Dynamic Link from a universal link URL. This method parses the universal link
 *     URLs, for instance,
 *     "https://example.page.link?link=https://www.google.com&ibi=com.google.app&ius=comgoogleapp".
 *     It is suggested to call it inside your |UIApplicationDelegate|'s
 *     |application:continueUserActivity:restorationHandler:| method.
 * @param URL Custom scheme URL.
 * @param completion A block that handles the outcome of attempting to get a Dynamic Link from a
 * universal link URL.
 */
- (void)dynamicLinkFromUniversalLinkURL:(NSURL *)url
                             completion:(FIRDynamicLinkUniversalLinkHandler)completion
    NS_SWIFT_NAME(dynamicLink(fromUniversalLink:completion:));

/**
 * @method dynamicLinkFromUniversalLinkURL:
 * @abstract Get a Dynamic Link from a universal link URL. This method parses universal link
 *     URLs, for instance,
 *     "https://example.page.link?link=https://www.google.com&ibi=com.google.app&ius=comgoogleapp".
 *     It is suggested to call it inside your |UIApplicationDelegate|'s
 *     |application:continueUserActivity:restorationHandler:| method.
 * @param url Custom scheme URL.
 * @return Dynamic Link object if the URL is valid and has link parameter, otherwise nil.
 */
person Renato Machado Filho    schedule 18.02.2021
comment
привет, я столкнулся с той же проблемой ... не могли бы вы подробнее рассказать о dynamicLinkFromCustomSchemeURL или пришлите мне код - person Muhammad Ahmad; 10.04.2021