Здравствуйте, вот наш Podspec, который имеет default_subspec
и необязательный подспец (который не будет принят, поскольку значение по умолчанию уже установлено). Этот подспец имеет больше возможностей, но занимает дополнительные 8 МБ ...
`s.default_subspec = 'mainSDK'
s.subspec 'mainSDK' do |mainSDK|
mainSDK.vendored_frameworks = 'mainSDK.framework'
mainSDK.source_files = "mainSDK.framework/Headers/*.h"
end
s.subspec 'additionalSDK' do |additionalSDK|
additionalSDK.source_files = "additionalSDK.framework/Headers/*.h"
additionalSDK.vendored_frameworks =['additionalSDK.framework', 'mainSDK.framework']
end
Теперь в наш mainSDK мы включаем дополнительный SDK с #, если canImport (AdditionalSDK) Затем мы предоставляем код, связанный с дополнительным SDK, между этими флагами компилятора, например:
#if canImport(additionalSDK)
//adding optional delegate
class ViewController: UIViewController, OptionalDelagate
#else
//no need for delagete
class ViewController: UIViewController
#endif
Однако, после того, как клиент интегрирует наш mainSDK, он видит, что в этом фреймворке отсутствует модуль: AdditionalSDK.framework
Как это возможно? Мы отметили дополнительный SDK как необязательный в нашей рабочей области. Мы попытались установить AdditionalSDK в качестве -weak_framework в других флагов компоновщика (настройки сборки), но это не помогло.
Если клиент интегрирует AdditionalSDK , все работает хорошо, потому что все платформы связаны ..
& # x200B;
Дополнительные зависимости, без CocoaPods работают хорошо, это просто проблема CocoaPods, или я не знаю, как его настроить
s.platform = :ios
s.ios.deployment_target = '9.0'
s.name = "mainSDK"
s.summary = "mainSDK IOS SDK"
s.requires_arc = true
# 2
s.version = "1.0.8.6.5"
s.source = { :http => "https://s3-eu-west-1.amazonaws.com/zipOfSDK.zip"}
s.framework = "UIKit"
s.source_files = "mainSDK.framework/Headers/*.h"
s.default_subspec = 'mainSDK'
s.subspec 'mainSDK' do |mainSDK|
mainSDK.vendored_frameworks = 'mainSDK.framework'
mainSDK.source_files = "mainSDK.framework/Headers/*.h"
end
s.subspec 'additionalSDK' do |additionalSDK|
additionalSDK.source_files = "additionalSDK.framework/Headers/*.h"
additionalSDK.vendored_frameworks =['additionalSDK.framework', 'mainSDK.framework']
end
s.swift_version = "4.2"
end