Подтвердить что ты не робот

Ошибка подписи кода Всякий раз, когда я пытаюсь заменить файлы запасов в новом приложении SceneKit

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

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

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

Код, обычно предоставляемый Xcode 8.0 beta 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: я знаю, как заставить проблему подписи кода уйти, но это включает перезапуск всего проекта (что я не против). Однако проблема, с которой я сталкиваюсь, - это когда я меняю файлы, я получаю эту ошибку.

PS: Здесь файловая структура просто для удобства. FileStruct

4b9b3361

Ответ 1

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

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

2) в терминале, cd - в текущий проект dir

3) запустите

xattr -rc.

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

перестройте свое приложение!

Ответ 2

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

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

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

Ответ 3

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

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

ls [email protected] . > investigate.txt

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

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

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

Ответ 4

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

Ответ 5

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

Ответ 6

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

Ответ 7

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

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

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

$xattr -lr

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

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

$xattr -lr Foo.app

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

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

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

$xattr -cr

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