Intro
Я работаю над SDK.framework
, который мне нужно распространять как программное обеспечение с закрытым исходным кодом .Чтобы охватить и проекты Objective-C, и проекты Swift, я решил написать его на компьютере Objective-C
. В локальной среде у меня есть два проекта:
- SDK (исходный код фреймворка)
- DemoApp (приложение, которое связывается с SDK.framework)
* Эти проекты в отдельном рабочем пространстве
Проблема
Когда я компилирую SDK.framework
локально, это работаетидеально.
Как только я получаю один из CI (он имеет другую версию iOS SDK) и пытается связать его с DemoApp
Я получаю эту ошибку:
ld: SDK.framework скомпилирован сболее старая версия языка Swift (4.0), чем предыдущие файлы (неизвестная версия ABI 0x06)
Вопросы
- Поскольку мой SDK 100% target-c Framework, я понятия не имеюпочему он заявляет о быстрой версии
- Мой SDK зависит от других платформ, и одна из них -
SocketIO-Client-Swift
.AFAIK это не должно быть связано с ошибкой выше, потому что я компилирую SocketIO-Client-Swift
с DemoApp
, поэтому он имеет ту же версию swift, что и DemoApp
app
То, что я сделал
- С
otool -l SDK.framework
Я проверил всю мета-информацию, нет никаких ссылок на swift - Я попытался распространить ее как статическую библиотеку, но в этом случае у меня будут проблемы с поддержкой
Carthage
диспетчера зависимостей