Ich betreibe diese Zeile:Codesign OSX App Bundle mit Perioden in MacOS Verzeichnisnamen
codesign --verbose --force --deep --sign "Developer ID Application: Company" Company.app
und ich bekomme diese Fehlermeldung:
Company.app: bundle format unrecognized, invalid, or unsuitable
In subcomponent: /Users/me/repo/client/Company.app/Contents/MacOS/include/python2.7
ich das Problem verringert haben bis auf die Tatsache, dass ich ein App-Bundle, das einige Unterverzeichnisse im Verzeichnis "Contents/MacOS" enthält, in deren Namen Namen angegeben sind. Nach this, Drosseln Co-Design auf das, weil es ein Verzeichnis mit einem Punkt an sie glaubt sich ein Bündel ist und lehnt es (Hervorhebung von mir):
Note that a location where code is expected to reside cannot generally contain directories full of nested code, because those directories tend to be interpreted as bundles. So this occasional practice is not recommended and not officially supported. If you do do this, do not use periods in the directory names. The code signing machinery interprets directories with periods in their names as code bundles and will reject them if they don't conform to the expected code bundle layout.
Mein Bündel von PyInstaller (getestete Version 3.1 und 3.2 erstellt werden), und die Regie wird automatisch eingezogen. Hier finden Sie alle Verzeichnisse, die dieses Problem haben:
Company.app/Contents/MacOS/include/python2.7
Company.app/Contents/MacOS/lib/python2.7
Company.app/Contents/MacOS/lib/python2.7/config
Company.app/Contents/MacOS/qt_menu.nib
Company.app/Contents/MacOS/tcl/http1.0
Company.app/Contents/MacOS/tcl/opt0.4
ich here sah, und es gab keinen Hinweis auf dieses Problem, und ich wollte wissen, ob jemand Konfiguration Ideen hat, die das Problem beheben können, ohne vollständig die Abhängigkeiten zu beseitigen von enthalten sein.
Das Bündel wird mit dem folgenden Befehl erstellt:
python $PYINSTALLER/pyinstaller.py \
-n $APP_NAME \
--paths $MODULE_SEARCH_PATH \
--windowed \
--icon $BUNDLEFILES_DIR/$APP_NAME.icns \
--distpath $BUNDLE_DIR/dist \
--osx-bundle-identifier com.company.$APP_NAME \
--exclude-module core.InternalTool \
main.py