第三方公司为我提供了一个框架。 我想查看框架中嵌入的swift版本(2.2,2.3或3.x) 框架目录包括libswift dylib文件。
如何检查框架中使用的swift版本?
谢谢!
答案 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
所以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 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)
答案 4 :(得分:0)
就我个人而言,我倾向于:
grep "Generated by" Carthage/Build/iOS/Alamofire.framework/Headers/Alamofire-Swift.h