Firebase Unity iOS未捕获异常:NSInvalidArgumentException:+ [FIRApp registerLibrary:withVersion:]

时间:2018-04-13 10:49:28

标签: ios iphone firebase unity3d build

问题:

Uncaught exception: NSInvalidArgumentException: +[FIRApp registerLibrary:withVersion:]: unrecognized selector sent to class 0x101b94b98

XCode error screenshot

我尝试了很多解决方案,但没有任何效果。我来详细介绍一下

  • 通过设置最低目标版本9.0
  • 从Unity 2017.3.0f3制作iOS版本
  • 创建了Podfile

    $ cd your-project directory

    $ pod init

  • 我的Podfile就是这样的

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'Unity-iPhone' do
  # Uncomment the next line if you're using Swift or would like to use dynamic frameworks
  # use_frameworks!

  # Pods for Unity-iPhone
  pod 'GoogleInterchangeUtilities'
  pod 'GoogleSymbolUtilities'
  pod 'GoogleToolboxForMac'
  pod 'Firebase'
  pod 'Firebase/Core'
  pod 'Firebase/Analytics'
  pod 'Firebase/Auth'
  pod 'Firebase/Storage'
  pod 'Firebase/Database'

  target 'Unity-iPhone Tests' do
    inherit! :search_paths
    # Pods for testing
  end

end
  • ObjC的目标构建设置中添加了linker flag Other Linker Settings
  • Arguments Passed On Launch部分,添加了-FIRAnalyticsDebugEnabled
  • AdSupport.framework部分
  • 中添加了Linked Frameworks and Libraries
  • 然后按.xcworkspace进行构建,而不是.xcodeproj

那么,告诉我我做错了什么?

  • 不是Firebase Unity插件应该没有像我这样的任何设置麻烦,如果是Android的话,它本身就是一切,只需导入插件就可以了吗?

1 个答案:

答案 0 :(得分:0)

通过按照this link (Stack Overflow)

中提供的步骤更新pod,解决了主要问题

之后只需执行以下步骤即可使XCode项目正常工作,因为pod initpod install由Unity完成:

  • Xcode Workspace - Add Cocoapods to the Xcode workspace
  • 中选择iOS Resolver Settings,从Unity构建XCode
  • 打开.xcworkspace,而不是.xcodeproj
  • Other Linker Flags
  • 中添加-ObjC target's build settings
  • 如果你是using Firebase Analytics,那么你还必须在AdSupport.framework部分添加Linked Frameworks and Libraries

最后,请查看Firebase Launch Checklist