Ich habe ein (GUI) Python-Skript geschrieben, das eine externe Datei und ein Modul (in einem Ordner) erfordert. Um dieses Skript zur Verteilung an andere zu packen, verwende ich die folgende Anwendungsdateistruktur:
└── Contents
├── Info.plist
└── MacOS
├── colors.py
├── MainScript.py
└── <module>
├── <module files>
Info.plist sieht so aus:
<!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>MainScript.py</string>
</dict>
</plist>
MainScript.py beginnt mit #!/usr/bin/env python3
und wurde mit ausführbar gemacht chmod +x
.
Wenn ich auf die .app doppelklicke, erscheint sie kurzzeitig im Dock und verschwindet dann. Der seltsame Teil ist, dass es open MyApp.app
im umschließenden Ordner korrekt funktioniert (sowie ./MainScript.py im MacOS-Ordner). Was mache ich falsch?
Ich würde versuchen, ein Tool wie Platypus zu verwenden, um das Anwendungspaket zusammenzustellen.
Es ist möglicherweise einfacher einzugrenzen, welcher Teil der Konsolenprotokollfehler relevant ist, wenn Sie Ihr handgefertigtes App-Bundle unterscheiden und es mit dem vergleichen können, das das Tool für Sie zusammenstellt.
Fahrrad