-
Notifications
You must be signed in to change notification settings - Fork 41
Не компилируется с версией 6.5.0 #124
Comments
Здравствуйте. набор команд который исправляет установку зависимостей обычно выглядит так rm -rf ~/.cocoapods/repos в редких случаях может потребоваться pod deintegrate перед pod install При сложностях с установкой по тэгу, можно воспользоваться опцией установки по коммиту т.е. необходимо изменить в Podfile pod 'YooKassaPayments',
pod 'YooKassaPayments', Приносим извинения за доставленные неудобства. Hello. Having that the specs were modified and current tags point to new commits, the local cocoapods spec cache is no longer valid. Deleting cache, Podfile.lock & new install pods should resolve the problem. rm -rf ~/.cocoapods/repos pod deintegrate before pod install could help but as we see is not required in most cases. the other temporary option is to make cocoapods point to a commit instead of tag in podfile pod 'YooKassaPayments', one can go We sincerely apologize for the inconvenience caused. |
С версией 6.4.0 после выполнения этих действий я получаю ошибку |
Могу предположить что это связано с зависимостью CardIO или какой либо другой objective-c библиотекой подключаемой через bridging header. Мы думаем что эта проблема связана не только c зависимостями устанавливаемы через cocoapods, но и вообще с одновременным использованием любого xcframework одновременно с библиотеками подключаемыми через bridging header. Похоже что это новая парадигма использования зависимостей. Мы исследуем варианты настроек в cocoapods, но пока не добились успеха ни с use_modular_headers! для отдельного таргета или глобально, ни с :modular_headers => true для конкретной зависимости. Мы готовим пример подключения CardIO как development pod c использованием .modulemap что должно решать эту ошибку. Пример добавим в код экзампла. NB: Есть информация что явная установка BUILD_LIBRARY_FOR_DISTRIBUTION = NO для зависимостей помогает решить эту проблему. также убедитесь что в Podfile добавлено source 'https://github.com/yoomoney-tech/cocoa-pod-specs.git' следует удалить и всё что будет всплывать связаное с yoomoney-tech можно удалять, так как https://github.com/yoomoney-tech/ более не существует. |
Насколько я понимаю, что сейчас Apple рекомендует использовать BUILD_LIBRARY_FOR_DISTRIBUTION=YES, и оно работало с этой настройкой в старых версиях. Cейчас вы сделали обновление, в котором предлагаете использовать устаревший вариант настройки BUILD_LIBRARY_FOR_DISTRIBUTION=NO? Зачем нужно такое обновление? |
Про какие устаревшие библиотеки вы говорите, если версия 6.2.0 успешно собирается? Вы в новые версии добавили какие-то устаревшие библиотеки? |
BUILD_LIBRARY_FOR_DISTRIBUTION=YES эта настройка включает library evolution и необходимая для сборки xcframework, в тандеме с настройкой SKIP_INSTALL=NO. Эта настройка для зависимостей подключаемых через cocoapods очевидно приводит к конфликту подключения objc библиотек, также подключаемых через cocoapods которые и которые в итоге в приложение необходимо подключать через bridging-header. |
Вы написали какой-то текст, но не ответы на мои вопросы. |
BUILD_LIBRARY_FOR_DISTRIBUTION не является рекомендованной настройкой. Из спеки вызывавшей проблемы мы её убрали. Для cocapods настройка не имеет смысла в принципе, хотя вызывает упомянутую ошибку. Несмотря на это у части пользователей с Xcode 13, упомянутая ошибка не пропадает независимо от настроек. В этом случае мы не видим другого варианта кроме как отказаться от использования bridging header. На этой неделе мы добавим в экземпл приложение пример подключения библиотеки CardIO который не требует bridging header. Факт того что предыдущие версии библиотеки собираются, в данном случае не имеет отношения к вопросу, к найденым и исправленным проблемам. Также отметим что здесь на гитхаб мы не можем помочь ответом на срочные вопросы. По срочным вопросам просим вас обращаться в нашу службу поддержки. |
|
Ошибка:
Говорит о том что в проекте существует bridging header. Конкретно в build settings таргета проставлен какой-либо путь в настройку SWIFT_OBJC_BRIDGING_HEADER указывающий на соответствующий bridging header файл. Он может быть пустым или в нём могут быть объявлены другие заголовочные файлы которые вы хотите чтобы были видны в swift окружении. Для решения проблемы подключите obj-c / c / c++ код другим способом. Например через подпроект фреймворка или swift package и удалите настройку SWIFT_OBJC_BRIDGING_HEADER. |
The text was updated successfully, but these errors were encountered: