Когда я загружаю приложения Mac, они имеют расширение .app. Когда я щелкаю правой кнопкой мыши и просматриваю информацию о пакете, я вижу много файлов в нем. Что это за файлы? Означает ли это, что приложения с открытым исходным кодом? Кроме того, как я могу декомпилировать приложение? В Windows я мог использовать шестнадцатеричный редактор и декомпилирование программного обеспечения, чтобы связываться с внутренними компонентами, заставляя приложение делать новые вещи. Как это работает на Mac??
3 ответа
Папки .app называются пакетами. Они представляют собой простую презентацию для приложения и позволяют легко перемещать или удалять. Mac OS использует пакеты в каждом месте, когда нужно показать один объект, содержащий несколько файлов (Frameworks, Preferences Pane, Plugins и т.д.).
См. Http://developer.apple.com/mac/library/DOCUMENTATION/CoreFoundation/Conceptual/CFBundles/BundleTypes/BundleTypes.html#//apple_ref/doc/uid/10000123i-CH101-SW13, чтобы узнать больше о том, как они структурированы ,
Большинство приложений в 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 содержит макет, подобный этому, независимо от того, являются ли они приложениями с открытым исходным кодом или нет.
.app "файлы" - это папки, содержащие несколько файлов. То, что вы видите, это файлы, распространяемые вместе с программой, а не исходный код.
Лучшая аналогия, которую я могу придумать, - это если программы Windows были распространены в ZIP-файлах, и вы просто поместили их в C:\Program Files, чтобы установить их вместо их извлечения. (Таким образом, файлы, которые вы видите, являются файлами, которые вы видите в папке «Program Files\program name» этой программы в Windows)