Помилка підпису коду в macOS High Sierra Xcode - вилка ресурсу, інформація про Finder чи подібний детрит заборонено


263

Вже пробували: помилка входу коду в macOS Sierra, Xcode 8

Перегляньте зображення, що відображає помилку введіть тут опис зображення

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

У розділі Знак коду це дозволяє мені вибрати профіль та сертифікат ... але все ж даю помилку. введіть тут опис зображення

введіть тут опис зображення

Як виправити цю проблему?


1
ти зробив чистим і "альт" чистим?
thorb65

засоби? Я просто відтворив сертифікати з облікових записів xcode та повторно сформував профілі на веб-сайті та повторно спробував ... все одно не пощастило.
iPhoneProcessor

Відповідь Арнольда Роаса нижче зробила трюк для мого проекту. Але вам може знадобитися зробити продукт> Очистити в XCode, щоб згодом компіляція була успішною.
Фредрік Йоханссон

плюс для cocos2d-x
fnc12

Відповіді:


583

Рішення 1:

Веб-сайт розробника Apple відповідає на проблему тут .

Виконати команду нижче в терміналі: Перша корінна папка проектів goto

 xattr -cr <path_to_project_dir>

Очистіть Xcode та Re Build. Ура

Рішення 2:

Просто перейдіть до кореневого каталогу проекту та запустіть цю команду xattr -cr.

xattr -cr .

Очистіть Xcode та Re Build. Зроблено.

Рішення 3:

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

У терміналі перейдіть до кореневого каталогу проекту та виконайте його

ls -alR@ . > kundapura.txt

Це створює kundapura.txt у поточному каталозі. Тепер знайдіть com.apple.FinderInfo та очистіть цей атрибут для всіх файлів. Ви можете це зробити так

xattr -c <filename>

Приклад: xattr -c guru.png

Як тільки ви очистите все, тоді код працює. Очистіть Xcode та Re Build. Ура

Рішення 4: Натхненний відповіддю Марка МакКоркла

У терміналі перейдіть до кореневого каталогу goto project та виконайте по одній команді

  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. Зроблено.


7
Ця фіксована помилка знаку коду в Xcode 8. Прекрасне рішення.
iPhoneProcessor

4
У мене 110 файлів із цим. Що було б командою bash, яка автоматично обробляла б їх усіх?
Фокс

2
Дякую, працювали для мене !!
Аміт Аймера

5
Це рятівник. Я витратив на це години.
Джексон

4
Дякую тобі за спільний доступ, врятували мені години, якщо не дні!
G Chris DCosta

171

Помилка полягає в атрибутах всередині ваших файлів зображень. Це сталося з нашим графічним дизайнером, зберігаючи зображення з фотошопу з атрибутами.

Ось проста команда знайти всі ваші png-файли та видалити їх атрибути. Запустіть це у кореневому каталозі своїх проектів із терміналу. Очистити та відновити; проблема вирішена.

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

12
Це має бути прийнятою відповіддю. Простіше, швидше і не вимагає ручних зусиль. У мене було 80 файлів із проблемами, відповідно до відповіді @ NatureFriend.
Роджер Оба

3
Дякую! Години, які я витратив, намагаючись знайти відповідь на цю дивну помилку - яка колосальна трата часу!
lppier

Одним з більш швидких терміналів для мене було просто перетягнути всі зображення в ImageOptimizer (який також видаляє всі непотрібні атрибути).
blackjack75

Я врятував нову іконку від піксельматора і мав ту саму проблему. Дякую.
Гай Лоу

