检测iOS App是否是用Swift编写的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了检测iOS App是否是用Swift编写的相关的知识,希望对你有一定的参考价值。

我开发了一个工具,试图在App上转储越狱设备的头类。我正在使用Clutch,但有时Clutch未能使用一些较新的应用程序,我正在考虑集成Clutch以外的一些工具。因此,我首先需要确定二进制文件是否是用Swift编写的,这样我就可以切换到正确的工具来执行。

我的问题是,有没有办法,比如命令工具来确定ios App二进制文件是否是用Swift编写的?与只有Obj-C相比,在Swift中构建二进制文件的方式真的有很大不同吗?

答案

您可以使用nm tool打印应用程序符号表。如果您搜索swift,例如使用grep

nm YourApp | grep swift

它会打印这样的东西(以及更多):

U __swift_FORCE_LOAD_$_swiftFoundation

对于100%Objective-C应用程序,结果将为空。但是,您无法判断代码是否为100%Swift,因为对于混合的objc + swift应用程序,结果将类似于swift应用程序。

另一答案

在.app文件中有一个_CodeSignature文件夹。里面有一个CodeResources文件。如果你打开它作为文本,你会看到它包含Frameworks/libswiftCore.dylib

我相信这表明它是用swift构建的。

以上是关于检测iOS App是否是用Swift编写的的主要内容,如果未能解决你的问题,请参考以下文章

Stockfish Chess Engine 与 Swift 中的 iOS 项目集成

如何使用 Swift 使用此代码片段为 iOS 应用程序初始化 SDK?

给定 APK 文件,我如何检测应用程序是不是是用 Kotlin 编写的?

如何使用模块化代码片段中的LeakCanary检测内存泄漏?

21个高质量的Swift开源iOS App

用 Swift 编写的代码可以在 iOS 7 及更早版本上运行吗? [复制]