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

问题描述 投票:2回答:2

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

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

ios objective-c swift jailbreak cydia
2个回答
7
投票

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

nm YourApp | grep swift

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

U __swift_FORCE_LOAD_$_swiftFoundation

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


7
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.