代码之家  ›  专栏  ›  技术社区  ›  Besfort Abazi

Firebase Deep Link Web URL查询为空-iOS

  •  1
  • Besfort Abazi  · 技术社区  · 7 年前

    我在接收带有新自定义url的Firebase动态链接时遇到问题。我创建了一个“abc0.page.link”,我在应用程序中设置了所有代码来创建它。

    但在接收时,我会在日志中收到以下消息:

    [Firebase/Analytics][I-ACS023000]深度链接Web URL查询为空

    什么都没发生,处理是错误的。

    - (BOOL)application:(UIApplication *)application
    continueUserActivity:(NSUserActivity *)userActivity
     restorationHandler:
     #if defined(__IPHONE_12_0) && (__IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_12_0)
    (nonnull void (^)(NSArray<id<UIUserActivityRestoring>> *_Nullable))restorationHandler {
    #else
        (nonnull void (^)(NSArray *_Nullable))restorationHandler {
    #endif  // __IPHONE_12_0
     //(void (^)(NSArray *))restorationHandler {
    
        NSLog(@"continueUserActivity called, withUser: %@, useractivity: %@, webpageurl: %@", self.user.uid, userActivity, userActivity.webpageURL);
      calledFromURL = YES;
      BOOL handled = [[FIRDynamicLinks dynamicLinks] handleUniversalLink:userActivity.webpageURL
                                                              completion:^(FIRDynamicLink * _Nullable dynamicLink,
                                                                           NSError * _Nullable error) {
            NSLog(@"continueUserActivity called");
            if (error) {
                NSLog(@"dynamic link error: %@", error.localizedDescription);
    animated:YES completion:nil];
                }
                else {
    }
    }];
    return handled;
    }
    

    这里有什么问题?提前谢谢你!

    0 回复  |  直到 7 年前
        1
  •  3
  •   Naslausky    6 年前

    我对动态链接也有同样的问题。 我在我的播客文件中使用了这些行:

    pod 'Firebase/DynamicLinks'
    pod 'Firebase/Analytics'
    

    就像官方的Firebase教程一样。

    但是,我的应用程序仍然使用 pod 'Google/Analytics' 当时,pod已经被弃用,应该切换到Firebase Analytics。

    这个Google分析pod与Firebase的pod有一个共同的依赖关系(如果我没记错的话,“Firebase/Core”),但是由于它是一个旧的、不推荐的版本,所以它的依赖关系必须低于某个版本。 所以,即使我没有在我的pod文件中指定DynamicLinks pod版本,旧的依赖项也只允许它达到某个版本,比最新的版本要老得多。当我尝试使用文档中建议的自诊断工具[0]时,我发现了这一点,而我的代码找不到该工具。

    所以我的解决办法是:

    • 从我的pod文件中删除Google/Analytics pod。当我这么做的时候 pod update ,所有与Firebase相关的pod都与CocoaPods网站[1]中的版本相同,即它们是最新的。

    • 我仍然想使用旧的谷歌分析有一段时间,因为我需要动态链接的工作速度比切换到Firebase分析要快,所以我 谷歌分析的静态库(libGoogleAnalytics.a)及其标题。那时候还不错。因为它已经不在Podfile中了,所以我不会自动获取更改,但是,我不认为这会是一个不推荐的Pod的问题。

    如果你的问题确实与此有关,我认为这不是建议的解决办法。你应该尽快使用Firebase Analytics,因为谷歌移动分析将于今年10月关闭。

    我的猜测是,Firebase函数过去有不同的方式解析和转换动态链接,这些链接与当前console创建的链接不兼容,因此它返回一个空的URL查询。

    [0]- https://firebase.google.com/docs/dynamic-links/debug

    [一]- https://cocoapods.org/

    推荐文章