0

我的 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

建议包括:

  • use_frameworks!在我的 podfile 中与 进行交换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 二进制分发,如下所示,但对于我的生活,我无法让它工作,所以我将它归结为一个失败的原因,不幸的是。按照自述文件集成静态 Firebase SDK 似乎很简单,但它只是添加了大约 50 个“未定义符号”问题等等,所以我最终重新添加了 pod,可能只需要硬着头皮注册付费苹果开发人员程序,以便在我的设备上进行调试...向 Apple 翻白眼...

4

1 回答 1

1

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

或者,Firebase 还提供zip 二进制分发实验性 Carthage 分发

于 2020-02-18T02:16:29.327 回答