如何判断iPhone二进制文件是否已编译为位置独立可执行文件

时间:2012-10-05 11:10:26

标签: ios xcode4.3 xcodebuild

我有一个自动构建过程,它使用xcodebuild和xcrun的组合编译iPhone应用程序。当构建调用xcodebuild时,它会传入一个xcconfig文件,该文件会覆盖某些设置。

IPHONEOS_DEPLOYMENT_TARGET = 4.3

ARCHS = armv7

VALID_ARCHS = armv7

LD_NO_PIE = NO

理论上,这应确保构建的二进制输出是位置无关可执行文件。有没有办法检查Binary是否确实如此?

1 个答案:

答案 0 :(得分:4)

使用“otool -vh”,您可以看到“PIE”标志:

$ otool -vh YourApp
YourApp:
Mach header
      magic cputype cpusubtype  caps    filetype ncmds sizeofcmds      flags
   MH_MAGIC     ARM         V7  0x00     EXECUTE    28       3532   NOUNDEFS DYLDLINK TWOLEVEL PIE