除了 Cocoapods 之外,还有其他方法可以将 Firebase 整合到我的 iOS 应用程序中吗?

Posted

技术标签:

【中文标题】除了 Cocoapods 之外,还有其他方法可以将 Firebase 整合到我的 iOS 应用程序中吗?【英文标题】:Is There an Alternative Way to Incorporate Firebase into my iOS App Other Than Cocoapods? 【发布时间】:2020-02-17 20:09:06 【问题描述】:

我的 iPhone 最近自动更新到 ios 13.3.1,直到很晚才知道 Apple 在 Xcode 中测试物理设备上的应用程序时阻止使用某些外部框架。

我不能再在我的 iPhone 上运行我的应用程序(虽然模拟器仍然可以工作,但它更不方便)。我正在使用 cocoapods,导致问题的一个是 Firebase。我需要 Firebase,所以我的问题是:还有其他方法可以在不使用 pod 的情况下将 Firebase 集成到我的应用中?我仍在将 cocoapods 用于其他事情,它们似乎工作正常,但是对于 Firebase,有没有办法手动添加框架以便仍然能够在我的物理设备上启动它?

作为参考,这是 *** 上提出的另一个问题,它显示了我遇到的确切问题:Library not loaded: @rpath/FBLPromises.framework/FBLPromises iOS 13.3.1

包含的建议:

将我的 podfile 中的 use_frameworks!use_modular_headers! 进行交换,但这不适用于 Firebase,因为许多其他事情都会中断......就像它需要动态才能让 Firebase 工作。 从 13.3.1 恢复到 iOS 13.3。我当然愿意这样做,我尝试了几天,但看起来苹果现在停止签署 13.3,所以我无法使用 13.3 固件来将我的 iPhone 恢复到以前的版本......意思是我我被 13.3.1 困住了 升级到付费开发者帐户。有人说这个问题只存在于免费开发者帐户,但我现在不愿意冒险升级我的帐户,原因有两个:1)我无从得知确保通过升级我的帐户可以解决此问题,并且我不想在没有保证的情况下花费现金,并且 2) 我距离将我的应用提交到 App Store 还很遥远,所以在我无限期开发期间,无需向 Apple 支付费用。

回到手头的问题:我可以手动将 Firebase 框架添加到我的应用程序,而不会遇到通过 cocoapods 添加它相关的问题,例如上面链接的问题?

编辑 1

这是我的 Podfile 供参考:

    # Uncomment the next line to define a global platform for your project

platform :ios, '8.0'

target 'JeegO' do
  # Comment the next line if you don't want to use dynamic frameworks

#use_frameworks!

use_modular_headers!

  # Pods for JeegO

pod 'Firebase'
pod 'Firebase/Auth'
pod 'Firebase/Database'
pod 'SVProgressHUD'
pod 'ReachabilitySwift'
pod 'SendGrid', :git => 'https://github.com/scottkawai/sendgrid-swift.git'
pod 'iCarousel'
#pod 'PromisesSwift'

end

编辑 2

我最终删除了我的 Firebase pod 并尝试使用 Firebase 的 zip 二进制分发包,如下所示,但对于我的生活,我无法让它工作,所以我将其归结为一个失败的原因,不幸的是。在 readme 之后集成静态 Firebase SDK 似乎很简单,但它只是添加了大约 50 个“未定义符号”问题等,所以我最终重新添加了 pod,可能只需要硬着头皮注册付费的苹果开发者计划,以便在我的设备上进行调试...苹果的眼球...

【问题讨论】:

不抱歉,Google 对这个很失望。 根据 GitHub 页面,您可以使用 Carthage 或 Rome。罗马似乎是您正在寻找的方法。 你试过 swift 包了吗?如果您只使用 firebase,您可以在 SPM 中添加 GitHub SDK 链接并将其添加为框架。我没有自己测试过,但它可以解决你的问题 【参考方案1】:

Firebase 确实支持use_modular_headers! 如果您遇到问题,请提交issue 并提供详细信息。

此外,Firebase 还提供 zip binary distribution 和 experimental Carthage distribution。

【讨论】:

感谢您的提示,我将研究使用 zip 二进制分发集成它是否有效。但首先我会尝试 use_modular_headers!再一次,因为我已经设置了豆荚。我得到的错误基本上是ld: library not found for -lFirebaseAuth。听起来很简单,但我不确定如何满足它的要求...... 您可能需要清理 DerivedData 并重新启动 Xcode。 刚刚尝试删除我的 DerivedData,关闭 Xcode,又做了一次pod update 然后pod install,重新打开了我的 .xcworkspace 项目,清理了构建文件夹,然后重新构建,但仍然出现相同的错误。我会将我的 Podfile 添加到原始帖子中以供参考......但我基本上是在运行 pod update 然后 pod install ,然后打开 .xcworkspace 项目文件,这就是我得到的错误。

以上是关于除了 Cocoapods 之外,还有其他方法可以将 Firebase 整合到我的 iOS 应用程序中吗?的主要内容,如果未能解决你的问题,请参考以下文章

除了通过 main 的 argv 之外,还有其他方法可以将用户参数传递给程序吗?

CocoaPods:命令行构建

除了缩略图方法之外,还有其他方法可以在 Iphone 中截取视频吗?

除了使用字符串文字之外,还有其他方法可以在 C 中指定或输入 Unicode 代码点吗?

Android:除了 Location.getAltitude() 之外,还有其他方法可以获取高度吗? (我听说过使用传感器)

除了覆盖表之外,还有其他方法可以更新 Big Query 中的行吗?