Skip to content

Instantly share code, notes, and snippets.

Forked from subtleGradient/appify
Created November 12, 2010 13:46
Star You must be signed in to star a gist
What would you like to do?
appify — create the simplest possible Mac app from a shell script
if [ "$1" = "-h" -o "$1" = "--help" -o -z "$1" ]; then cat <<EOF
appify v3.0.1 for Mac OS X -
Creates the simplest possible Mac app from a shell script.
Appify takes a shell script as its first argument:
`basename "$0"`
Note that you cannot rename appified apps. If you want to give your app
a custom name, use the second argument:
`basename "$0"` "My App"
Copyright (c) Thomas Aylott <>
Modified by Mathias Bynens <>
exit; fi
APPNAME=${2:-$(basename "$1" ".sh")}
if [ -a "$" ]; then
echo "$PWD/$ already exists :("
exit 1
mkdir -p "$DIR"
cp "$1" "$DIR/$APPNAME"
chmod +x "$DIR/$APPNAME"
echo "$PWD/$"
Copy link

same error message as PacoH for me, unfortunately!

Copy link

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!

Copy link

jrmedd commented Jan 19, 2015

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

Copy link

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.

Copy link

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.


Copy link

andreif commented Jun 6, 2015

I made it to work on OS X 10.10 by adding file $ containing <plist><dict></dict></plist>

Copy link

andreif commented Jun 6, 2015

Copy link

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

Copy link

-bash: /Users/--------/Desktop/ Permission denied

Copy link

nueh commented Jul 21, 2015

chmod +x /Users/--------/Desktop/

Copy link

OS X 10.10.5: You can’t open the application “My” 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" "">
<plist version="1.0">

Any ideas how to make it work on Yosemite?

Copy link

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?

Copy link

tilo commented Nov 12, 2015

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

Copy link

yvanin commented Jul 26, 2016

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

Copy link

holacode commented Aug 6, 2016

use this awesome utility for creating .app package no error related to power pc

Copy link

pelizza commented Aug 8, 2016

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
With these steps, there is no PowerPC error :)

Copy link

my script looks like this

cd /Users/dr/Documents/Leo/leo-editor

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[1]: ([12195]) Service exited with abnormal code: 1

os is 10.11.5

Copy link

labor4 commented Nov 21, 2016

here's a hack to make it open in Mac Terminal:

Copy link

oubiwann commented Dec 9, 2016

I forked this and added option-parsing, overridable icons file, and some other bits:

Copy link

aleclarson commented Jul 26, 2017

Trying to run Electron without using electron-packager.

I can get open in the Terminal to work.

But not when I double-click from the Finder, or right-click and select "Open".

Here are the repro steps:

  • Create
  • Modify the shell script:
cd $(dirname "$0")/../../..
./node_modules/.bin/electron .
  • Call chmod +x
  • Confirm open works as intended
  • Confirm double-clicking in the Finder does nothing

Any help would be awesome.


Looks like it wasn't working because node_modules/.bin/electron spawns a child process.

This works as intended:

../node_modules/electron/dist/ .

Copy link

can any one help???
im only new to mac and command line entry im trying to see if any on can turn 2 commands into a ON / OFF switch/toggle? that i can just click to open from desktop or something with a status icon so you know it on or off

"sudo pmset -b sleep 0; sudo pmset -b disablesleep 1"

sudo pmset -b sleep 5; sudo pmset -b disablesleep 0

Copy link

willbprog127 commented Mar 30, 2018

Thanks so much for this!

I tried the Automater way of doing it, but it wasn't ideal. After removing the parameter variable from my command ("$@"), it worked fine...the applified app wouldn't launch with it there.

Copy link

Bachsau commented Apr 14, 2018

When you're troubleshooting problems, it might look like changes to the shebang line or such things could do the trick, but they do not. The problem is that macOS caches app information which might result in things not working even after you modified the bundle. If that is the case, just run "touch" on your application's bundle. That will make macOS re-read your Info.plist.

Copy link

Adding plist and make sure that schell scripts and plist values have the same name as the app made it work fine.

Copy link

thedzy commented Oct 21, 2018

You can grab out of my frameworks and just edit the script continained.

Copy link

How to add icon to this mac app generated?

Copy link

You can grab out of my frameworks and just edit the script continained.

Thank you for this. Much appreciated.

Copy link

don't do /Users/--------/Desktop/ Permission denied
instead do sh /Users/--------/Desktop/

Copy link

mgdmdz commented Jul 28, 2022

Hi, is there an option to run the app as hidden?

Copy link

80N35 commented Aug 3, 2022

This is the only "appify" script that is working on Catalina. Thanks, friend. Do you want to fork Conky-Mac with me. I have great configs but really haven't done serious code since the 90's in LA.

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