it-swarm.com.ru

Ошибка знака кода в macOS High Sierra Xcode - недопустимая ветвь ресурса, информация об Finder или подобный детрит не допускаются

Уже пробовал: Ошибка знака кода на macOS Sierra, Xcode 8

Пожалуйста, смотрите изображение, показывающее ошибку  enter image description here

CodeSign /Users/gururajtallur/Library/Developer/Xcode/DerivedData/Flow-bkqjkvtmvjovpyepfjeyqmjpintj/Build/Products/Debug-iphoneos/Super\ Flow\ Flip.app
    cd "/Volumes/Development/Project/Top Best Games/19. Lets Flow/35/let's FLOW - source/proj.ios_mac"
    export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate
    export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"

Signing Identity:     "iPhone Distribution: New Free Games (2CHN583K4J)"
Provisioning Profile: "Super Flow Flipp AppStore"
                      (c6c30d2a-1025-4a23-8d12-1863ff684a05)

    /usr/bin/codesign --force --sign E48B98966150110E55EAA9B149F731901A41B37F --entitlements /Users/gururajtallur/Library/Developer/Xcode/DerivedData/Flow-bkqjkvtmvjovpyepfjeyqmjpintj/Build/Intermediates/Flow.build/Debug-iphoneos/Super\ Flow\ Flip.build/Super\ Flow\ Flip.app.xcent --timestamp=none /Users/gururajtallur/Library/Developer/Xcode/DerivedData/Flow-bkqjkvtmvjovpyepfjeyqmjpintj/Build/Products/Debug-iphoneos/Super\ Flow\ Flip.app

/Users/gururajtallur/Library/Developer/Xcode/DerivedData/Flow-bkqjkvtmvjovpyepfjeyqmjpintj/Build/Products/Debug-iphoneos/Super Flow Flip.app: resource fork, Finder information, or similar detritus not allowed
Command /usr/bin/codesign failed with exit code 1

В разделе Code Sign это позволяет мне выбрать профиль и сертификат ... но все равно выдает ошибку .  enter image description here

 enter image description here

Как решить эту проблему?

214
iPhoneProcessor

Решение 1:

Веб-сайт Apple для разработчиков Ответы выше проблемы Здесь .

Выполните следующую команду в терминале: Сначала перейдите в корневую папку проектов

 xattr -cr <path_to_app_bundle>

Чистый Xcode и Re Build. ура

Решение 2:

Вы можете решить эту проблему, найдя файлы, которые содержат информацию Finder.

В терминале перейдите в корневой каталог проекта и выполните

ls [email protected] . > kundapura.txt

Это создает kundapura.txt в текущем каталоге. Теперь найдите com.Apple.FinderInfo и очистите эти атрибуты для всех файлов. Вы можете сделать это так

xattr -c <filename>

Пример: xattr -c guru.png

Как только вы очистите все, кодовый знак работает. Чистый Xcode и Re Build. ура

Решение 3: Вдохновлено ответом Марка Маккоркла

В терминале перейдите в корневой каталог проекта и выполните одну за другой команду

  find . -type f -name '*.jpeg' -exec xattr -c {} \;
  find . -type f -name '*.jpg' -exec xattr -c {} \;
  find . -type f -name '*.png' -exec xattr -c {} \;
  find . -type f -name '*.json' -exec xattr -c {} \;

Чистый Xcode и Re Build. Готово.

468
Guru

Ошибка связана с атрибутами внутри ваших файлов изображений. Это произошло от нашего графического дизайнера, сохранившего изображения из фотошопа с атрибутами.

Вот простая команда, чтобы найти все ваши файлы PNG и удалить их атрибуты. Запустите это в корневом каталоге ваших проектов из терминала. Очистить и восстановить; задача решена.

find . -type f -name '*.png' -exec xattr -c {} \;
145
Mark McCorkle

Если у вас есть эта ошибка при кодировании приложения:

разветвление ресурса, поиск информации или подобный детрит не допускаются Команда/usr/bin/codesign завершилась неудачно с кодом выхода 1

Перейдите в корневую папку вашего проекта и выполните

find . | xargs -0 xattr -c

Это очистит атрибуты для всех файлов.

В Сьерре ужесточены правила, касающиеся того, что может быть в подписанном пакете, и использование ресурсов для ресурсов больше не допускается. AppleScript всегда сохранял информацию в ресурсных ветках, хотя эта информация долгое время не использовалась. В Sierra, когда вы сохраняете сценарий, эта информация о ресурсной ветке больше не будет сохранена.

