嵌入在外部框架中的Swift版本

时间:2017-04-21 09:25:53

标签: ios swift

第三方公司为我提供了一个框架。 我想查看框架中嵌入的swift版本(2.2,2.3或3.x) 框架目录包括libswift dylib文件。

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

谢谢!

5 个答案:

答案 0 :(得分:4)

您可以使用Oskars answer获取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

Source: Wikipedia

所以703.0.18意味着Swift版本2.2。

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

我使用了-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)

答案 3 :(得分:0)

如果框架支持ABI [About] 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)

答案 4 :(得分:0)

就我个人而言,我倾向于:

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