Я обновляю проект с Python2 .7 до Python3 .8, одновременно решая проблемы развертывания / подписания в MacOS Mojave и Catalina.
Приложение Python построить с использованием Py2app, а затем подписать, но при подписании не удается выполнить ровно один файл:
codesign --sign "${IDENTITY}" --entitlements ../entitleme.plist --deep "demo.app/" --force --options runtime
demo.app/: main executable failed strict validation
In subcomponent: /demo.app/Contents/Frameworks/liblzma.5.dylib
и без строгого:
codesign --sign "${IDENTITY}" --entitlements ../entitleme.plist --deep "demo.app/" --no-strict --force --options runtime
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate: the __LINKEDIT segment does not cover the end of the file (can't be processed) in: demo.app/Contents/Frameworks/liblzma.5.dylib
demo.app/: the codesign_allocate helper tool cannot be found or used
In subcomponent: demo.app/Contents/Frameworks/liblzma.5.dylib
Другой вопрос здесь указывает, что PyInstaller или в других системах были подобные проблемы, и это неполное решение исправило их. Однако фактическое решение (если оно найдено) кажется непригодным для правок или изменений связанного материала. Кроме того, я отмечаю, что codesign_allocate
указан как не найденный, но он находится в пути и работает нормально, поэтому я подозреваю, что его использование в файле с ошибкой сегмента __LINKEDIT
является плохим.
Похоже, что liblzma исходит из сжатых алгоритмов, включенных библиотекой во время сборки py2app, и попытки продолжить обновление до сих пор были безрезультатными - хотя я начал задаваться вопросом, исправит ли перекомпиляция исходного материала на последней версии MacOS эти ошибки.
Есть ли известный путь решения этой проблемы?