Swift版本嵌入了外部框架中



第三部分公司为我提供了一个框架。我想检查框架中嵌入的Swift版本(2.2、2.3或3.x(框架目录包括libswift dylib文件。

如何检查框架中使用的SWIFT版本?

谢谢!

我使用了-Swift.h标头文件。

$ cat FrameworkName.framework/Headers/FrameworkName-Swift.h

第一行是您需要的信息:

// Generated by Apple Swift version 5.1 (swiftlang-1100.0.270.13 clang-1100.0.33.7)

您可以使用otool在框架中打印所有版本的包含二进制文件:

otool -l /path/to/your/FrameworkName.framework/Versions/A/FrameworkName

您可以使用Oskars答案获取SwiftLang版本(在您的情况下:703.0.18(。

现在,您只需要在下表中查找Swift版本:

Swiftlang version            Swift version
-                            -
swiftlang-602.0.49.3         1.2
swiftlang-602.0.49.6         1.2
swiftlang-602.0.53.1         1.2
swiftlang-700.0.59           2.0
swiftlang-700.1.101.6        2.1
swiftlang-700.1.101.15       2.1.1
swiftlang-703.0.18.1         2.2
swiftlang-703.0.18.8         2.2
swiftlang-800.0.46.2         3.0
swiftlang-800.0.58.6         3.0.1
swiftlang-800.0.63           3.0.2
swiftlang-802.0.48           3.1
swiftlang-802.0.51           3.1
swiftlang-802.0.53           3.1

来源:Wikipedia

SO SO 703.0.18表示Swift 2.2。

如果框架支持abi [关于] Module StabilityLibrary Evolution,您也可以找到它。来自Swift v5.1

<framework.name>.framework -> Modules -> <framework.name>.swiftmodeule -> <arch>. swiftinterface

例如x86_64.swiftinterface

// swift-compiler-version: Apple Swift version 5.2.4 (swiftlang-1103.0.32.9 clang-1103.0.32.53)

就个人而言,我选择了:

grep "Generated by" Carthage/Build/iOS/Alamofire.framework/Headers/Alamofire-Swift.h

最新更新