MASTG-TOOL-0048 dsdump

dsdump は Objective-C クラスと Swift 型記述子 (クラス、構造体、列挙型) をダンプするツールです。Swift バージョン 5 以降のみをサポートしており、ARM 32 ビットバイナリはサポートしていません。

以下の例は、iOS アプリケーションの Objective-C クラスと Swift 型記述子をダンプする方法を示しています。

まず、アプリのメインバイナリが ARM64 を含む FAT バイナリであるかどうかを確認します。

$ otool -hv [APP_MAIN_BINARY_FILE]
Mach header
      magic cputype cpusubtype  caps    filetype ncmds sizeofcmds      flags
   MH_MAGIC     ARM         V7  0x00     EXECUTE    39       5016   NOUNDEFS DYLDLINK TWOLEVEL PIE
Mach header
      magic cputype cpusubtype  caps    filetype ncmds sizeofcmds      flags
MH_MAGIC_64   ARM64        ALL  0x00     EXECUTE    38       5728   NOUNDEFS DYLDLINK TWOLEVEL PIE

そうである場合、"--arch" パラメータに "arm64" を指定します。そうではなく、そのバイナリが ARM64 バイナリのみを含む場合は必要ありません。

# Dump the Objective-C classes to a temporary file
$ dsdump --objc --color --verbose=5 --arch arm64 --defined [APP_MAIN_BINARY_FILE] > /tmp/OBJC.txt

# Dump the Swift type descriptors to a temporary file if the app is implemented in Swift
$ dsdump --swift --color --verbose=5 --arch arm64 --defined [APP_MAIN_BINARY_FILE] > /tmp/SWIFT.txt

dsdump の内部動作と、コンパイルされた Swift の型と Objective-C クラスを表示するために Mach-O バイナリをプログラムで調査する方法の詳細については、この記事 を参照してください。

Last updated

Was this helpful?