3

Когда я загружаю приложения Mac, они имеют расширение .app. Когда я щелкаю правой кнопкой мыши и просматриваю информацию о пакете, я вижу много файлов в нем. Что это за файлы? Означает ли это, что приложения с открытым исходным кодом? Кроме того, как я могу декомпилировать приложение? В Windows я мог использовать шестнадцатеричный редактор и декомпилирование программного обеспечения, чтобы связываться с внутренними компонентами, заставляя приложение делать новые вещи. Как это работает на Mac??

3 ответа3

8

Папки .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, чтобы узнать больше о том, как они структурированы ,

6

Большинство приложений в 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 содержит макет, подобный этому, независимо от того, являются ли они приложениями с открытым исходным кодом или нет.

1

.app "файлы" - это папки, содержащие несколько файлов. То, что вы видите, это файлы, распространяемые вместе с программой, а не исходный код.

Лучшая аналогия, которую я могу придумать, - это если программы Windows были распространены в ZIP-файлах, и вы просто поместили их в C:\Program Files, чтобы установить их вместо их извлечения. (Таким образом, файлы, которые вы видите, являются файлами, которые вы видите в папке «Program Files\program name» этой программы в Windows)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .