Я не эксперт в этом, и я не пробовал, но это мое понимание: если вы разделите свое приложение на несколько фреймворков, одна или несколько ваших фреймворков могут ориентироваться на Swift 3, в то время как другие нацелены на Swift 4.2.Ваш фреймворк (ы) Swift 3 может затем ссылаться на сторонний фреймворк (и) Swift 3, который вы хотите использовать.
Я думаю, Xcode позаботится о привязках между вашими собственными фреймворками, которые отличаются в версии Swift,поскольку вы сами компилируете их в качестве целевых зависимостей.
Наконец, если сторонний фреймворк с открытым исходным кодом и достаточно мал, рассмотрите возможность его разветвления и перехода на Swift 4.2 самостоятельно.Я использовал этот подход для некоторых небольших платформ, которые я использую (например, Netfox) - для более крупных, таких как Realm, мне просто нужно было подождать, пока они это сделают.