Cannot open simple script application on mac

Posted by streetpc on Super User See other posts from Super User or by streetpc
Published on 2010-05-26T21:21:17Z Indexed on 2010/05/26 21:33 UTC
Read the original article Hit count: 289

Filed under:
|

Mac OS X 10.6

I created a very simple app, which is only a wrapper of a shell script (so that I can select this script in application selectors, like startup apps). I try to launch it and yesterday it worked, but today I changed the executable script's content and name (with something that perfeclty works in a shell script launched in the Terminal) and it will only display a Finder-iconed dialog saying

Cannot open the application because it is not supported on this kind of Mac.

I restored the previous script (content/name) but I still get the error! Same when re-bundling the app from scratch, or completely changing the bundle identifier…

If I try to open it in the Terminal using open My.app, I get

The application cannot be opened because it has an incorrect executable format.

But when I executes directly the Contents/MacOS/Script, it allways works (iwth both contents). Also, it is displayed with correct icon and meta-information in the Finder (so I guess the Info.plist is understood).

The app's file tree is:

Contents/
    Info.plist
    MacOS/
        Script    (executable bit set, works when launched directly)
    PkgInfo
    Resources/
        AppIcon.icns

Here is the Info.plist content:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleExecutable</key>
    <string>Script</string>
    <key>CFBundleIconFile</key>
    <string>AppIcon</string>
    <key>CFBundleIdentifier</key>
    <string>asdf.ScriptApp</string>
    <key>CFBundleInfoDictionaryVersion</key>
    <string>6.0</string>
    <key>CFBundleName</key>
    <string>My script</string>
    <key>CFBundlePackageType</key>
    <string>APPL</string>
    <key>CFBundleShortVersionString</key>
    <string>1.0</string>
    <key>CFBundleSignature</key>
    <string>????</string>
    <key>CFBundleVersion</key>
    <string>1</string>
    <key>LSMinimumSystemVersion</key>
    <string>10.4</string>
</dict>
</plist>

And the PkgInfo file only contains APPL????. I tested the Script with a simple echo "ok" and echo "ok" >/tmp/test (plus #!/bin/sh header).

So my questions are:

  • Is there some kind of validity caching for applications ? based on what ? how do I flush it ?
  • Where does this message come from ? I tried to google it but all I get is a page talking about 32/64 bits Java…

© Super User or respective owner

Related posts about mac

Related posts about applications