Импорт 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''