В Xcode 10 я получаю эту ошибку сборки с одной из моих платформ, когда я делаю инкрементную сборку (работают чистые сборки):
Showing All Messages
:-1: Cycle inside LoggingSharedFramework; building could produce unreliable results.
Cycle details:
→ Target 'LoggingSharedFramework' has a command with output 'blablabla/Build/Products/Debug-iphonesimulator/LoggingSharedFramework.framework/LoggingSharedFramework'
○ Target 'LoggingSharedFramework' has link command with output 'blablabla/Build/Intermediates.noindex/blablablah/Debug-iphonesimulator/LoggingSharedFramework.build/Objects-normal/x86_64/LoggingSharedFramework'
- Фреймворк не имеет целевых зависимостей
- Фаза заголовков предшествует компиляции исходников.
- Я просмотрел каждый файл и убедился, что нет импортируемых файлов за пределами LoggingSharedFramework (кроме материалов Cocoa).
- Я не использую никакую систему управления зависимостями (например, carthage), потому что нет внешних зависимостей. Эта структура поддерживается в рамках проекта
Эта ошибка не имеет для меня смысла. Какова истинная причина? Как я могу понять, что представляет собой цикл? Как исправить цикл?
Вот журнал сборки отладки, который я получаю:
Build system information
error: target: ->
node: <all> ->
command: <all> ->
node: .../DerivedData/MyApp/Build/Products/Debug-iphoneos/LoggingSharedFramework.framework/LoggingSharedFramework ->
command: 60cc809630:Debug:CreateUniversalBinary .../DerivedData/MyApp/Build/Products/Debug-iphoneos/LoggingSharedFramework.framework/LoggingSharedFramework normal armv7 arm64 ->
node: .../DerivedData/MyApp/Build/Intermediates.noindex/MyApp.build/Debug-iphoneos/LoggingSharedFramework.build/Objects-normal/armv7/LoggingSharedFramework ->
command: 60cc809630:Debug:Ld .../DerivedData/MyApp/Build/Intermediates.noindex/MyApp.build/Debug-iphoneos/LoggingSharedFramework.build/Objects-normal/armv7/LoggingSharedFramework normal armv7 ->
node: .../DerivedData/MyApp/Build/Products/Debug-iphoneos/LoggingSharedFramework.framework/LoggingSharedFramework
** BUILD FAILED **
Я предполагаю, что там есть цикл, но я не понимаю, почему он существует или как его исправить. Похоже Ld на каком-то промежуточном объекте зависит от скомпилированного фреймворка? Это не имеет смысла для меня.
Раньше я думал, что исправил это, переместив фазу сборки заголовков на более ранний период, исправив предупреждения заголовков зонтика и очистив сборку. Но оказалось, что это было только временное решение. Эта проблема, кажется, снова появляется случайным образом, и как только Xcode обнаруживает цикл, она не исчезнет, пока я снова не очистю. Затем оно какое-то время исчезает, и какая-то неизвестная причина возвращает его.
defaults write com.apple.dt.XCBuild EnableDebugActivityLogs -bool YES
в терминале, а затем снова построить? - person Ben Kane   schedule 11.10.2018EnableDebugActivityLogs
, но сначала подумал, что должен убрать все неуместные предупреждения в фреймворке, чтобы ошибка была более очевидной. Но исправление предупреждений в заголовке зонтика привело меня к решению, которое я опубликовал ниже. Спасибо за ваши предложения. - person Max   schedule 12.10.2018LoggingSharedFramework
вы проверилиXcode Project Settings > Build Phases > Compile Sources
файлы, которых там быть не должно? - person staticVoidMan   schedule 19.03.2019Wframework-include-private-from-public flag
? - person Parth Tamane   schedule 02.07.2021