2015-10-01 35 views
2

我正在開發一個工具,用於嘗試在應用程序上轉儲越獄設備的頭文件類。 我使用的是Clutch,但有時候離合器無法使用一些較新的應用程序,我正在考慮整合離合器以外的一些工具。 因此,我首先需要確定二進制文件是否用Swift編寫,以便我可以切換到正確的工具來執行。檢測iOS應用程序是否寫入Swift

我的問題是, 有沒有一種方法,像一個命令工具來確定是否iOS應用程序二進制文件是用Swift編寫的? 當Swift與Swift比較Obj-C時,二進制的構建方式有多大差異?

+4

有些應用程序是用swift和objective-c的組合構建的。那麼你會怎麼做? –

+0

你沒有任何權利轉儲我編寫的應用程序商店中的任何應用程序的頭文件。 – gnasher729

+0

這是一款測試工具,可確定應用程序是否易受某些常見安全問題的影響。看到www.idbtool.com – bluezald

回答

5

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

nm YourApp | grep swift 

這將打印這樣的事情(還有更多):

U __swift_FORCE_LOAD_$_swiftFoundation 

對於100%的Objective-C的應用程序的結果將是空的。但是,由於混合objc + swift應用程序的結果將類似於swift應用程序,因此無法判斷代碼是否爲100%Swift。

+1

我認爲這是一個最合適的解決方案。感謝Adam – bluezald

5

在.app文件中有一個_CodeSignature文件夾。裏面有一個CodeResources文件。如果你打開文本,你會看到它包含Frameworks/libswiftCore.dylib

我相信這表明它已經用swift構建。

+0

感謝您的支持! – bluezald

相關問題