2016-06-15 2 views
23

Итак, недавно был выпущен Xcode 8, и я все еще не уверен, что именно может вызвать эту проблему (может быть, это только тот факт, что это бета-версия Xcode или, возможно, что-то неправильно что-то делаю).Ошибка регистрации кода Всякий раз, когда я пытаюсь заменить файлы запаса в новом приложении SceneKit

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

Я создал .scn файл «hero.scn» внутри «hero.scnassets», а также при условии, .png файл внутри папки hero.scnassets под названием «heroTexture.png»

код обычно обеспечивается Xcode 8.0 бета 1 для этого проекта в файле "GameViewController.swift" была отредактирована следующим образом:

Оригинальный код:

... 
let scene = SCNScene(named: "art.scnassets/ship.scn")! 
... 
let ship = scene.rootNode.childNode(withName: "ship", recursively: true)! 
ship.run(SCNAction.repeatForever(SCNAction.rotateBy(x: 0, y: 2, z: 0, duration: 1))) 

отредактировано код:

... 
let scene = SCNScene(named: "hero.scnassets/hero.scn")! 
... 
let hero = scene.rootNode.childNode(withName: "hero", recursively: true)! 
hero.run(SCNAction.repeatForever(SCNAction.rotateBy(x: 0, y: 2, z: 0, duration: 1))) 

Ошибка Поступило:

.../Xapp.app: resource fork, finder information, or similar detritus not allowed 
Command /usr/bin/codesign failed with exit code 1 

Заключение Вопрос:

Почему я получаю ошибку подписания, когда все, что я сделал, это просто заменить файлы?

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

P.S: Вот файловая структура просто для удобства. FileStruct

+0

см .: http://stackoverflow.com/questions/39652867/code-sign-error-in-macos-sierra-xcode-8-resource-fork-finder-information-or/40055759#40055759 – ingconti

ответ

104

Избавьтесь от этой ошибки сборки в три простых шага:

1) удалить самую последнюю папку, относящуюся к вашему приложению в DerivedData (~/Library/Developer/Xcode/DerivedData)

2) в терминале, CD к текущему проекту реж

3) выполнения

xattr -rc.

удалить все расширенные атрибуты (как правило, связанные с файлами изображений, ранее отредактированных в Photoshop)

воссозданию ваше приложение!

+0

Спасибо! - :) – Roland

+5

Что "." точка в конце –

+0

Спасибо! Работал для меня. –

1

Исправлено! По-видимому, это была ошибка с новым Xcode. Что вам нужно сделать, это перезапустить OS X/macOS и очистить проект. После этого он должен работать!

+1

Я ничего не сделал изменен! –

9

Я получил ошибку resource fork, finder information, or similar detritus not allowed после установки версии для MacOS, и в моем случае это было вызвано недействительными атрибутами в некоторых моих файлах.

Я установил его с помощью поиска com.apple.FinderInfo атрибутов, установленных на мои файлы, как этот

ls [email protected] . > investigate.txt

Теперь открытый investigate.txt в вашем любимом текстовом редакторе и выполнить поиск по com.apple.FinderInfo и четкие атрибуты всех файлов, имеющих этот набор атрибутов. Вы можете это сделать, используя

xattr -c <filename> например. xattr -c iTunesArtwork.png

После того как я очистил все свои файлы, я смог снова подписать свое приложение.

1

Я не смог удалить информацию о поиске и перезагрузке, не работал.Для меня (у меня установлена ​​функция Sierra beta), потому что проект был в папке «Мои документы», которая синхронизируется с iCloud. Как только я сделал проект не в папке, синхронизированной с iCloud, он работал нормально, поэтому ошибка может быть связана с iCloud, а также с Xcode

+0

Мой проект не синхронизирован с iCloud, но все равно получите эту ошибку! –

18

Ошибка связана с атрибутами внутри ваших файлов изображений.

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

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

Человек xCode настолько расплывчатый. Я хотел бы, чтобы такие вещи были само собой разумеющимися, я провел около 2 часов, суетился с профилями профилей и подписал сертификаты на сайте разработчика, когда ошибка указывает на проблему с подделкой кода, это действительно проблема с атрибутами изображений! WTF Apple! Нам нужны лучшие отладочные сообщения ... – Paul

+1

Стоит отметить, что для меня мне пришлось очистить свой '~/Library/Developer/Xcode/DerivedData /', а также очистить 'cmd + k'. Только тогда это сработало. Спасибо за легкое решение Mark! –

1

Это, похоже, устраняет проблему. Создайте папку .atlas (т. Е. «MyImages.atlas»), вне корневой папки проекта. Добавьте свои изображения в папку .atlas. Затем изнутри в проекте «добавьте файлы в ...» в папку .atlas (обратите внимание: не помещайте папку .atlas в папку art.scnasstes и убедитесь, что проект «очищен» перед восстановлением)

1

Это изменение усиления безопасности, которая была введена с прошивкой 10, MacOS Sierra, watchOS 3 и tvOS 10.

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

Чтобы узнать, какие файлы вызывают эту ошибку, запустите эту команду в терминале:

$ -lr некоторого атрибута

заменить на путь к вашему фактическому приложение расслоения.

Вот пример этой команды в действии:

$ -lr Foo.app некоторого атрибута

/Applications/Foo.app: com.apple.FinderInfo:

00000000 00 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 | ................ |

Вы также можете удалить все расширенные атрибуты из вашего приложения пачки с командой некоторого атрибута:

$ некоторого атрибута -cr

Обратите внимание, что просмотр файлов в связке с командой Show Package Contents Finder может привести к Поисковик информации к быть добавлен в эти файлы. В противном случае выполните аудит процесса сборки, чтобы узнать, где добавляются расширенные атрибуты.

Смежные вопросы