【问题标题】:Firebase Module install on iosFirebase 模块在 ios 上安装
【发布时间】:2016-09-16 06:57:00
【问题描述】:

我遵循了在ios 上集成新的firebase 版本的所有说明:

  1. 我下载了GoogleService-Info.plist 文件并将其包含在项目中。

  2. 我用 cocoapods 安装了框架

问题出在这一行:

@import Firebase;

Xcode 打印出这个错误:

“未找到模块 Firebase”

解决办法是什么?

我的代码:

#import "AppDelegate.h"

@import Firebase

@interface AppDelegate ()

@end

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [FIRApp configure];

    // Override point for customization after application launch.
    return YES;
}

【问题讨论】:

  • 在此处发布您的代码快照。
  • 我在 Objective-C 中,我缺少什么?
  • @N.Hicheri 使用这个#import
  • 检查这个Firebase Doc#import <Firebase/Firebase.h>
  • @N.Hicheri 如果你能写成[FIRApp configure];,说明你的框架已经导入成功了。

标签: ios firebase


【解决方案1】:

首先检查 Target > Build Settings > Framework Search Paths 中是否有 $(inherited) 标志

如果仍然有错误,请执行以下步骤:

  1. 退出 Xcode。
  2. 删除位于~/Users/YourUserName/Library(hidden one)/Developer/Xcode/DerivedData 的项目临时文件
  3. 删除ProjectName.xcworkspace
  4. 备份项目的Podfile并删除Podfile.lock文件和Pods文件夹
  5. 运行pod init
  6. 用新的Podfile 替换您以前的Podfile
  7. 终于运行pod install

现在打开新创建的ProjectName.xcworkspace 文件并构建。

如果您在查找 DerivedData 位置时遇到问题,请查看以下答案: https://stackoverflow.com/a/39495772/1572408

