Сообщение об ошибке:
Compiling for iOS 15.0, but module 'WhisperKit' has a minimum deployment target of iOS 16.0: /Users/saamer/Library/Developer/Xcode/DerivedData/BeAwareConf-hbgkemigbbowvzhfaegoplloiayn/Index.noindex/Build/Products/Debug-iphoneos/WhisperKit.swiftmodule/arm64-apple-ios.swiftmodule
Я знаю, что этот вопрос в прошлом задавался много раз, но, похоже, ни у кого нет на него хорошего ответа. Итак, я попробую задать вопрос еще раз, на случай, если Apple найдет решение этой проблемы.
Для KhutbahCaptioning я бы хотел использовать SDK с открытым исходным кодом « WhisperKit» для пользователей, у которых сейчас установлена iOS, и предоставить этим пользователям новые функции iOS 16 или новее. Но мы не хотим, чтобы пользователи, которые все еще используют iOS 15, не получали другие полезные для них обновления.
Ошибка ТОЛЬКО в этой строке import WhisperKit
, я знаю для SwiftCharts Я смог использовать canImport вот так:
#if canImport(Charts)
import Charts
#endif
и это сработало, но я получаю сообщение об ошибке выше, когда пытаюсь сделать это для WhisperKit. Я попробовал все решения, предложенные в подобных вопросах из прошлого, но ни одно из них не сработало. Кто-нибудь добился успеха в этом? Или у меня есть только два варианта: установить минимальную цель развертывания на iOS 16 или не использовать эту библиотеку?
ХОРОШО, мне удалось запустить проект! Я не знаю, есть ли или будет ли лучшее решение в будущем. Я не думал, что мое решение сработает, поэтому не был слишком уверен, но мне потребовалось около 4 часов, чтобы это понять. С этими инструкциями вам потребуется намного меньше
Это был действительно долгий процесс, но я развил репозиторий WhisperKit и создал свой собственный , добавил проверки iOS 15 и изменил требования к версии на iOS 15, как вы можете видеть в моей истории коммитов.
Проблема заключалась в том, что он также зависел от другого репозитория, к счастью, он тоже был с открытым исходным кодом. Итак, я тоже его форк и внес аналогичные изменения, но мои изменения в форке не были отражены, и я узнал, что мне нужно создать новый выпуск, что я узнал, что могу сделать, перейдя в репозиторий на GitHub. -> Перейдите на вкладку «Код» -> нажмите «Теги» -> «Релизы» -> Проект нового выпуска -> Выберите тег -> укажите большее число.
А затем укажите эту версию и репозиторий в разрешенных и быстрых файлах кода WhisperKit. И это сработало, я умею успешно строить! В свой код я добавил проверку, чтобы убедиться, что код библиотеки используется устройствами iOS 16 и более поздних версий.
Чтобы быстро определить необходимые изменения, особенно для больших библиотек, я рекомендую сначала сосредоточиться на изменении iOS-версий зависимых пакетов, чтобы вы могли добавить их в свой проект. И затем он покажет вам, в каких строках кода есть проблемы. Мне удалось «Показать в Finder» проблемные файлы и открыть их в текстовом редакторе, а затем перезаписать файлы только для чтения, чтобы избавиться от ошибок одну за другой локально, чтобы компилятор Xcode мог показать мне другие ошибки совместимости с iOS 15. . А затем, когда все было исправлено, я скопировал эти изменения файлов в созданные мной репозитории пакетов с открытым исходным кодом.