Не удалось построить модуль из его интерфейса модуля; он мог быть поврежден или мог вызвать ошибку в компиляторе Swift при его создании

При создании подобного xcframework

архив xcodebuild -project endiosOne-iOS.xcodeproj -scheme EOFoundation -destination = iOS -archivePath /tmp/xcf/ios.xcarchive -dehibitedDataPath / tmp / iphoneos -sdk iphoneos SKIP_INSTALL = NO BUILD_LIBRARIES_FOR_DISTRIB

Архив xcodebuild -project endiosOne-iOS.xcodeproj -scheme EOFoundation -destination = iOS Simulator -archivePath /tmp/xcf/iossimulator.xcarchive -dehibitedDataPath / tmp / iphoneos -sdk iphonesimulator SKIP_INSTALL = NO BUILD_FUTION_DARISIES

xcodebuild -create-xcframework -framework /tmp/xcf/ios.xcarchive/Products/Library/Frameworks/EOFoundation.framework -framework /tmp/xcf/iossimulator.xcarchive/Products/Library/Frameworks/EOFoundputation / tramework xcf / EOFoundation.xcframework

Затем при добавлении фреймворка к существующему или новому проекту мы получаем эту ошибку там, где мы импортируем фреймворк.

Не удалось построить модуль EOFoundation из его интерфейса модуля; он мог быть поврежден или мог вызвать ошибку в компиляторе Swift при его создании

Используя xcode 12.1, также пробовал с Xcode 11. Пробовал с новым приложением UIKit и новым приложением только для SwiftUI.

Мы получаем следующие ошибки UIKit: Ошибки UIKit

Я не могу исправить ошибки UIkit, так как они есть в UIKit: к сожалению, Apple не дает нам много информации о том, как это исправить.

Как я могу это исправить, чтобы использовать xcframework, созданный мной в другом проекте?


person user1898829    schedule 07.12.2020    source источник
comment
Вы нашли какое-нибудь решение?   -  person Harish Gupta    schedule 30.12.2020
comment
Да, я нашел решение. Отправлю, когда вернусь в офис снова. Это было как-то связано с общедоступным расширением для uitextdelegate. Я сделал метод закрытым, и проблема была решена.   -  person user1898829    schedule 03.01.2021


Ответы (2)


Я отправил в Apple запрос об обратной связи по этой проблеме, и они предложили следующее:

Мы можем сказать вам, что есть одна известная проблема, которая соответствует вашему описанию: если ваш модуль называется «MyModuleName» и он также объявляет или импортирует тип с именем «MyModuleName», имена в файле которые должны ссылаться на модуль, вместо этого будут преобразованы в тип, вызывая ошибки при попытке его импорта. Система отслеживания ошибок проекта с открытым исходным кодом Swift описывает эту ошибку и способы ее устранения в общедоступной статье по адресу https://bugs.swift.org/browse/SR-14195

Разумеется, тип, который я экспортировал из своего фреймворка, был назван точно так же, как модуль, из которого я его импортировал. Переименование типа решило проблему для меня.

person ikaz    schedule 09.03.2021

Решением было удалить общедоступные методы в расширении UITextView: UITextViewDelegate {

} и просто добавьте его в подкласс UITextView, который был fileprivate.

person user1898829    schedule 03.01.2021
comment
Привет, я тоже столкнулся с той же проблемой, но в моем случае я не получаю никаких ошибок UIkit или каких-либо других ошибок, кроме Failed to build module 'FrameworkName' из его интерфейса модуля; он мог быть поврежден или мог вызвать ошибку в компиляторе Swift при его создании. Если возможно, можете ли вы предложить обходной путь или что я делаю не так? - person Surya; 05.03.2021
comment
Есть новости по этому поводу? - person arihant jain; 01.05.2021
comment
Почему этому решению помечена зеленая галочка? - person NRitH; 12.07.2021
comment
Я удалил метод делегата и, скорее, подклассы UITextView, это устранило проблему для меня. Я обнаружил проблему, просматривая свой код и комментируя код UIKit. Если вы не получаете ошибок UIKit, то это решение не для вас. - person user1898829; 13.07.2021