Невозможно импортировать IOKit в платформу iOS.IOS

Программируем под IOS
Ответить
Anonymous
 Невозможно импортировать IOKit в платформу iOS.

Сообщение Anonymous »

Я написал драйвер DriverKit для iPadOS для USB-устройства. Все работает нормально. Я пытаюсь упаковать код приложения в SDK для него в рамках. Фреймворк включает в себя как Swift, так и C/Objective-C. Основной код, создающий класс для взаимодействия с драйвером, — это Swift, но есть некоторые заголовки в стиле C, в том числе те, которые используются совместно с целевым драйвером, в основном для общих типов данных (перечисления и структуры).
И код Swift, и C/Objective-C используют API и типы IOKit.
Проблема, с которой я столкнулся, заключается в том, что IOKit не является модульным в iPadOS, и таким образом, его нельзя импортировать непосредственно в Swift, ни в стандартной структуре определения модуля. В цели приложения (а не в цели платформы) это можно обойти, импортировав в заголовок моста. Эквивалентом этого в фреймворке может быть импорт IOKit в зонтичный заголовок, который фактически служит связующим заголовком в фреймворке. Однако это вызывает ошибку «включение немодульного заголовка в модуль фреймворка...».
Моей первой мыслью было включить настройку сборки CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES. Включение этого параметра не приводит к исчезновению ошибки.
Моей следующей мыслью было отключить параметр DEFINES_MODULE, но это имело два ломающих эффекта:
  • Фреймворк невозможно импортировать в код Swift (например, в приложение), поскольку он больше не определяет модуль.
  • Фреймворк все еще не компилируется, поскольку собственный код Swift фреймворка больше не компилируется. видит любой из мостовых типов, импортированных в зонтичный заголовок.
Кто-нибудь сталкивался и решал эту проблему? Короче говоря, есть ли способ создать структуру, которая импортирует IOKit в iPadOS и сама импортируется в Swift?

Подробнее здесь: https://stackoverflow.com/questions/780 ... -framework
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»