Как получить доступ к коду из subspec в основной платформе с помощью #if canImport () - PullRequest
0 голосов
/ 08 марта 2019

мы создали фреймворк, который имеет несколько расширений (подвидов). Мы распространяем наш фреймворк как облегченный Pod без дополнительных подвидов.

& # x200B;

Однако, несмотря на то, что наши подспец настроены правильно, и клиент интегрирует их отдельно, но наш фреймворк падает, если клиент интегрирует облегченную версию без каких-либо дополнительных модулей. .. Ошибка говорит о том, что наш фреймворк не может ссылаться на другой фреймворк из подвидов в коде ...

Я делаю ссылочный код из подспецификации, но только между #, если canImport (необязательный каркас) . Почему тогда наш фреймворк падает?

Причина: изображение не найдено

& # x200B;

Наш подспец:

s.default_subspec = 'defaultSDK'

s.subspec 'defaultSDK' do |default|
default.vendored_frameworks = 'Default.framework'
end

s.subspec 'firstSubspec' do |first|
//accesses separate framework 
first.dependency   = 'First'
end

тогда в нашей платформе по умолчанию мы вызываем:

#if canImport(First)
import First
#endif

В нашем подфайле SDK по умолчанию мы включаем фреймворк firstSubspec, поскольку он также доступен как отдельный фреймворк

pod 'First'

И использовать ту же логику для вызова любых методов из First.framework.

Что не так с нашей структурой? Мы можем сделать это в Android ...: (

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...