当我下载 Mac 应用程序时,它们都带有 .app 扩展名。当我右键单击并查看包信息时,我看到其中有很多文件。这些文件是什么?这是否意味着这些应用程序是开源的?此外,我该如何反编译应用程序?在 Windows 上,我能够使用十六进制编辑器和反编译软件来干扰内部结构,使应用程序执行新操作。它在 Mac 上如何工作?
答案1
.app 文件夹称为包。它们是应用程序的简单呈现,可以轻松移动或卸载。当 Mac OS 需要显示包含多个文件(框架、首选项窗格、插件等)的一个实体时,它会在每个地方使用包。
答案2
OS X 上的大多数应用程序分发为捆绑, 哪个看起来类似于文件,但实际上是包含其他文件和文件夹的文件夹。这些“其他”文件和文件夹是应用程序使用的资源。在 OS X 上,资源(图像、声音文件等)作为单独的文件分发,而不是包含所有资源的一个大文件 - 因此您不需要十六进制编辑器来查看这些资源文件。
捆绑包的内容.app
通常包含如下项目:
.app/ <- The app bundle
Contents/
_CodeSignature/ <- Used to verify an application
Frameworks/ <- Frameworks used by and distributed with the application
Info.plist <- Application metadata
Library/ <- Files that enable various OS X functionality
QuickLook/ <- Custom QuickLook renderers
Spotlight/ <- Custom Spotlight importers
MacOS/ <- Contains the actual binary code executed when double-clicking on the application
PlugIns/ <- Application plugins
Resources/ <- Resource files, such as icons, UI layouts, sound files, image files
注意每一个OS X 上的应用程序都包含这样的布局,无论它们是否是开源应用程序。
答案3
.app“文件”是包含多个文件的文件夹。您看到的是随程序分发的文件,而不是源代码。
我能想到的最好类比是,如果 Windows 程序以 .zip 文件的形式分发,而您只是将它们放在 C:\Program Files 中来安装它们,而不是提取它们。(因此,您看到的文件就是您在 Windows 上该程序的“Program Files\program name”文件夹中看到的文件)