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

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

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

作为参考,这是 StackOverflow 上提出的另一个问题,它显示了我遇到的确切问题: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 链接并将其添加为框架。我没有自己测试过,但它可以解决你的问题

标签: swift xcode firebase cocoapods ios13.3


【解决方案1】:

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

此外,Firebase 还提供 zip binary distributionexperimental 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 项目文件,这就是我得到的错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-15
  • 2018-03-01
  • 1970-01-01
  • 2015-12-08
  • 1970-01-01
相关资源
最近更新 更多