Mach-O
(Mach Object
)是macOS
、iOS
、iPadOS
存储程序和库的⽂件格式。对应系统通过应⽤⼆进制接⼝(application binary interface
,缩写为ABI
)来运⾏该格式的⽂件。
Mach-O
格式⽤来替代BSD
系统的a.out
格式。Mach-O
⽂件格式保存了在编译过程和链接过程中产⽣的机器代码和数据,从⽽为静态链接和动态链接的代码提供了单⼀⽂件格式。
苹果很多文件都采用Mach-O
格式,最常见的就是可执行文件和动态库。当然,还有.o
的目标文件、.a
和.framework
的静态库以及动态连接器dyld
等等。
总结
-
Mach-O
本质是一个二进制文件,数据按照指定方式在二进制中进行排列,dyld
按照相同方式进行读取 -
Mach-O
文件包含了文件配置 + 二进制代码
-
Mach-O
文件可读可写
,Mach-O
文件在苹果签名前、签名后均可修改,但签名后修改需要进行重签名