如何打开.swiftmodule文件

时间:2018-11-21 16:39:37

标签: ios swift xcode

我想从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文件的其他想法?

2 个答案:

答案 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)

[.swiftmodule]

您可以:

  1. 将此框架添加到框架中
  2. 导入框架 import <module_name>
  3. Jump to Definition