Как я могу лучше диагностировать указанную ошибку c кодового знака в macOS? - PullRequest
0 голосов
/ 13 апреля 2020

В системах MacOS я сталкиваюсь с динамической ошибкой связывания c - DYLD, ошибка подписи кода [0x5] - при запуске приложения в системах, отличных от моей (как Catalina, так и Mojave). Почему у меня система работает нормально не понятно? Мои dylibs загружаются из папки Frameworks моего пакета приложений. Я могу убедиться, что @rpaths, которые используют библиотеки, работают. Опять же, библиотеки прекрасно загружаются в моей системе.

Я могу успешно заверить мое приложение. Утилита нотариального заверения и журналы не сообщают об ошибках или предупреждениях. Библиотека, которая не может быть загружена в отчет cra sh, действительно существует по указанному пути. Я могу запустить 'spctl -a -t exe c -vv MyFineApp.app', и инструмент не сообщает об ошибках. Это сказало, что пакет принят. Любые идеи, как я могу лучше диагностировать проблему, почему приложение работает на моем компьютере, а не другие? Опять же, отчет заключается в том, что подпись кода недействительна, но это никогда не сообщается в другом месте. Кодовая подпись для библиотеки приведена ниже.

Executable=/Users/user/Library/Developer/Xcode/DerivedData/MyFineApp-fbtnvajmowfagrgjpeckdwwjzlid/Build/Products/Debug/MyFineApp.app/Contents/Frameworks/libavcodec.dylib
Identifier=libavcodec
Format=Mach-O thin (x86_64)
CodeDirectory v=20500 size=114006 flags=0x10000(runtime) hashes=3554+5 location=embedded
Hash type=sha256 size=32
CandidateCDHash sha256=XXXXXXXX
CandidateCDHashFull sha256=XXXXXXXX
Hash choices=sha256
CMSDigest=ec6e734956d23494d115f6fa608f6d15a621a944a6d8b4210134b664b71523af
CMSDigestType=2
CDHash=XXXXXXXXX
Signature size=8933
Authority=Developer ID Application: Fake Name (XXXXXXX)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=Apr 12, 2020 at 1:15:16 PM
Info.plist=not bound
TeamIdentifier=MYTEAM
Runtime Version=10.13.0
Sealed Resources=none
Internal requirements count=1 size=204

Cra sh Отчет

Причина прекращения: DYLD, [0x5] Подпись кода

Спецификация приложения c Информация: dyld: запуск, загрузка зависимых библиотек

Сообщение об ошибке Dyld: Библиотека не загружена: @ rpath / libavcode c .dylib Ссылка на: /Applications/MyFineApp.app/Contents/MacOS/MyFineApp Причина: нет подходящее изображение найдено. Обнаружил: /Applications/MyFineApp.app/Contents/MacOS/../Frameworks/libavcodec.dylib: недопустимая подпись кода для '/Applications/MyFineApp.app/Contents/MacOS/../Frameworks/libavcodec .dylib '

/Applications/MyFineApp.app/Contents/MacOS/../Frameworks/libavcodec.dylib: stat() failed with errno=1

1 Ответ

0 голосов
/ 14 апреля 2020

Я решил свою проблему с помощью Apple DTS. Я установил флаг -deep в ДРУГИХ ФЛАГАХ, ПОДПИСЫВАЮЩИХ КОД. Это встроенные права в мои библиотеки, которые вызвали проблему с системой привратника. Не делайте - глубоко, если вы не знаете, что делаете !!!

См. Ниже:

См. «--deep Считается вредным».

https://forums.developer.apple.com/thread/129980

https://forums.developer.apple.com/thread/128166

...