Tag: 脚本

使用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中显示。 这里的问题是,这两个arm和arm64文件是相同的大小计数,因此我的文件大小的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) }

在iOS应用程序中使用macrosSEC_IS_BEING_DEBUGGED_RETURN_NIL

我了解了下面这段代码,声称可以在某种程度上防止方法Swizzling 。 #ifndef DEBUG SEC_IS_BEING_DEBUGGED_RETURN_NIL(); #endif 但是,包括在我的项目进行testing,我得到一个错误。 函数'SEC_IS_BEING_DEBUGGED_RETURN_NIL'的隐式声明在C99中无效 有人可以帮我解决这个错误,如果我需要包括任何相同的库头。