【讨论】:

    【解决方案2】:

    在导入时遇到了同样的问题。 我的目标的构建设置覆盖了没有“$(继承)”标志的“标题搜索路径”

    “pod update”会警告您。

    1. 打开您的目标构建设置
    1. 在“标题搜索路径”中添加一行包含 $(inherited)。

    它为我解决了这个问题

    希望对你有帮助

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题。我发现问题是我在 Cocoapods 文件中有三个目标。只有我的一个主要目标添加了 Firebase。因此,当我想将 Firebase 导入其他目标中使用的文件时,Xcode 会给出错误并显示未找到模块“Firebase”。这是我的 pods 项目文件。对我来说,一种解决方案是将 Firebase pod 添加到所有目标。或者另一种解决方案是从其他目标中删除文件。

      def common_pods
        pod 'XXX'
      end
      
      target 'myMainProject' do
        common_pods()
        pod 'Firebase/Core'
        pod 'Firebase/AdMob'
        pod 'Firebase/RemoteConfig'
        pod 'Firebase/Crashlytics'
        pod 'Firebase/Analytics'
      end
      
      target 'myExtention1' do
        common_pods()
      end
      
      target 'myextension2' do
        common_pods()
      end

      【讨论】:

        【解决方案4】:

        我尝试了上述方法,但遗憾的是,没有任何效果。 清理构建文件夹,清除 Xcode 缓存对我有帮助。试试这个:

        1. 退出 Xcode。
        2. 删除位于 ~/Library/Developer/Xcode/DerivedData 的项目临时文件
        3. 删除 ProjectName.xcworkspace
        4. 删除 Podfile.lock 文件和 Pods 文件夹
        5. 运行 pod install。
        6. 打开新创建的 ProjectName.xcworkspace 文件并构建。

        请多注意第 6 步。打开这个新创建的 xcworkspace,而不是 xcodeproj。

        原答案:https://stackoverflow.com/a/44486792/913601

        【讨论】:

        • 我尝试了此页面上的所有其他内容,这是唯一有效的方法——对我来说,关键是删除整个 Pods 文件夹。
        【解决方案5】:

        它以这种方式为我工作。

        使用 FirebaseCore/FirebaseCore.h

        试试下面的代码。

        #import "AppDelegate.h"
        #import <FirebaseCore/FirebaseCore.h>
        
        - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
            // Override point for customization after application launch.
            [FIRApp configure];
            return YES;
        }
        

        【讨论】:

        • 我也是。谢谢,伙计!
        • 这对我有用。我正在为 iOS 平台构建 Cordova 应用程序。
        【解决方案6】:

        这很蹩脚,但我通过将源添加到我的项目而不是使用 pod 来解决集成问题。我也不得不手动修复一些文件。

        【讨论】:

          【解决方案7】:

          我最终通过使用来修复它

          #import &lt;Firebase/Firebase.h&gt;

          而不是

          @import Firebase

          【讨论】:

          • 对我来说这很有效,但我不能使用 而是使用“引号”
          • 为我工作。科尔多瓦平台rm ios和#import &lt;Firebase/Firebase.h&gt;
          【解决方案8】:

          我有类似的问题指出 FirebaseMessaging 模块在标题中找不到,即使我有正确的 Podfile 配置。

          Solution is to remove Cocoapods from project and add it again.
          

          您可以使用link.从项目中删除 CocoaPods

          之后,您可以使用link.再次添加 CocoaPods

          以下是我使用过的 Podfile 的快照。

          下面的快照显示了使用 Pod 安装的依赖项的日志记录。

          【讨论】:

          【解决方案9】:

          adding the Firebase SDK to your iOS project有两种方式。您可以使用 CocoaPods,在这种情况下,确保您的 pod 依赖项在您正在使用的目标中非常重要。例如。

          use_frameworks!
          platform :ios, '7.0'
          pod 'Firebase/Analytics'
          
          target 'Target1' do
          end
          target 'Target2' do
          end
          

          在 CocoaPods 中有很多不同的配置目标的方法,所以你的 Podfile 可能看起来不同。重要的是您指定的目标与 pod 相关联 - 在这种情况下,我指定了 Analytics pod,因此它可用于所有目标,但如果我将它放在 Target1 do...end 块中,那么它不会在 Target2 中可用。

          如果您使用框架集成方法,请确保在“构建阶段”选项卡的Link Binary With Libraries 部分中指定了库。如果您将它们拖到 Xcode 中的 Frameworks 组中,这应该会自动发生。

          最后,如果这不起作用,Xcode 可能缓存了一些不好的东西。尝试打开 Product 菜单,按住 Option 并单击 Clean build folder

          【讨论】:

          • 我尝试在 Build Phases 选项卡下手动链接它,然后清理 build 文件夹,但它仍然对我不起作用。有什么想法吗?
          • 如果您只是使用足够的框架 - 请确保您拥有所需的全套框架(应该是您服务的 zip 目录中的所有框架)重复使用)
          【解决方案10】:

          更新您的 pod。 打开终端转到您的项目目录并输入以下命令

          吊舱更新

          【讨论】:

            【解决方案11】:

            我有同样的问题并在这里找到了解决方案:iOS - Firebase error: Use of unresolved identifier FIRApp running supplied code

            在终端命令行执行以下步骤:

            1. pod 存储库更新
            2. 评论了我的 Podfile 中的 pod 'Firebase' 行
            3. pod install(这删除了旧的 Firebase)
            4. 再次添加了 pod 'Firebase' 行。
            5. pod install(添加了新的 Firebase)

            我认为第二步和第三步是关键,否则 CocoaPods 不会尝试更新它。正如我所说,也许这可以通过更新 pod 来解决,但现在我无法返回再试一次。

            【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-02-17
            • 1970-01-01
            • 2018-09-19
            • 2012-07-22
            • 2014-09-20
            • 2013-10-02
            • 2015-03-26
            • 2011-05-17
            相关资源
            最近更新 更多