Create a gist now

Instantly share code, notes, and snippets.

appify — create the simplest possible Mac app from a shell script
#!/usr/bin/env bash
# Create a new super simple mac app
# Platform: Mac OS X
# Author: Thomas Aylott <oblivious@subtlegradient.com>
APPNAME=${1:-Untitled}
mkdir -p "$APPNAME.app/Contents/MacOS"
cat > "$APPNAME.app/Contents/MacOS/$APPNAME" <<EOF
#!/usr/bin/osascript
say "Hello"
EOF
chmod +x "$APPNAME.app/Contents/MacOS/$APPNAME"
echo "$PWD/$APPNAME.app"
@subtleGradient

@mathiasbynens FTW!
Much better.

I tried to make it work using cp before but couldn't get it working for some strange reason. I forget the original issue I ran into.

@mathiasbynens
Owner

Feel free to backport these changes into your original gist if you like! It’s still your script :) I’ll update my blog post accordingly.

@andrewcase

Great script guys! Thanks!

@subtleGradient

Be sure to check out Appify UI also: https://github.com/subtleGradient/Appify-UI

@jsbieber
jsbieber commented Nov 1, 2012

I used this today to on a .sh script of mine. When launching the app it states: "You can't open the application...because PowerPC applications are no longer supported. I'm running Mountain Lion. My .sh script runs fine natively, it is small and just uses a couple curl lines to download some tar.gz files. Any ideas?

@PacoH
PacoH commented Jul 5, 2014

OS X 10.8.5:
You can’t open the application “My App.app” because it is not supported on this type of Mac

@jayfresh

same error message as PacoH for me, unfortunately!

@bhanquier

Same problem, the end result seems to be a PowerPC app. I guess it's just a matter of changing one of the triggers (?) but which one… If somebody has an idea, it would be great!

@jrmedd
jrmedd commented Jan 19, 2015

I got around that PowerPC issue by ensuring that #!/bin/bash was at the top of my script ;)

@gregd49
gregd49 commented Feb 28, 2015

Running on mac OSX 10.10.2
I had trouble with the powerpc error.
I had to add the #!/bin/bash line to my shell script as noted above.
I had to modify my plist to be correct as noted previously.
In particular I had to change CFBundleSignature from ???? to a 4 character string.
It then worked for me.

@davidfavor

Can someone post a simple .plist file that does the following...

  1. Allows App to be a drag + drop target.

  2. Passes dropped files into script $* to allow files to be dropped on App.

I'll also look around + if I find a good example, post it here.

Thanks.

@andreif
andreif commented Jun 6, 2015

I made it to work on OS X 10.10 by adding file $APPNAME.app/Contents/Info.plist containing <plist><dict></dict></plist>

@bluejamesbond

Neat idea. However, what directory does the script run in so that I can use relative paths?

@CosmicWebServices

-bash: /Users/--------/Desktop/appify.sh: Permission denied

@nueh
nueh commented Jul 21, 2015

@CosmicWebServices
chmod +x /Users/--------/Desktop/appify.sh

@Drewshg312

OS X 10.10.5: You can’t open the application “My App.app” because it is not supported on this type of Mac
😞

adding the Info.plist with next content didn't help:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleExecutable</key>
    <string>MyApp</string>
    <key>CFBundleGetInfoString</key>
    <string>MyApp</string>
    <key>CFBundleIconFile</key>
    <string>MyApp</string>
    <key>CFBundleName</key>
    <string>MyApp</string>
    <key>CFBundlePackageType</key>
    <string>APPL</string>
</dict>
</plist>

Any ideas how to make it work on Yosemite?

@tilo
tilo commented Nov 12, 2015

+1 any idea on how to make this work on OS X 10.10 or higher?
I'm not familiar with the OS X plists internals... could somebody please post a working example?

@tilo
tilo commented Nov 12, 2015

I worked for me after I ran this: /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -f MyAppName.app

@yvanin
yvanin commented Jul 26, 2016 edited

It started working (OS X 10.11.2) when I changed #!/bin/bash to #!/usr/bin/env bash at the first line of my .sh script

@holacode
holacode commented Aug 6, 2016

use this awesome utility for creating .app package no error related to power pc
http://sveinbjorn.org/platypus

@pelizza
pelizza commented Aug 8, 2016 edited

Hey guys,

Just put the correct shebang on your .sh file and everything will work fine. For instance: #!/bin/bash.
Also, don't forget to add execution permission for your .sh file: chmod +x myFile.sh.
With these steps, there is no PowerPC error :)

@davidroettger

Hi,
my script looks like this

#!/bin/bash
cd /Users/dr/Documents/Leo/leo-editor
python launchLeo.py

and i added the execution permission for my .sh file.

The applified application dies immediately and I see the following entry in the console log:

15/08/16 12:52:55,087 com.apple.xpc.launchd[1]: (com.apple.xpc.launchd.oneshot.0x10000046.leo[12195]) Service exited with abnormal code: 1

os is 10.11.5

@labor4
labor4 commented Nov 21, 2016

here's a hack to make it open in Mac Terminal:
https://github.com/labor4/ya-appify

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment