第三部分公司为我提供了一个框架。我想检查框架中嵌入的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 Stability
和 Library 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