AppImage for macOS switchers

https://user-images.githubusercontent.com/2480569/29998412-7f0f9416-902a-11e7-9d5f-472649e1af34.png

This chapter compares the AppImage terms to its macOS equivalents. It should help macOS to Linux switchers to “get” AppImage concepts quickly.

AppImage concept

Rough macOS equivalent

.AppImage file

.app inside a .dmg file that mounts itself automatically when executed

.AppDir directory

.app directory

.desktop file

Info.plist file

*.metainfo.xml file and package.json file (for Electron apps)

Info.plist file (more elaborate version thereof)

usr/ inside the AppDir

Resources/ inside the .app

AppImageUpdate

Sparkle Framework

No direct equivalent, but update information in ELF section .upd_info

Sparkle appcast

Optional appimaged daemon

Launch Services to register applications in the system (e.g., MIME types, icons, etc.)

No direct equivalent, but AppImageHub central directory of available AppImages

Mac App Store

Optional signature in ELF section

Signatures in /Contents/_MASReceipt/

No direct equivalent (yet?), but use linuxdeployqt (for Qt, C++, C) or electron-builder for Electron apps in the build chain

Xcode IDE generates .app when you click “compile”

appimagetool my.AppDir my.AppImage

hdiutil create -volname myApp -srcfolder my.app/../ -ov -format UDZO myApp.dmg