Comments (11)
Platypus: https://sveinbjorn.org/platypus
Platypus is a developer tool that creates native Mac applications from command line scripts such as shell scripts
from 5guis.
Automator apps look like this:
/Users/helge/Desktop/AutomatorApp.app
└── Contents
├── Info.plist
├── MacOS
│ └── Application\ Stub
├── Resources
│ ├── AutomatorApplet.icns
...
└── document.wflow
And they link:
Zini18:Dropbox.app helge$ otool -L /Users/helge/Desktop/AutomatorApp.app/Contents/MacOS/Application\ Stub
/Users/helge/Desktop/AutomatorApp.app/Contents/MacOS/Application Stub:
/usr/lib/libDiagnosticMessagesClient.dylib (compatibility version 1.0.0, current version 112.0.0, weak)
/System/Library/Frameworks/Automator.framework/Versions/A/Automator (compatibility version 1.0.0, current version 0.0.0)
/System/Library/PrivateFrameworks/CrashReporterSupport.framework/Versions/A/CrashReporterSupport (compatibility version 1.0.0, current version 15016.0.0)
/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 23.0.0)
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1677.103.0)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1281.100.1)
/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1894.60.100)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1677.103.0)
So probably best to check for Contents/MacOS/Application Stub
in combination w/ Contents/document.wflow
.
from 5guis.
I quick glance confirms, that pretty much everything is configurable, but the script is always ./Resources/script
from 5guis.
Application Apple Scripts are another one (Script Editor: Export as Application). They have a CFBundleExecutable
of applet
and a CFBundleSignature
of aplt
from 5guis.
^ The "Snapper" app above has the following tree:
/Applications/Snapper.app
└── Contents
├── Info.plist
├── MacOS
│ └── applet
├── PkgInfo
├── Resources
│ ├── AppIcon.icns
│ ├── Scripts
│ │ └── main.scpt
│ ├── applet.rsrc
│ └── description.rtfd
│ └── TXT.rtf
└── _CodeSignature
└── CodeResources
So that's probably an AppleScript application.
from 5guis.
For Automator apps another check is probably the AMIsApplet
in the info.plist
from 5guis.
oTool for AppleScript apps
otool -L /Applications/Snapper.app/Contents/MacOS/applet [13:13:29]
/Applications/Snapper.app/Contents/MacOS/applet:
/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 934.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.200.5)
from 5guis.
As for Platypus apps: highly configurable; example:
/Applications/Utilities/Uploha\ Companion.app
└── Contents
├── Helpers
│ ├── Uploha\ Companion\ Notifier.app
│ │ └── Contents
│ │ ├── Info.plist
│ │ ├── MacOS
│ │ │ └── Uploha\ Companion\ Notifier
│ │ ├── PkgInfo
│ │ ├── Resources
│ │ │ ├── Uploha.icns
│ │ │ └── en.lproj
│ │ │ ├── Credits.rtf
│ │ │ ├── InfoPlist.strings
│ │ │ └── MainMenu.nib
│ │ └── _CodeSignature
│ │ └── CodeResources
│ └── bin
│ └── b3sum
├── Info.plist
├── MacOS
│ └── Uploha\ Companion
├── PkgInfo
├── Resources
│ ├── AppSettings.plist
│ ├── MainMenu.nib
│ ├── Uploha.icns
│ ├── Uploha1.png
│ ├── beep.aif
│ ├── error.aif
│ ├── script
│ ├── success.aif
│ ├── tink.aif
│ ├── uplc.icns
│ └── urandom
└── _CodeSignature
└── CodeResources
But it's always script
in Resources. However, that script
file can also be a symbolic link, with the actual file in ./Contents/MacOS
, or even outside of the app bundle. (And the script can have lots of formats/languages: shell script zsh/bash etc., python, perl, ruby, Swift, JavaScript etc.)
A definitively fixed file is ./Contents/Resources/AppSettings.plist
/Applications/Utilities/Uploha Companion.app/Contents/MacOS/Uploha Companion:
/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 23.0.0)
/System/Library/Frameworks/Security.framework/Versions/A/Security (compatibility version 1.0.0, current version 58286.220.15)
/System/Library/Frameworks/WebKit.framework/Versions/A/WebKit (compatibility version 1.0.0, current version 606.2.104)
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1560.12.0)
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.200.5)
/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1671.10.106)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 1560.12.0)
/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 934.0.0)
from 5guis.
Puh, so many different things in one Radar. Trying to summarise:
- So Platypus is
Contents/Resources/script
plusContents/Resources/AppSettings.plist
, the otool has no indication? (e.g. missing stuff like Cocoa/AppKit etc is ALSO an indication). - AppleScript "apps":
CFBundleExecutable
ofapplet
and aCFBundleSignature
ofaplt
- Automator "apps": AMIsApplet=true in Info.plist
from 5guis.
Yes, that's that summary.
from 5guis.
OK, I think I got all three.
from 5guis.
Related Issues (19)
- Also scan for embedded plugins and apps HOT 3
- JD-GUI not detected as a Java app HOT 2
- Chrome reported w/o AppKit, even though it's being used HOT 7
- Acrobat Reader reported as a trustworthy gem
- Add more information to Details popover
- Maybe replace the embedded objdump w/ MacDependency?
- Another unknown application type (Qt + Python + TCL) HOT 1
- Switch from `objdump` to dlopen on macOS BS to detect nested dependencies HOT 3
- Chromium Embedded Framework (CEF) apps, like Spotify, should be identified as Electron HOT 2
- More Qt apps failing to be identified as Qt HOT 2
- Crashes on macOS 13? HOT 9
- Not available on App Store HOT 1
- Catalyst apps are reported as phone apps on macOS BS HOT 1
- Also check for Java apps HOT 1
- Also check for Python Wrappers HOT 7
- OneDrive detected as AppKit app, it is a Qt GUI app HOT 1
- Audacity is of unknown type, it is wxWidgets based HOT 3
- Dropbox detected as AppKit ObjC app, it is JavaScript HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from 5guis.