我想从iOS框架检查.swiftmodule
文件的公开内容。
在这里(https://lists.swift.org/pipermail/swift-users/Week-of-Mon-20160111/000827.html)我发现了使用swift-ide-test
的建议:
您可以使用swift-ide-test工具将公共接口转储为 模块,但命令行界面不够漂亮 是:
swift-ide-test -print-module -source-filename = dummy.swift -module-to-print = MyApp
…加上找到模块及其所有模块所需的任何-I或-F路径 依赖性。如果您使用的是Mac,则需要插入“ xcrun -sdk macosx”或“ xcrun -sdk iphoneos”开始查找系统 标头。
不幸的是,当我尝试使用Xcode 10.1运行xcrun -sdk iphoneos swift-ide-test
时,出现以下错误:
$ xcrun -sdk iphoneos swift-ide-test
xcrun: error: unable to find utility "swift-ide-test", not a developer tool or in PATH
似乎该工具已从Xcode中删除。
关于如何打开.swiftmodule
文件的其他想法?
答案 0 :(得分:2)
经过数小时的努力,我发现了一种隐式方法来检查来自iOS框架的模块的公开内容。
通过在Swift REPL中使用:print_module
命令来完成技巧。
更准确地说,您需要启动Swift REPL,并提供指向框架的路径:
swift -F <path to a folder with LibName.framework> -deprecated-integrated-repl
现在,您可以将:print_module
命令与您的框架一起使用:
(swift) :print_module LibName
来源:
https://stackoverflow.com/a/27882120/2241008
https://stackoverflow.com/a/25005445/2241008
https://stackoverflow.com/a/36235186/2241008
P.S。 swift源代码仍然具有swift-ide-test
工具(https://github.com/apple/swift/tree/master/tools/swift-ide-test)的源代码,因此查看swiftmodules内容的另一种方法是编译该工具,但是我没有进一步研究此解决方案。
答案 1 :(得分:0)