Приложение Castlabs Electron ломается при работе на определенных версиях MacOS - PullRequest
0 голосов
/ 27 февраля 2019

Я разработал приложение для воспроизведения DRM с использованием электронного форка Castlabs для Content Security (https://github.com/castlabs/electron-releases) на MacOS High Sierra. Я получаю сообщения о сбое запуска приложения на некоторых версиях MacOS со следующим сообщением об ошибке:

Process:               indee [52975]
Path:                  /Applications/indee.app/Contents/MacOS/indee
Identifier:            com.electron.indee
Version:               ???
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           indee [52975]
User ID:               503

Date/Time:             2019-02-25 20:25:09.463 +0530
OS Version:            Mac OS X 10.11.6 (15G31)
Report Version:        11
Anonymous UUID:        4BF915F3-40DA-0ABC-3930-F21B00CF3FD7

Sleep/Wake UUID:       69FABBB3-0032-4519-81B0-0CB25B679ACC

Time Awake Since Boot: 650000 seconds
Time Since Wake:       240 seconds

System Integrity Protection: enabled

Crashed Thread:        0

Exception Type:        EXC_BREAKPOINT (SIGTRAP)
Exception Codes:       0x0000000000000002, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Application Specific Information:
dyld: launch, loading dependent libraries

Dyld Error Message:
Symbol not found: _kSecAttrKeyTypeECSECPrimeRandom
Referenced from: /Applications/indee.app/Contents/MacOS/../Frameworks/Electron Framework.framework/Electron Framework
Expected in: /System/Library/Frameworks/Security.framework/Versions/A/Security
in /Applications/indee.app/Contents/MacOS/../Frameworks/Electron Framework.framework/Electron Framework

Из того, что я могу сказать, эта проблема не всегда воспроизводима на разных компьютерах Mac, работающих под управлением одной и той же версии macOS, но достаточно распространена, что она создает проблемы. Как это исправить?

1 Ответ

0 голосов
/ 28 февраля 2019

Для справки, пара вопросов, о которых сообщалось в электронном выпуске , обсуждает причину и решение этой проблемы: # 34 и # 30 .

Короче говоря, эта проблема возникает, когда сборка использует более старую версию MacOSX10.12 SDK, где макросы доступности неправильно указывают на наличие символа kSecAttrKeyTypeECSECPrimeRandom в целевых версиях ОС, где это не так.Это приводит к тому, что для символа используется неслабое связывание, что фактически делает его обязательным, и, таким образом, вызывает сбой в системах, где он отсутствует (т.е. в системах до 10.12 - Sierra).Для нас решением было использовать исправленную версию MacOSX10.12 SDK, такую ​​как версия, поставляемая с Xcode 8.3.3, при создании наших выпусков.

...