Проблемы iOS с Firebase Unity

Я успешно настроил Firebase в своей сборке Android в Unity, но я действительно борюсь за то, чтобы он работал в моей сборке 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, а также ожидал подфайла (но я просто предполагаю, что он его сгенерирует).

Проект генерирует ошибки, и попытка их устранения вручную приводит к еще большему количеству ошибок.

Вот проект сразу после первой сборки: введите здесь описание изображения

Попытка устранить эту ошибку отключения модулей: введите здесь описание изображения

Затем после сборки я вижу следующее: введите здесь описание изображения

Затем я попытался добавить платформу iOS GoogleMobileAds.framework: введите здесь описание изображения

После повторного запуска я получаю следующие ошибки: введите здесь описание изображения

После прочтения в Интернете об этих ошибках было много упоминаний о CocoaPods, но запуск pod init просто создал пустое рабочее пространство и не решил мою проблему.


person leonardseymore    schedule 08.02.2017    source источник
comment
Для всех, кто заинтересован. Чтобы обойти это, я выполнил шаги, описанные выше, но вручную удалял и читал GoogleMobileAds.framework из проекта iOS каждый раз, когда я перестраивал через Unity. Не идеально, но по крайней мере работает   -  person leonardseymore    schedule 31.07.2017


Ответы (2)


У меня была аналогичная проблема, и я смог создать свое приложение в XCode, перейдя в каталог приложения Xcode и запустив «pod init». Это создало подфайл. Затем я отредактировал этот файл с помощью SublimeText (по-видимому, некоторые редакторы вызывают проблемы с редактированием этого файла, я не совсем понимаю, почему) и добавил нужные мне модули. Мой подфайл в итоге выглядел так:

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.

Надеюсь это поможет.

person Drew C    schedule 14.02.2017
comment
Спасибо за предложение, я считаю, что при достаточном воздействии это возможно. Я пошел по этому пути, и это создало головную боль. Кроме того, поскольку Unity продолжает переопределять вещи, трудно продолжать применять пользовательские изменения. - person leonardseymore; 16.02.2017

Не могли бы вы связать содержимое вашего подфайла? Если вы только что добавили

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

Возможно, вам придется добавить все модули для функций, которые вы используете.

Отказ от ответственности: в настоящее время я пытаюсь заставить свою сборку работать и на ios (работает как шарм на Android). Только что сам понял эту проблему, раньше я также включал только модуль «Firebase/Core».

person Christian Strang    schedule 10.02.2017
comment
Unity не сгенерировал Podfile, я предполагаю, что он должен был - person leonardseymore; 13.02.2017
comment
@leonardseymore Не уверен, что Unity должна генерировать его автоматически, но добавить его довольно просто. - person Christian Strang; 13.02.2017