Я пытаюсь перейти на новую систему сборки при компиляции с Xcode 10. Однако возникает следующая ошибка:
Cycle details:
→ Target 'project' : LinkStoryboards
Target 'project' has compile command with input '/Users/project/Commons/Components/ScreenshotSharing/ViewController/AppShare.storyboard'
Target 'project' : ValidateEmbeddedBinary /Users/project/Xcode/DerivedData/project-hgqvaddkhmzxfkaycbicisabeakv/Build/Products/Debug-iphoneos/project.app/PlugIns/stickers.appex
Target 'project' has process command with input '/Users/project/Resources/Info.plist'
Target 'project' has compile command with input '/Users/project/Commons/Components/ScreenshotSharing/ViewController/AppShare.storyboard'
Даже после удаления проблемного файла я получаю то же самое для другого xib / раскадровки. Как я могу решить эту ошибку, не возвращаясь к устаревшей системе сборки?
xcode10
compile-time
build-system
Сахил Капур
источник
источник
Ответы:
Если у кого-то возникла проблема с системой сборки Xcode 10, выполните следующие действия, чтобы исправить это:
Это решит проблему сборки с новым Xcode.
Если вы хотите работать с новой системой сборки, вы можете найти справку по устранению неполадок на этой странице справки Apple Xcode .
источник
У меня была эта проблема с Cocoapods. Решением было очистить папку сборки, переустановить все модули, а затем перестроить приложение. Так проблема решилась сама собой.
источник
Я исправил свою проблему, переместив этап сборки «Копировать ресурсы пакета» до всех этапов сборки «Копировать файлы» и «Связать двоичный файл с библиотеками».
источник
Новая система сборки Xcode 10 обнаруживает циклы зависимостей в вашей сборке и предоставляет диагностику, которая поможет вам их разрешить. Исправление этих циклов зависимости повышает надежность вашей сборки, так что правильные продукты производятся единообразно (циклы являются возможной причиной необходимости удаления производных данных). Это также сокращает время инкрементной сборки, поскольку циклы в сборке приводят к тому, что что-то в вашем графике сборки всегда устаревает при каждой сборке, что заставляет повторную сборку работать без необходимости каждый раз при сборке.
В справке Xcode есть документация по разрешению некоторых распространенных типов циклов зависимости: https://help.apple.com/xcode/mac/current/#/dev621201fb0
Тем не менее, эта циклическая диагностика выглядит немного странно. Похоже, вы смогли решить эту проблему, изменив порядок этапов сборки, но я не думаю, что диагностика действительно объясняла проблему. Если вы не возражаете, мы будем очень признательны за отчет об ошибке об улучшении этой диагностики для этого конкретного случая. Вы можете подать заявку на https://bugreport.apple.com . Пожалуйста, включите все детали вашего проекта, которые, по вашему мнению, могут иметь отношение к делу; Образец проекта, который воспроизводит проблему, является идеальным, но если вы не можете его прикрепить, диагностика и некоторое представление о структуре проекта по-прежнему будут полезны.
источник
У меня возникла проблема с Cocoapods, и я нашел временное решение:
sudo gem update cocoapods
rm -rf ~/Library/Developer/Xcode/DerivedData/*
pod install
Источник здесь, и я нахожусь на Xcode 10 beta 4.
РЕДАКТИРОВАТЬ : теперь на Xcode 10.0 и по-прежнему актуально.
источник
Clean Build Folder
(и выход из Xcode также может помочь) перед выполнением шагов2.
и3.
.У меня была аналогичная проблема со смешанным взаимодействием между Swift, Objective-C и CoreData : в моем проекте (написанном на Swift) я также использовал классы Swift Core Data.
Но в какой-то момент мне понадобился класс Objective C с общедоступными свойствами (определенными в его аналоге заголовка), ссылающимся на основные сущности данных.
Как только я изменил модель CoreData, XCode попытался перестроить классы, и я завис с указанной ошибкой построения цикла.
После начального момента отчаяния, поскольку у меня не было этапов компиляции заголовков в моем проекте, порядок которых можно было бы изменить, я обнаружил, что решение было довольно простым:
В этом
myObjCClass.h
я удалил общий оператор импорта заголовка Swift и изменил его с помощью@class
директивы:и я переместил
#import "ProjectName-Swift.h"
оператор вmyObjCClass.m
файл определения класса.И это не создавало проблем.
источник
Я наконец смог решить эту проблему, переместив
Embed App Extensions
скриптBuild Phases
из основной цели в последнюю позицию.источник
Фактически, вам нужно только обратить внимание на подсказку Xcode
This usually can be resolved by moving the target's Headers build phase before Compile Sources
, и тогда вы сможете это сделать.Когда я столкнулся с этой проблемой, Xcode предлагает мне:
:-1: Cycle inside XXXX; building could produce unreliable results. This usually can be resolved by moving the target's Headers build phase before Compile Sources. Cycle details: → Target 'XXXX': LinkStoryboards ○ Target 'XXXX: Ditto Path/XXXX-Swift.h /Path/XXXX-Swift.h ○ Target 'XXXX has compile command for Swift source files ○ That command depends on command in Target 'XXXX: script phase “Run Script”
Я сделал только одно и отлично решил проблему:
Выберите,
Target
а затем выберите,Build Phase
чтобы переместить вRun Script
началоCompile Sources
.Запускаем, успешно скомпилированы.
Принцип прост, достаточно изменить порядок компиляции.
Xcode 10.2 и Swift 5
источник
Я столкнулся с той же проблемой: ниже была ошибка
Я решил это, используя следующие шаги:
1). Перейти к целевой RxCocoa в проекте Pods-MyAppName
2) Перейти к этапам сборки
3) Перетащите фазу заголовков и переместите ее над фазой сборки совместимых источников.
Это устранило мою проблему. Надеюсь, поможет!
источник
Scheme
Найдите метку в мишениBuild
и убедитесь, чтоFind Implicit Dependencies
она не отмечена. Эти шаги могут сработать.источник
Мое решение было просто очистить папку сборки, а затем перестроить.
источник
Моя проблема была связана с циклической зависимостью между моим быстрым заголовком моста и моими целевыми файлами c.
В моих заголовочных файлах объекта c у меня был
#import "...-swift.h"
файл, а затем в пару моих быстрых файлов я включил эти файлы с указанным импортом и, таким образом, вызвал циклическую зависимость.Это StackOverflow, который заставил меня найти решение:
Objective C, проблема с совместимостью Swift из-за циклической зависимости
Как предотвратить циклическую ссылку, когда заголовок моста Swift импортирует файл, который импортирует сам Hopscotch-Swift.h
РЕДАКТИРОВАТЬ:
Я преобразовал вышеуказанные файлы в быстрые, и это решило мою проблему.
источник
Похоже, вам нужно изменить порядок этапов сборки в ваших целевых модулях. Для меня сработало перемещение заголовков над остальными. Вы можете автоматизировать это в своем подфиле:
источник
Та же проблема,
Version 10.0 beta 3 (10L201y)
и я хотел иметь новую систему сборки .Проблема отключена
Enable Modules (C and Objective-C)
в
Build Settings -> Apple Clang - Language - Modules
После включения (выставил ДА) избавился от ошибки.
источник
Я столкнулся с подобной проблемой, когда пытался заархивировать мой проект на Xcode 10. Вот подробный текст:
Исправлено, установив
$(USER)
вmytarget -> Build Settings -> Deployment -> Install Owner
источник
Core_Data
У меня была та же проблема и ошибка, но моя случилась, когда я «создал подкласс NSManagedObject» для своей сущности и столкнулся с этой ошибкой. Итак, если вы думаете, что ваша ошибка в отношении Core Data такая же, как у меня, что, вероятно, может вам помочь (и помогло мне):
Я думаю, потому что в других сценариях Xcode создает файл автоматически, и когда мы создаем другой, это вызывает конфликт.
источник
Xcode 10.2.1 / Цель модульного тестирования. Моя цель модульного тестирования не зависит от цели хоста, чтобы сократить время сборки. Решить ее снимите флажок
Find Implicit Dependencies
вScheme
-Build
варианты, Как я указать все зависимости вBuild Settings
-Compile Sources
.источник
Вы можете исправить это здесь:
Файл -> Настройки рабочего пространства -> Система сборки: новая система сборки
источник
Я пробовал что-то с этой страницы, но единственное, что мне помогло, это то, что я сделал копию цели и обновил имя копии (удалил суффикс копии), удалил старую и после этого установил pod.
источник
Я столкнулся с этой проблемой после обновления Xcode до версии 11.4. Это исправило переход на 11.2.1.
источник
Xcode: 11.3.1 Цель: XCUITest target
Выполните команду для очистки папки сборки: rm -rf ~ / Library / Developer / Xcode / DerivedData / *
Измените настройки рабочего пространства: выберите Legacy Build System.
источник
У меня сработали следующие два варианта: File-> Project / Workspace settings.
1. Измените систему сборки на «Legacy Build system» в File-> Project Settings.
2, отредактируйте схему и выберите опцию «Распараллелить сборку» в разделе «Сборка».
источник
На панели проекта в LHS для продуктов сборки не выбирайте их в списке для Целевого членства на панели RHS.
источник