Це працювало для мене. Мені було надано відмову в дозволі на вищезазначену команду 'xcattr -cr' (навіть доручена це робити через перелічену вище документацію Apples: developer.apple.com/library/archive/qa/qa1940/_index.html Запуск Xcode 9.3 на Високій Сьєррі 10.13.4
Рандорамма

95

Якщо у вас є помилка під час кодування програми:

вилка ресурсу, інформація про Finder або подібний детрит не дозволено Не вдалося Command / usr / bin / codeign з кодом виходу 1

Перейдіть до кореневої папки проекту та виконайте виконання

find . | xargs -0 xattr -c

Це очистить атрибути для всіх файлів.

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

Це означає, що ви не можете кодувати дизайн сценарію, який востаннє був збережений у версії до Sierra; вам потрібно заощадити в Сьєррі, щоб мати можливість увійти в Сьєрру.

Люди, на які може постраждати, - це ті, хто зв'язує інші сценарії в своїх сценаріях (cordova?) Вони не зможуть підписати скрипт контейнера, поки всі вбудовані сценарії не будуть відновлені під Sierra.

ОНОВЛЕННЯ:

Схоже, це також працює:

xattr -rc .

Якщо у вас є недостатня помилка дозволів, спробуйте додати sudo: sudo xattr -rc .


4
Я спробував це в терміналі і "недостатньо місця для аргументів"
Фокс

1
Це спрацювало як шарм! Також довелося зробити продукт> Очистити в XCode, але тоді мій проект побудований!
Фредрік Йоханссон

Спасибі людино, це працює. У моєму випадку проблема полягала в тому, що я можу протестувати на пристрої без проблем, але коли я намагаюся в симуляторі, він не працює, і показує вищевказану проблему. Ваше рішення виправило мою проблему.
Махмуд Ахсан

xattr -rc. Працюйте!
мат

Я будував з Corona SDK і стикався з тим же питанням. xattr -rc працював на мене.
Rais Iqbal

31

Найпростіший спосіб обробляти атрибути у вихідних файлах - це очистити архів Xcode, перш ніж запускати кодирування. Зробити це:

  1. Виберіть ціль у XCode
  2. Перейдіть на вкладку Фази збірки
  3. Натисніть символ +
  4. Виберіть Новий етап сценарію запуску
  5. Для сценарію введіть наступне:

    xattr -cr ~ / Бібліотека / Розробник / Xcode / DerivedData || відлуння Ясно

Тепер, коли ви будуєте свою ціль, ви очистите будь-які атрибути, які мали б порушений кодовий знак. Очистивши на цьому етапі, вам не доведеться змінювати свій вихідний код / ​​каталог проектів.

Частина сценарію "|| відлуння" гарантує продовження збирання проекту, навіть якщо помилки xattr.

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

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

xattr codeign xcode fix


1
Проблема з'являється для мене лише в проекті, створеному з ідентичного проекту, який використовує ⌘-D у Finder. Чомусь жодне з більш популярних рішень не працювало для мене. Цей і зробив.
clozach

1
СПАСИБІ! через 2 години пошуку рішення це спрацювало.
Картер Кобб

1
Нарешті! Після годин спроб інших рішень, це виправлено !! Спробуйте спочатку, але замініть шлях, показаний помилкою
кодового знаку

для мене проблемою було зображення у вихідному коді ... тому я додав сценарій запуску, який зробив це xattr -cr "$ PROJECT_DIR"
Маленький сторож

велике спасибі, це все ще працює. У моєму випадку я додав xattr -cr ~ / Користувачі / msc / OneDrive / 01 Work / APP / Flutter / lts-flutter / build / ios / Debug-iphoneos || echo Clear
mactrix

26

Я використав наступну команду. Використовуйте вікно терміналу. Перейдіть до свого проекту та виконайте такі дії:

xattr -rc .

Так, іноді допомагає лише очищення attrs у каталозі Project .. Lame Apple, навіщо робити такі хитрі речі
Антон Малишев

Окрім відповіді, яка проголосувала вгорі, це також спрацювало як альтернатива
Lance Samaria

Я також повинен був очистити папку проекту <cmd + K> після цього, щоб це спрацювало
Lance Samaria

21

Є офіційна відповідь Apple на це питання у Технічному запитанні та запитанні QA1940 .

Це зміна зміцнення безпеки, яку було введено з iOS 10, macOS Sierra, watchOS 3 та tvOS 10.

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

Щоб побачити, які файли викликають цю помилку, запустіть цю команду в Terminal: xattr -lr <path_to_app_bundle>

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

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


Опрацювавши майже всі інші запропоновані рішення, xattr -lr <path_to_app_bundle>нарешті приводять до правильних файлів. Отримали Localizable.strings від агентства з Finder-Tags і ті, що спричинили збій Codesign.
JanR

Я витрачав на це 2 дні, і це рішення, нарешті, спрацювало для мене!
bhakti123

16

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

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

"com.apple.ResourceFork" і "com.apple.FinderInfo", наприклад, при розпакуванні папки, наприклад.

Xcode 8 відмовляється додавати його у збірку (як ви додавали їх до проекту з "git --add.", Можливо ..) Ви можете знайти в терміналі рекурсивно та видалити їх, але це може бути нудно.

Я написав невелику безкоштовну утиліту, щоб її видалити .. сподіваюся, що це може допомогти ..

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


Це працювало для мене. Дякую за ваш корисний додаток!
Блакитний

Це було єдиним рішенням, яке працювало зі мною, хоча додаток багато разів вийшов з ладу, "ймовірно, через велику кількість файлів проекту", але він очистив файли, і проект нарешті працював. Дякую!
XIII

Завантажили вашу програму, і вона очистила все для мене! Дякую!
Боббі

Майте +1. Дякую
Megaetron

Я виправлю аварію для великого проекту, як тільки у мене буде трохи вільного часу!
ingconti

11

Просте рішення: -

Як я це зробив [для мене]

Крок 1: - Перейдіть до цієї папки - у вашому пошуку натисніть опцію Перейти -> Перейти до папки

потім введіть шлях вашого проекту таким чином: - Бібліотека / розробник / Xcode / DerivedData / yourprojectname / Build / Products / Debug-iphoneos

Тепер ви можете побачити вікно зі списком доступних файлів, Там ви бачите файл yourApp.app [Не робіть нічого, просто чекайте кроку 2].

Крок 2: - Відкрийте новий термінал і наберіть просто cd, а потім перетягніть крок 1 yourApp.app до терміналу, тепер ви отримаєте шлях для програми, тепер натисніть кнопку Enter.

Крок 3: - Тепер введіть цю команду **

xattr -rc.

Не пропустіть "." (Крапка) натисніть кнопку введення.

Ось так, перейдіть до свого проекту Xcode та очистіть і запустіть знову.


10

----- Якщо ви не можете застосувати рішення, вказані вище, через брак баш-знань чи чогось іншого.

У мене виникла ця проблема, як тільки я включив iCloud Drive на своїй Sierra. А мій проект знаходився в папці, синхронізованій з iCloud Drive. Я вважаю, що саме це додає ці додаткові атрибути.

Тимчасове рішення:

Вимкніть iCloud Drive для папки, де знаходиться ваш проект.


Я перейшов з iCloud Drive на робочий стіл і працює належним чином. Спасибі
drasick

Це було частиною рішення для мене. У мене був проект на робочому столі, який створювався резервними копіями в iCloud під Sierra. Мені ще потрібно було набрати xattr -rc. в терміналі, щоб видалити файли, які ображають, після переміщення проекту з робочого столу. Жодне з інших рішень не працювало на цей крок
Роджер Пінглтон

Це також було проблемою для мене: iCloudDrive викликає цю справді прикрий помилку, я повідомив про помилку в Apple -> 31740606
LukeSideWalker

Це, по суті, і моя проблема, але мені не довелося вимикати iCloud для моєї папки проекту, або переміщувати папку проекту, або щось подібне. Я щойно зайшов у Xcode Prefs-> Locations-> Advanced та вибрав опцію "Unique" для Build Location. Я використовував розташування в підпапці файлу проекту xcode, який знаходився на диску iCloud. Я думаю, що за замовчуванням є унікальний, і я не знаю, чому я коли-небудь змінив його, можливо, щоб полегшити пошук виконуваних файлів після збірки.
Daver

10

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

CODE_SIGNING_ALLOWED = No 

Очевидно, що для розповсюдження програми потрібно врешті-решт вирішити цю проблему, але це дає змогу розвиватись у таких випадках, як у мене, коли не обов'язково було просто опустити підпис коду в Сьєрра (у минулому OS X / Xcode це було простіше).

За коментарем RGriffith, ось кілька скріншотів для тих, хто не впевнений, як додано налаштування спеціальної збірки.

введіть тут опис зображення

введіть тут опис зображення


Де ви додаєте це?
RGriffiths

4

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

Моя програма називається: augment

У вікні терміналу перейдіть до папки програми, наприклад: cd / Користувачі / ім’я користувача / Бібліотека / Розробник / Xcode / DerivedData /

У вікні терміналу запустіть команду для папки програми, наприклад: xattr -cr augment-flmbiciuyuwaomgdvhulunibwrms

Очистити> Побудувати> Запустити.

Також у Mac Appstore є безкоштовна програма під назвою "CleanDetritus", яка видалить їх.


1
Я використовую Flutter для створення програми iOS та Очистити> Створити> Запустити з Xcode вирішив помилку "вилка ресурсу, інформація про Finder або подібний детрит не дозволена" на консолі флетера.
Хуан Валера

Це спрацювало, спасибі! Рішення для мене було виконати "xattr -rc." у похідній папці даних даних, а не в папці проекту.
BIOS-K

2

Ця проблема прийшла до мене вчора.

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

(What's right)Не оновлюйте зображення таким чином. Після цього я перетягнув зображення на "xcassets" у Xcode. Більше не з’являється більше помилок.


2

Проблема полягає у отриманих даних. Ви повинні очистити отримані дані, а потім очистити проект і створити. Перевірте це посилання.


1

Моя проблема полягає в тому, що кожна зміна, яку я вношу в код, і знову виконуються помилки. Тоді я знаходжу рішення для автоматичного виконання команди при кожній компіляції / виконанні коду.

Завдяки @ rich-sposob я відкрив "Run Script". Потім я ставлю команду "xattr -cr." в польових умовах.

Рішення XCODE


1

Найпростіший виправлення може бути, якщо ви використовуєте git . Спробуйте:

$ git stash
$ git stash pop

Git не зберігає метадані файлів, вищезгадане зніме все це.


У мене була ця проблема під Xcode 9. Рішення вище виправлене. Ви повинні мати проект під контролем джерела git і ще не ввели жодного файлу.
Anessence

0

Моя проблема полягала в тому, що я використовував cordova для створення програми близько 1 року тому, але він не був сумісний з новою версією xcode, тому я просто використовував cordova build iosі він працював знову.


0

Одне з найкращих рішень - це перейти до термінального типу

xattr -cr "Full path of your project"

Щоб знайти повний шлях правої кнопки, натисніть на проект Xcode-> отримати інформацію -> скопіювати шлях та замінити на. Потім введіть команду нижче

xattr -cr "Full path of your project"

Очистіть і зробіть готові.


це цегла мій проект, не використовуйте його, хлопці
Naveed Ahmad

Це заклало мою схему. і виправляючи цю проблему, я видаляю .scodeproj файл випадково, а потім я створив новий проект і переніс попередні файли
Naveed Ahmad

Тоді це сталося через вашу помилку. Я спробував код проживання і не маю жодних проблем.
Rajesh Maurya

Бро після використання вищезгаданої команди в моєму випадку створив проблему для мене. потім, щоб вирішити, що я застряг в іншому питанні.
Naveed Ahmad

0

Якщо команди xattr не підступні, це може бути пов’язано з помилкою XCode 9: давайте спробуємо видалити та повторно додати папку ресурсів (у моєму випадку це було .xcassets), що містять файли, які стосуються Xcode. (ви повинні зрозуміти, які саме файли, на які впливають, попередні через команду xattr -lr)


0

Відкрийте термінал і просто запустіть цю команду.

xattr -cr "шлях до .app файлу"


0

Я також стикаюся з тією ж проблемою, яку виправили, просто перезавантаживши свій Macbook.


0

Я виявив, що якщо додати color tagдо папки підDerivedData , вона дасть вищезгадану помилку під час налагодження на пристрої.

Видаліть color Tagдля мене виправлення цієї помилки.

введіть тут опис зображення


0

Ви можете видалити отримані дані Xcode -> Preferences

І натисніть на стрілку внизу Derived Dataта випорожніть папкуDerived Data


0

Я не знаю, що зі мною трапилося, але коли я запускав програму трепет на тренажері, у мене виникла помилка. Я використав flutter cleanкоманду і видалив отримані дані, і тоді все йде нормально.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.