我有一个应用程序二进制文件,我想知道它是否是针对iOS 5.x,6.x或7.0 SDK编译的。有可能搞清楚这一点吗?
答案 0 :(得分:4)
提取IPA并使用MachOView打开二进制文件(Payload / appname.app / appname)。在左边打开Load Commands - > LC_VERSION_MIN_IPHONEOS
在右边,应该有四个字段。
来自iPhone SDK中的usr / include / mach-o / loader.h,
/*
* The version_min_command contains the min OS version on which this
* binary was built to run.
*/
struct version_min_command {
uint32_t cmd; /* LC_VERSION_MIN_MACOSX or
LC_VERSION_MIN_IPHONEOS */
uint32_t cmdsize; /* sizeof(struct min_version_command) */
uint32_t version; /* X.Y.Z is encoded in nibbles xxxx.yy.zz */
uint32_t sdk; /* X.Y.Z is encoded in nibbles xxxx.yy.zz */
};
此处的“版本”字段指定了应用所需的最低iOS版本。 “保留”字段指定编译应用程序的SDK。使用上述结构解码SDK版本。