0

我最近通过 cocoapods 将 Firebase In-App Messaging 添加到我的项目中。遵循文档中的设置过程后,我收到以下错误。如果有帮助,我最近也安装了 Admob,但直到我安装了应用内消息传递后才出现此错误。让我感到困惑的是:几乎没有任何代码来设置它,那么我在哪里会得到一个 nil URL 错误?

起初,我不确定是 Firebase IAM 导致了问题,但在删除并重新安装后,问题消失了,然后又出现了。所以,我将描述我是如何安装 Firebase IAM 的。我使用此链接作为参考:

https://firebase.google.com/docs/in-app-messaging/get-started?authuser=0

  1. 使用 cocoapods 1.4.0 将它添加到我的 Podfile

  2. 在我的方案中添加了“-FIRDebugEnabled”

  3. 获取了我的实例 ID,并将其添加到控制台中的活动中

  4. 仔细检查了我的计划

错误:

    Terminating app due to uncaught exception
    'NSInvalidArgumentException', reason: ' -[NSBundle initWithURL:]: nil URL argument'
    First throw call stack:
    (0x234b8cec4 0x233d5da40 0x234a93594 0x23554f6a8 0x23554f62c 
    0x10027a1b8 0x10248cdc8 0x10248ee28 0x10027a0f8 0x10027a2c0
    0x10027b518 0x100267038 0x100260888 0x100266e44 0x100267328   
    0x100264bd0 0x10248b824 0x10248cdc8 0x10248fc90 0x10249e1dc
    0x10249ebc8 0x2347a917c 0x2347abcec)
    libc++abi.dylib: terminating with uncaught exception of type NSException

在控制台中,我的实例 ID 出现,然后是更多信息,然后是错误,所以我不知道是什么原因导致它发生。这是我控制台中的一些输出:

     [Firebase/InAppMessaging][I-IAM700004] 1 messages were fetched successfully.
    [Firebase/InAppMessaging][I-IAM270005] No impression records update due to no change after applying the server message list
    [Firebase/InAppMessaging][I-IAM160010] There are analytics event trigger based messages, enable listening
    [Firebase/InAppMessaging][I-IAM160001] There are 0 test messages and 1 regular messages and 3 Firebase analytics events to watch after resetting the message cache
    [Firebase/InAppMessaging][I-IAM240002] Fetch is done. Start message rendering flow.

作为参考,当您搜索错误时,我已经查看了所有这些链接以及更多内容:

有任何想法吗?

4

2 回答 2

0

我通过在资源路径为零的位置放置断点开始调试应用程序。当您遇到断点时,该值为 nil 并显示proj_name 是通过优化编译的 - 步进可能会表现得很奇怪..消息。

这使我们无法查看实际变量值,因为 pod 项目设置优化与 main 和 target 设置不同,因此更改为 None。

Pods > 项目设置 > 构建设置 > 代码生成

图片

现在我能够看到主应用程序包的值/路径,但 proj_name.app 中仍然缺少 InAppMessagingDisplayResources.bundle,这提示复制文件时出错。发现仅在检查安装时运行脚本的复制 pod 资源部分标志。取消选中它,应用程序并没有因为缺少捆绑包而崩溃。

目标设置 > 构建阶段 > 复制 Pod 资源

图片

于 2019-05-29T18:36:44.207 回答
0

失败的原因是缺少 InAppMessagingDislayResources.bundle 文件。您需要 Copy Pods Resources Build Phase 脚本来复制和创建该文件。以下将恢复该构建阶段脚本。


-在 Xcode 中运行 clean -
删除 Pods 目录 -
删除 Podfile.lock 文件
-在项目目录中运行 'pod install' -
重启 Xcode

于 2019-02-21T22:52:28.190 回答