使用Firebase和Swift Framework时崩溃

时间:2018-04-17 19:05:16

标签: firebase cocoapods

我使用Swift Frameworks(Cocoa Touch Framework)将代码分割成相当独立的模块。我已经将几个带有Cocoapods的外部库导入到主应用程序中,并且这些模块到目前为止没有任何问题。

  

Xcode 9.3

     

iOS 11.2

     

CocoaPods 1.5

     

GoogleToolboxForMac(2.1.3),Firebase(4.13.0),FirebaseAnalytics(4.2.0),FirebaseCore(4.0.20),FirebaseDatabase(4.1.5),FirebaseInstanceID(2.0.10)

但是,当我在任何这些模块中导入Firebase时,除了在主应用程序中导入它之外,我的应用程序崩溃了。

我甚至不需要在模块中使用Firebase中的任何内容;只需将pod添加到Podfile中的目标(本例中为模块Store),一旦离开主窗口(fira_viewDidDisappear),就会使应用程序崩溃。

启动期间还有一长串问题(其他人也有报道),类似于:

objc[36264]: Class FIRAIdentifiers is implemented in both /{$userdir}/Library/Developer/Xcode/DerivedData/FrameWork101-aekmajbumgzabmayoanlcrwtzbcs/Build/Products/Debug-iphonesimulator/Store.framework/Store (0x105478318) and /{$userdir}/Library/Developer/CoreSimulator/Devices/31D920E9-CD46-47C4-9631-503B3471AAF7/data/Containers/Bundle/Application/57B8020D-E2AB-4A06-B654-5F26F8E00AF6/FrameWork101.app/FrameWork101 (0x103b1ef80). One of the two will be used. Which one is undefined.

相当不祥的声明......

有几个线程与此有些相关:

即使是issue (#6619)提交......

但他们没有明确的解决方案/答案,问题甚至在没有任何解决方案的情况下被关闭。

那么有没有办法在模块化方法中使用Firebase(使用框架)?如果是这样,最好的方法是什么呢?或Firebase SDK是否具有侵入性?

谢谢!

Podfile

project 'FrameWork101.xcodeproj'

platform :ios, '11.2'

target 'Binding' do
  use_frameworks!    
  pod 'ReactiveKit'
  pod 'Bond'
end

target 'Model' do
  use_frameworks!
  target 'ModelTests' do
    inherit! :search_paths
  end    
end

target 'Service' do
  use_frameworks!
  pod 'ReactiveKit'
  pod 'Bond'
end

target 'View' do
  use_frameworks!
  pod 'ReactiveKit'
  pod 'Bond'
end

target 'Store' do
  use_frameworks!
  pod 'ReactiveKit'
  pod 'Bond'
  pod 'Firebase/Database'   <---- comment this out and it works fine.
end

target 'FrameWork101' do
  use_frameworks!
  pod 'Firebase/Core'
  pod 'ReactiveKit'
  pod 'Bond'
  target 'FrameWork101Tests' do
    inherit! :search_paths
  end
end

崩溃报告的一部分:

FIRAScreenClassName crash

0 个答案:

没有答案