我有一个自动构建过程,它使用xcodebuild和xcrun的组合编译iPhone应用程序。当构建调用xcodebuild时,它会传入一个xcconfig文件,该文件会覆盖某些设置。
IPHONEOS_DEPLOYMENT_TARGET = 4.3
ARCHS = armv7
VALID_ARCHS = armv7
LD_NO_PIE = NO
理论上,这应确保构建的二进制输出是位置无关可执行文件。有没有办法检查Binary是否确实如此?
答案 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