【发布时间】: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