Это означает, что вы не можете присвоить код сценарию, который последний раз сохранялся в версии до Sierra; Вы должны сохранить в Сьерре, чтобы иметь возможность войти в Сьерру.

Люди, которые могут быть затронуты тем, кто связывает другие сценарии в свои сценарии (cordova?). Они не смогут подписать сценарий контейнера, пока все встроенные сценарии не будут сохранены в Sierra.

Обновление:

Похоже, это также работает:

xattr -rc .

Если у вас недостаточно прав доступа, попробуйте добавить Sudo: Sudo xattr -rc .

80
Arnold Roa

Официальный ответ Apple на этот вопрос есть в Технические вопросы и ответы QA1940 .

Это усиление безопасности, введенное в iOS 10, macOS Sierra, watchOS 3 и tvOS 10.

Подписание кода больше не позволяет любому файлу в комплекте приложений иметь расширенный атрибут, содержащий ветку ресурса или информацию Finder.

Чтобы увидеть, какие файлы вызывают эту ошибку, запустите эту команду в Терминал: xattr -lr <path_to_app_bundle>

Вы также можете удалить все расширенные атрибуты из вашего пакета приложения с помощью команда xattr: xattr -cr <path_to_app_bundle>

<path_to_app_bundle> можно заменить на каталог вашего проекта Xcode. Например, ~/Development/MyProject

21
comrade

Самый простой способ обработки атрибутов в ваших исходных файлах - это заставить Xcode очистить архив до того, как он запустит кодировку. Сделать это:

  1. Выберите цель в XCode
  2. Выберите вкладку Фазы сборки
  3. Нажмите символ +
  4. Выберите этап запуска нового сценария
  5. Введите следующее для сценария:

    xattr -cr ~/Библиотека/Разработчик/Xcode/DerivedData || эхо ясно

Теперь, когда вы создадите свою цель, она очистит все атрибуты, которые могли бы нарушить код. При очистке на этом этапе вам не нужно изменять каталог исходного кода/проекта.

Часть сценария «|| echo Clear» гарантирует, что сборка проекта будет продолжаться даже в случае ошибок xattr.

Этот метод хорош, если вы используете программы, такие как DropBox, в своем хранилище кода, которые добавляют атрибуты, поскольку это не меняет ваш исходный проект, только встроенный архив.

Возможно, вам придется изменить путь в соответствии с вашим каталогом DerivedData - этот путь будет показан рядом с ошибкой кодового знака.

 xattr codesign xcode fix

16
A.Badger

Все об очистке файлов хорошо, но утомительно для нескольких проектов.

графические приложения (например, фотошоп в старых версиях) записывают дополнительную информацию (теперь мы называем ее метаданными ...) по-старому во внешние файлы, или они пришли из более старых OSX, такие файлы, как:

«com.Apple.ResourceFork» и «com.Apple.FinderInfo», например, при разархивировании папки.

Xcode 8 отказывается добавлять его в сборку (так как вы добавили их в проект с помощью «git --add.» Может быть ..) Вы можете найти в терминале рекурсивно и удалить их, но это может быть утомительно.

Я написал небольшую бесплатную утилиту, чтобы удалить его .. надеюсь, что это может помочь ..

https://iTunes.Apple.com/us/app/cleandetritus/id1161108431?ls=1&mt=12

15
ingconti

Я использовал следующую команду. Используйте окно терминала. Перейдите к вашему проекту и выполните следующее:

xattr -rc .
13
Ram G.

Простое решение: -

Как я сделал [Работая на меня]

Шаг 1: - Перейдите в эту папку - в Finder нажмите «Перейти» -> «Перейти к папке».

затем введите путь к вашему проекту, как этот пример: - Библиотека/Разработчик/Xcode/DerivedData/ваше имя проекта/Build/Products/Debug-iphoneos

Теперь вы можете увидеть всплывающее окно со списком доступных файлов, там вы видите файл yourApp.app [ничего не делайте, просто дождитесь шага 2].

Шаг 2: - Откройте новый терминал и введите просто cd, затем просто перетащите шаг 1 yourApp.app в терминал, теперь вы получите путь к приложению, теперь нажмите кнопку ввода.

Шаг 3: - Теперь введите эту команду **

