使用Swift脚本计算iOS框架的大小

我正在写一个Swift脚本来计算iOS框架的文件大小。 不过,我有不可思议的结果。 在一个框架中,我有这个文件结构,如Finder所示:

/{FrameworkName}.framework/Modules/{FrameworkName}.swiftmodule/ /{FrameworkName}.framework/Modules/{FrameworkName}.swiftmodule/x86_64.swiftmodule /{FrameworkName}.framework/Modules/{FrameworkName}.swiftmodule/x86_64.swiftdoc 

然而! 如果我运行代码来计算我的Swift脚本中的文件大小,当我循环浏览这些文件时,我看到这些文件:

 /{FrameworkName}.framework/Modules/{FrameworkName}.swiftmodule/ /{FrameworkName}.framework/Modules/{FrameworkName}.swiftmodule/arm64.swiftmodule /{FrameworkName}.framework/Modules/{FrameworkName}.swiftmodule/arm.swiftmodule /{FrameworkName}.framework/Modules/{FrameworkName}.swiftmodule/arm64.swiftdoc /{FrameworkName}.framework/Modules/{FrameworkName}.swiftmodule/arm.swiftdoc 

正如你所看到的,这些文件似乎分裂成两个不同的文件,每个架构都没有在Finder中显示。 这里的问题是,这两个armarm64文件是相同的大小计数,因此我的文件大小的iOS框架的双重计数!

现在我认为这可能是一个Swift循环如何通过文件结构的错误,但也许我做错了什么。

这是我的文件大小计算代码:

 var bool: ObjCBool = false if FileManager.default.fileExists(atPath: documentsDirectoryURL.path, isDirectory: &bool), bool.boolValue { var folderSize = 0 FileManager.default.enumerator(at: documentsDirectoryURL, includingPropertiesForKeys: [.<key_here>], options: [])?.forEach { folderSize += (try? ($0 as? URL)?.resourceValues(forKeys: [.<key_here>]))??.<key_here> ?? 0 } return Int64(folderSize) }