【问题标题】:Firebase Unity iOS ProblemsFirebase Unity iOS 问题
【发布时间】:2017-06-25 19:34:12
【问题描述】:

我已经在 Unity 中的 Android 版本下成功设置了 Firebase,但我真的很难让它在我的 iOS 版本中运行。

Unity Firebase 项目已设置并且看起来不错:

我已按照以下所有步骤操作: https://firebase.google.com/docs/unity/setup

我已经安装了 CocoaPods:

skywalker:sl leonard$ pod --version
1.2.0

这是生成的顶级 iOS 项目:

skywalker:sl leonard$ ls
Classes                    Libraries
Data                    MapFileParser
Info.plist                MapFileParser.sh
LaunchScreen-iPad.png            Unity-iPhone
LaunchScreen-iPad.xib            Unity-iPhone Tests
LaunchScreen-iPhone.xib            Unity-iPhone.xcodeproj
LaunchScreen-iPhoneLandscape.png    UnityData.xcassets
LaunchScreen-iPhonePortrait.png        build

我没有看到正在添加的 GoogleService-Info.plist 文件,并且还需要一个 Podfile(但我只是猜测它会生成一个)。

项目产生错误并试图手动解决它们只会产生更多错误。

这是第一次构建后的项目:

尝试解决此模块禁用错误:

然后在构建这就是我所看到的:

然后我尝试添加 GoogleMobileAds.framework iOS 框架:

再次运行后出现以下错误:

在线阅读有关这些错误的信息后,很多人提到了 CocoaPods,但运行 pod init 只是创建了一个空白工作区,并没有解决我的问题。

【问题讨论】:

  • 对于任何有兴趣的人。我解决这个问题的方法是按照上述步骤操作,但每次通过 Unity 重建时,都要从 iOS 项目中手动删除和读取 GoogleMobileAds.framework。不理想,但至少它有效

标签: ios firebase admob unity3d-5


【解决方案1】:

我遇到了类似的问题,通过转到应用程序的 Xcode 目录并运行“pod init”,我能够在 XCode 中构建我的应用程序。这创建了 podfile。然后我用 SublimeText 编辑了那个文件(显然有些编辑器导致编辑这个文件出现问题,我不完全清楚为什么)并添加了我需要的 pod。我的 podfile 最终看起来像这样:

platform :ios, '7.0'target 
'Unity-iPhone' do
pod 'Firebase/Analytics', '~> 3.10'
pod 'Firebase/Auth', '~> 3.10'
pod 'Firebase/Core', '~> 3.10'
pod 'Firebase/Messaging', '~> 3.10'
pod 'Firebase/RemoteConfig', '~> 3.10'
end

然后我在同一目录中运行“pod install”并创建了 .xcworkspace 文件(这需要一些时间,因为它安装了几个先决条件)。打开 .xcworkspace 文件,我就能够成功构建和运行我的应用程序。我遇到了额外的运行时问题(这就是我今天在 StackOverflow 上的原因),但这至少可以编译项目。

您需要将 GoogleServices-info.plist 文件的副本复制到应用的 xcode 目录中。 Unity 自动为我复制了它,但是 YMMV。

希望这会有所帮助。

【讨论】:

  • 感谢您的建议,我相信通过足够的摆弄是可能的。我确实走上了这条路,这让人头疼。此外,由于 Unity 不断覆盖内容,因此不断应用自定义更改是很痛苦的。
【解决方案2】:

你能链接你的 podfile 的内容吗?如果你刚刚添加了

pod 'Firebase/Core'

那可能还不够:https://firebase.google.com/docs/ios/setup#available_pods

pod 'Firebase/Core' Prerequisite libraries and Analytics
pod 'Firebase/AdMob'    AdMob
pod 'Firebase/Messaging'    Cloud Messaging / Notifications
pod 'Firebase/Database' Realtime Database
pod 'Firebase/Invites'  Invites
pod 'Firebase/DynamicLinks' Dynamic Links
pod 'Firebase/Crash'    Crash Reporting
pod 'Firebase/RemoteConfig' Remote Config
pod 'Firebase/Auth' Authentication
pod 'Firebase/Storage'  Storage

您可能必须为您正在使用的功能添加所有 pod。

免责声明:我目前正在尝试让我的构建也可以在 ios 上运行(就像在 android 上的魅力一样)。自己才意识到这个问题,我之前也只包含了 pod 'Firebase/Core'。

【讨论】:

  • Unity 没有生成 Podfile,我认为应该有
  • @leonardseymore 不确定 Unity 是否应该自动生成它,但添加它很容易。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-12
  • 1970-01-01
  • 2017-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多