Компиляция для iOS 15.0, но для модуля WhisperKit минимальная цель развертывания — iOS 16.0

Сообщение об ошибке: 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 или не использовать эту библиотеку?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
81
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

ХОРОШО, мне удалось запустить проект! Я не знаю, есть ли или будет ли лучшее решение в будущем. Я не думал, что мое решение сработает, поэтому не был слишком уверен, но мне потребовалось около 4 часов, чтобы это понять. С этими инструкциями вам потребуется намного меньше

Как я сделал сборку библиотеки iOS 16 с iOS 15:

Это был действительно долгий процесс, но я развил репозиторий WhisperKit и создал свой собственный , добавил проверки iOS 15 и изменил требования к версии на iOS 15, как вы можете видеть в моей истории коммитов.

Проблема заключалась в том, что он также зависел от другого репозитория, к счастью, он тоже был с открытым исходным кодом. Итак, я тоже его форк и внес аналогичные изменения, но мои изменения в форке не были отражены, и я узнал, что мне нужно создать новый выпуск, что я узнал, что могу сделать, перейдя в репозиторий на GitHub. -> Перейдите на вкладку «Код» -> нажмите «Теги» -> «Релизы» -> Проект нового выпуска -> Выберите тег -> укажите большее число.

А затем укажите эту версию и репозиторий в разрешенных и быстрых файлах кода WhisperKit. И это сработало, я умею успешно строить! В свой код я добавил проверку, чтобы убедиться, что код библиотеки используется устройствами iOS 16 и более поздних версий.

Советы

Чтобы быстро определить необходимые изменения, особенно для больших библиотек, я рекомендую сначала сосредоточиться на изменении iOS-версий зависимых пакетов, чтобы вы могли добавить их в свой проект. И затем он покажет вам, в каких строках кода есть проблемы. Мне удалось «Показать в Finder» проблемные файлы и открыть их в текстовом редакторе, а затем перезаписать файлы только для чтения, чтобы избавиться от ошибок одну за другой локально, чтобы компилятор Xcode мог показать мне другие ошибки совместимости с iOS 15. . А затем, когда все было исправлено, я скопировал эти изменения файлов в созданные мной репозитории пакетов с открытым исходным кодом.

Другие вопросы по теме