Цикл внутри;здание может привести к ненадежным результатам: Xcode 10 Error - PullRequest
0 голосов
/ 06 июня 2018

Я пытаюсь перейти на новую систему сборки при компиляции с 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 / раскадровки,Как я могу решить эту ошибку, не возвращаясь к устаревшей системе сборки?

Ответы [ 21 ]

0 голосов
/ 28 июня 2018

Для тех, у кого есть проблема с системой сборки Xcode 10, выполните следующие шаги для ее исправления:

  1. В Xcode перейдите в File-> Project / Workspace settings.
  2. Измените систему сборки на Legacy Build system.

Это решит проблему сборки с новым Xcode.

Если вы хотите работать с новой сборкойсистема, то вы можете найти справку по устранению неполадок на этой странице справки Xcode Apple .

0 голосов
/ 13 июня 2018

Я исправил свою проблему, переместив фазу сборки «Копировать ресурсы комплекта» до того, как все мои фазы «Копирование файлов» и «Связать двоичные файлы с библиотеками»

0 голосов
/ 06 июня 2018

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

0 голосов
/ 30 ноября 2018

Вы можете исправить это здесь:

Файл -> Настройки рабочего пространства -> Система сборки: Новая система сборки

Workspace Settings

0 голосов
/ 14 сентября 2018

Я столкнулся с той же проблемой: ниже была ошибка

Цикл в зависимостях между целями 'Pods-MyAppName' и 'RxCocoa';строительство может привести к ненадежным результатам.Обычно это можно решить, переместив фазу сборки заголовков цели перед компиляцией источников.Путь цикла: Pods-MyAppName → RxCocoa → Pods-MyAppName

Я решил это, используя следующие шаги:

1).Перейдите к цели RxCocoa в проекте Pods-MyAppName

2) Перейдите к фазам сборки

3) Перетащите фазу заголовков и переместите ее выше фазы сборки источников компиляции.

Этоисправил мою проблему.Надеюсь, это поможет!

0 голосов
/ 16 января 2019

Я пробовал что-то с этой страницы, но единственное, что мне помогло, это то, что я сделал копию цели и обновил имя копии (удалил суффикс копии), удалил старую и сделал podустановить потом.

0 голосов
/ 25 сентября 2018

Я сталкивался с подобной проблемой, когда пытался заархивировать мой проект на Xcode 10. Вот подробный текст:

→ Target 'mytarget': CodeSign /path/to/mytarget.app

○ Target 'mytarget': SetGroup staff /path/to/mytarget.app

○ Target 'mytarget': SetMode u+w,go-w,a+rX /path/to/mytarget.app

○ Target 'mytarget': SetGroup staff /path/to/mytarget.app

Исправлено путем установки $(USER) в mytarget -> Build Settings -> Deployment -> Install Owner

0 голосов
/ 12 марта 2019

Следующие два варианта работали для меня: Файл-> Настройки проекта / Рабочего пространства.

1, Измените систему сборки на "Legacy Build system" в Файл-> Настройки проекта

2,Отредактируйте схему и выберите «Параллелизировать сборку» в разделе «Сборка».

0 голосов
/ 02 октября 2018

Похоже, вам нужно изменить порядок этапов сборки в пределах ваших целей Pods.Для меня перемещение заголовков выше остальных работало.Вы можете автоматизировать это в вашем Podfile:

require 'xcodeproj'

post_install do |installer|
  installer.pods_project.targets.each do |target|
    headers_phase = target.build_phases.find { |p| p.kind_of?(Xcodeproj::Project::Object::PBXHeadersBuildPhase) }
    if headers_phase
      puts "#{target.name}: Moving Headers build phase to top"
      target.build_phases.insert(0, target.build_phases.delete_at(target.build_phases.index(headers_phase)))
    end
  end
end
0 голосов
/ 22 мая 2019

На самом деле вам нужно только обратить внимание на подсказку 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.

Выполнить,успешно скомпилирован.

Принцип прост, просто измените порядок компиляции.

image 1

Xcode 10.2 & Swift 5

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...