Я делаю плагин к ą стороннему приложению. Часть плагина написана на Swift. Подключаемый модуль застревает в Xcode 7.3.1 / Swift 2.2 из-за этой проблемы < / а>.
Плагин больше не работает в Мохаве.
У нас есть следующие наблюдения:
- Проблема ограничена Mojave, все работает, как ожидалось, в более старых версиях macOS.
- Если стороннее приложение просит «загрузить этот пакет» подключаемого модуля, оно просто получает ноль.
- Метод init плагина вообще не вызывается.
- Если я полностью удалю Swift 2.2 из базы кода плагина (сделав его непригодным для использования), его пакет будет правильно загружен.
Есть идеи, что может вызвать эту проблему и как ее исправить?
PS: Убедить пользователей установить более новую версию Python / PyObjC невозможно, и нельзя ожидать, что Apple объединит более новую версию Python / PyObjC с macOS (поэтому базу кода подключаемого модуля нельзя обновить до более новой версии Swift). Перенос кода со Swift на Objective-C планируется, но это произойдет не мгновенно (это вопрос нескольких месяцев).
Xcode 9.3 > Above
. Итак, сначала запустите проект вXcode 8
, затем преобразуйте его в соответствующую версию Swift, затем перейдите к одной версии впереди вXcode 8.3
..... затемXcode 9.0
и ....... доXcode 10
. Вы не можете напрямую конвертироватьSwift 2.2
вSwift 4.2
. - person TheTiger   schedule 18.10.2018so the plug-in code base cannot be upgraded to a newer Swift version
), я не могу обновиться до чего-либо новее, чем Swift 2.2, поскольку это последняя версия, совместимая с устаревшим PyObjC, входящим в состав macOS. Если я обновлюсь, и пользователь установит подключаемый модуль на основе Python, одновременно установив наш подключаемый модуль на основе Swift, все приложение выйдет из строя при запуске. - person alik   schedule 18.10.2018