嵌入外部框架的 Swift 版本

laf*_*lex 9 ios swift

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

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

谢谢 !

Osk*_*kar 5

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

otool -l /path/to/your/FrameworkName.framework/Versions/A/FrameworkName
Run Code Online (Sandbox Code Playgroud)


ill*_*laz 5

您可以使用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
Run Code Online (Sandbox Code Playgroud)

资料来源:维基百科

所以 703.0.18 意味着 Swift 2.2 版。


bty*_*ype 5

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

$ cat FrameworkName.framework/Headers/FrameworkName-Swift.h
Run Code Online (Sandbox Code Playgroud)

第一行是你需要的信息:

// Generated by Apple Swift version 5.1 (swiftlang-1100.0.270.13 clang-1100.0.33.7)
Run Code Online (Sandbox Code Playgroud)