xattr -rc.

Не пропустите "." (Dot) нажмите кнопку ввода. 

Вот и все, зайдите в свой проект Xcode и очистите и запустите снова. 

10
Abdu

Для тех (как я), которые просто пытаются разработать приложение, не разбирая расширенные атрибуты в каждом новом фотошопе, созданном PNG, добавленном к цели macOS, вы можете временно отключить подписывание кода, добавив пользовательский параметр сборки: 

CODE_SIGNING_ALLOWED = No 

Очевидно, что одно распространяющее приложение должно в конечном итоге решить эту проблему, но это позволяет разрабатывать в тех случаях, как у меня, когда не обязательно было просто пропустить подпись кода в Sierra (в прошлых OS X/Xcode это было проще сделать). 

Согласно комментарию RGriffith, вот несколько скриншотов для тех, кто не уверен, как добавлен пользовательский параметр сборки. 

 enter image description here

 enter image description here

10
Bobjt

----- Если вы не можете применить вышеуказанные решения из-за отсутствия знаний Bash или чего-то еще.

У меня возникла эта проблема, как только я включил iCloud Drive на моей Sierra. И мой проект был в папке, которая была синхронизирована с iCloud Drive. Я полагаю, это то, что добавляет эти дополнительные атрибуты. 

Временное решение:

Отключите iCloud Drive для папки, в которой находится ваш проект.

8
Fawkes

Вам нужно будет удалить папку пакета приложения и перестроить приложение, как описано ниже.

Мое приложение называется: аугмент

В окне терминала перейдите в папку вашего приложения Например: cd/Users/username/Library/Developer/Xcode/DerivedData /

В окне терминала запустите команду для папки вашего приложения Например: xattr -cr augment-flmbiciuyuwaomgdvhulunibwrms

Clean> Build> Выполнить.

В Mac Appstore есть также бесплатное приложение под названием «CleanDetritus», которое будет удалять их.

4
velhala

Эта проблема пришла ко мне вчера.

(What's wrong) Я обновил ресурсы изображения, вручную заменив файл в Finder, и мне не удалось с этой ошибкой компиляции.

(What's right) Не обновляйте изображение таким образом. После этого я перетаскивал изображения на «xcassets» в Xcode. Больше ошибки не появляются снова.

2
ManuQiao

Проблема в производных данных. Вы должны очистить производные данные, а затем очистить проект и собрать. Пожалуйста, проверьте это ссылку.

2
Yogesh Dalavi

Моя проблема - каждое изменение, которое я делаю в коде и выполняю снова, ошибка появляется снова. Затем я нахожу решение автоматически выполнять команду при каждой компиляции/выполнении кода.

Благодаря @ rich-способны я обнаружил «Run Script». Затем я поставил команду "xattr -cr." в поле.

 XCODE Solution

1
Andrey

Самое простое исправление может быть, если вы используете git . Пытаться:

$ git stash
$ git stash pop

Git не хранит файловые метаданные, вышеизложенное удалит все это.

1
emp

Я также сталкиваюсь с той же проблемой, которая была исправлена ​​простым перезапуском моего Macbook.

0
Irfan

Моя проблема заключалась в том, что я использовал cordova для создания приложения около 1 года назад, но оно не было совместимо с новой версией xcode, поэтому я просто использовал cordova build ios, и оно снова заработало. 

0
Frederik Witte

Если команды xattr не годятся, это может быть связано с ошибкой XCode 9: Попробуем удалить и заново добавить папку ресурсов (в моем случае это был .xcassets), в которой содержатся поврежденные файлы из Xcode. (вы должны понимать, какие файлы были затронуты ранее с помощью команды xattr -lr)

0
Joe Aspara

Одним из лучших решений является Перейти к терминалу введите это

xattr -cr "Full path of your project"

Чтобы найти полный путь вашего правого клика на Xcode project-> get info -> copy path и замените на . Затем введите ниже команду 

xattr -cr "Full path of your project"

Очистить и построить сделано.

0
Rajesh

Откройте терминал и просто запустите эту команду.

xattr -cr "путь к файлу .app"

0
Idrees Ashraf

Я обнаружил, что если я добавлю color tag в папку под именем DerivedData, это приведет к появлению вышеуказанной ошибки при отладке на устройстве.

Удалить color Tag исправить эту ошибку для меня.

 enter image description here

0
JerryZhou