Возникла проблема со сбоем моего приложения, если отсутствует локальная зависимость. Я создаю приложение MacOS - используя Swift 5 в XCode - которое использует библиотеку, которая затем оборачивает библиотеку C ++ (librdkafka
). Если я устанавливаю librdkafka
, используя homebrew
, все работает, как и ожидалось, без проблем.
Однако, если я удаляю librdkafka
, приложение аварийно завершает работу даже перед открытием, и отображается окно, объясняющее причину сбоя: потому что не может найти librdkafka
(как и ожидалось, поскольку я намеренно удалил librdkafka
)
Я понимаю, почему происходит сбой, но я пытаюсь понять, есть ли способ изящно обрабатывать сценарий, где librdkafka
не существует на локальной машине?
Я реализовал функцию, чтобы проверить, что сам файл существует, и я вызываю его в applicationWillFinishLaunching
в делегате, но приложение вылетает до вызова этой функции, так что это бесполезно.
Мой Вторая мысль, возможно, заключалась бы в том, чтобы раскошелиться на репо и настроить импорт здесь: https://github.com/IBM-Swift/SwiftKafka/blob/master/Sources/Crdkafka/shim.h - но я не уверен на 100%, если это лучший способ.
Спасибо!