Mac OS X 10.6
Eu criei um aplicativo muito simples, que é apenas um wrapper de um script de shell (para que eu possa selecionar esse script nos seletores de aplicativos, como aplicativos de inicialização). Eu tento lançá-lo e ontem funcionou, mas hoje eu mudei o conteúdo e o nome do script executável (com algo que funciona perfeitamente em um shell script lançado no Terminal) e ele só exibe uma caixa de diálogo com o ícone do Finder dizendo
Cannot open the application because it is not supported on this kind of Mac.
Eu restaurei o script anterior (content / name), mas ainda recebo o erro! O mesmo quando re-empacotar o aplicativo do zero ou alterar completamente o identificador do pacote…
Se eu tentar abri-lo no terminal usando open My.app
, obtenho
The application cannot be opened because it has an incorrect executable format.
Mas quando eu executo diretamente o Contents/MacOS/Script
, sempre funciona (com ambos os conteúdos). Além disso, é exibido com o ícone correto e meta-informação no Finder (então eu acho que o Info.plist é entendido).
A árvore de arquivos do aplicativo é:
Contents/
Info.plist
MacOS/
Script (executable bit set, works when launched directly)
PkgInfo
Resources/
AppIcon.icns
Aqui está o 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>
E o arquivo PkgInfo
contém apenas APPL????
. Eu testei o Script com um simples echo "ok"
e echo "ok" >/tmp/test
(mais #!/bin/sh
header).
Então, minhas perguntas são:
- Existe algum tipo de cache de validade para aplicativos? Com base no que ? como faço para liberar?
- De onde vem esta mensagem? Eu tentei google mas tudo que eu tenho é uma página falando sobre 32/64 bits Java ...