В большинстве случаев для небольшого проекта будет достаточно добавить use_modular_headers!
вместо удаленного import_frameworks!
.
В качестве альтернативы вы можете попробовать добавить :modular_headers => true
после каждого объявления модуля «отсутствующего» модуля:
pod 'Firebase/Auth' :modular_headers => true
pod 'Firebase/Database' :modular_headers => true
pod 'Firebase/Storage' :modular_headers => true
pod 'Firebase/DynamicLinks' :modular_headers => true
Однако в более крупном проекте могут содержаться модули, которые просто не хотят быть статичными, с модульными заголовками или без них. Один хороший пример - Facebook SDK. Для этого случая есть классное дополнение здесь , которое позволяет указать, какие модули вы хотите оставить динамическими.
Вот пример подфайла, где все библиотеки будут статическими, кроме тех, которые перечислены в массиве dynamic_frameworks:
platform :ios, deployment_target: '9.3'
inhibit_all_warnings!
# Import CocoaPods sources
source 'https://github.com/CocoaPods/Specs.git'
use_frameworks!
dynamic_frameworks = ['Bolts', 'FBSDKCoreKit', 'FBSDKLoginKit', 'FBSDKShareKit']
# make all the other frameworks into static frameworks by overriding the static_framework? function to return true
pre_install do |installer|
installer.pod_targets.each do |pod|
if !dynamic_frameworks.include?(pod.name)
puts "Overriding the static_framework? method for #{pod.name}"
def pod.static_framework?;
true
end
end
end
end
target 'MyApp' do
pod 'SwiftLint'
pod 'Firebase/Auth'
pod 'Firebase/Database'
pod 'Firebase/Storage'
pod 'Firebase/DynamicLinks'
pod 'FBSDKCoreKit', '~> 4.33.0'
pod 'FBSDKLoginKit', '~> 4.33.0'
pod 'FBSDKShareKit', '~> 4.33.0'
end