Импорт Firebase в динамическую среду Swift (с/без Cocoapods) и импортную инфраструктуру в целевой программе
Firebase для iOS - это инфраструктура Objective-C, которая рекомендует интеграцию с использованием Cocoapods. Вот как я пытаюсь настроить его:
Я запускаю Xcode 8b6 на OS X 10.11.6. Приложение создается с помощью iOS 10 SDK, ориентированного на iOS 9.
MyApp
- это регулярное (быстрое) приложение iOS, которое я хочу использовать.
MyFramework
- встроенная динамическая структура с приложением q. Я хотел бы, чтобы весь код Firebase был абстрагирован от рамки и поэтому добавил Firebase в цель MyFramework
в моей Podfile
:
# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
target 'MyApp' do
# Comment this line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
# Pods for MyApp
target 'MyAppTests' do
inherit! :search_paths
# Pods for testing
end
end
target 'MyApp' do
pod 'Firebase'
pod 'Firebase/Database'
pod 'Firebase/Auth'
end
При запуске pod install
я могу импортировать Firebase во все .swift
файлы в MyFramework
. Однако при использовании import MyFramework
в любом месте моего приложения я получаю сообщение об ошибке Missing required module Firebase
.
Думая, что это может быть проблема с Cocoapods, я начал новый проект и интегрировал Firebase вручную, но в итоге оказался с той же проблемой.
Это известная проблема? Если да, есть ли какие-либо исправления для него?
Ответы
Ответ 1
Закройте свою среду XCODE, а затем внесите следующие изменения в свой файл podfile
# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
target 'MyApp' do
# Comment this line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
pod 'Firebase'
pod 'Firebase/Database'
pod 'Firebase/Auth'
# Pods for MyApp
target 'MyAppTests' do
inherit! :search_paths
# Pods for testing
end
end
После изменения podfile. запустить 'pod update'. После установки вы можете открыть свой файл YOURAPP.xcodeworkspace в каталоге YOURAPP. Очистите свой проект и постройте. Конечно, убедитесь, что вы импортируете свои модули.
Убедитесь, что вы загрузили и перетащили свой файл google.plist из консоли firebase в свой проект в XCODE. Инструкции по подключению вашего проекта к firebase хорошо написаны в их документах.
Ответ 2
Может быть, вы можете включить это в свой подфайл
//Как вы нацелены на iOS 9.0
platform :ios, '9.0'
use_frameworks!
def firebase_pods
pod 'Firebase'
pod 'Firebase/Database'
pod 'Firebase/Auth'
end
target 'MyApp do
firebase_pods
Дайте мне знать, если это не сработает для вас, я могу попытаться помочь другим способом
Ответ 3
В подспецификации MyFramework добавьте зависимость от модулей Firebase. Также установите флаг статической структуры как true
. Вот как должен выглядеть ваш подспец:
*OTHER METADATA RELATED TO MYFRAMEWORK*
s.static_framework = true
s.dependency 'Firebase'
s.dependency 'Firebase/Database'
s.dependency 'Firebase/Auth''