[ios] macOS High Sierra Xcode의 코드 서명 오류-리소스 포크, Finder 정보 또는 이와 유사한 장치는 허용되지 않습니다

이미 시도 : 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 :

Apple Developer Website 위의 문제에 대한 답변 여기를 클릭하십시오 .

터미널에서 아래 명령을 실행하십시오 : 첫 번째 goto 프로젝트 루트 폴더

 xattr -cr <path_to_project_dir>

Xcode를 정리하고 다시 빌드하십시오. 건배

해결책 2 :

프로젝트 루트 디렉토리로 가서 xattr -cr 명령을 실행하십시오.

xattr -cr .

Xcode를 정리하고 다시 빌드하십시오. 끝난.

해결책 3 :

파인더 정보를 보유한 파일을 찾아서이 문제점을 해결할 수 있습니다.

터미널에서 프로젝트 루트 디렉토리로 이동하여 실행하십시오.

ls -alR@ . > kundapura.txt

현재 디렉토리에 kundapura.txt가 생성됩니다. 이제 com.apple.FinderInfo를 검색하고 모든 파일에 대해이 속성을 지우십시오. 당신은 이렇게 할 수 있습니다

xattr -c <filename>

예: xattr -c guru.png

모두 지우면 코드 서명이 작동합니다. Xcode를 정리하고 다시 빌드하십시오. 건배

솔루션 4 : Mark McCorkle의 답변에서 영감을 받음

터미널에서 프로젝트의 루트 디렉토리로 이동하여 하나씩 명령을 실행하십시오.

  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를 정리하고 다시 빌드하십시오. 끝난.


답변

이미지 파일 내의 속성에서 오류가 발생했습니다. 이것은 그래픽 디자이너가 Photoshop에서 이미지를 속성으로 저장하여 발생했습니다.

다음은 모든 png 파일을 찾아 해당 속성을 제거하는 간단한 명령입니다. 터미널의 프로젝트 루트 디렉토리에서 이것을 실행하십시오. 청소 및 재건; 문제 해결됨.

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


답변

앱을 공동 디자인 할 때이 오류가 발생하는 경우 :

리소스 포크, 파인더 정보 또는 이와 유사한 디스트 리터 스가 허용되지 않음 명령 / usr / bin / codesign이 종료 코드 1로 실패했습니다.

프로젝트 루트 폴더로 이동하여 실행하십시오.

find . | xargs -0 xattr -c

모든 파일의 속성이 지워집니다.

Sierra에서는 서명 된 번들에있을 수있는 규칙이 강화되었으며 더 이상 리소스 포크가 허용되지 않습니다. AppleScript는 오랫동안 정보를 사용하지 않았지만 리소스 포크에 정보를 영원히 저장해 왔습니다. Sierra를 사용하면 스크립트를 저장할 때이 리소스 포크 정보가 더 이상 저장되지 않습니다.

이는 Sierra 이전 버전에서 마지막으로 저장된 스크립트를 공동 디자인 할 수 없음을 의미합니다. Sierra에 로그인하려면 Sierra에 저장해야합니다.

영향을받을 가능성이있는 사람들은 다른 스크립트를 자신의 스크립트에 묶는 사람입니다 (코르도바?). 임베디드 스크립트가 모두 Sierra에서 다시 저장 될 때까지 컨테이너 스크립트에 서명 할 수 없습니다.

최신 정보:

이것도 효과가있는 것 같습니다 :

xattr -rc .

권한 오류가 충분하지 않은 경우 sudo를 앞에 추가하십시오. sudo xattr -rc .


답변

소스 파일에서 속성을 처리하는 가장 쉬운 방법은 공동 디자인을 실행하기 전에 Xcode에서 아카이브를 정리하는 것입니다. 이것을하기 위해:

  1. XCode에서 대상을 선택하십시오
  2. 빌드 단계 탭을 선택하십시오.
  3. + 기호를 누릅니다
  4. 새 실행 스크립트 단계를 선택하십시오.
  5. 스크립트에 다음을 입력하십시오.

    xattr -cr ~ / 라이브러리 / 개발자 / Xcode / DerivedData || 에코 지우기

이제 타겟을 만들면 공동 디자인을 손상시킨 속성이 지워집니다. 이 단계에서 삭제하면 소스 코드 / 프로젝트 디렉토리를 변경할 필요가 없습니다.

스크립트의 “|| echo Clear”부분은 xattr 오류가 발생하더라도 프로젝트 빌드가 계속되도록합니다.

이 방법은 소스 프로젝트를 변경하지 않고 빌드 된 아카이브 만 속성을 추가하는 코드 저장소에서 DropBox와 같은 프로그램을 사용하는 경우에 좋습니다.

DerivedData 디렉토리와 일치하도록 경로를 변경해야 할 수도 있습니다.이 경로는 codesign 오류 옆에 표시됩니다.

xattr codesign xcode 수정


답변

다음 명령을 사용했습니다. 터미널 창을 사용하십시오. 프로젝트로 이동하여 다음을 실행하십시오.

xattr -rc .


답변

기술 Q & A QA1940 에는이 문제에 대한 공식 Apple 답변이 있습니다.

이것은 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


답변

파일 지우기에 관한 모든 것은 훌륭하지만 여러 프로젝트에는 지루합니다.

그래픽 응용 프로그램 (이전 버전의 Photoshop과 같은)은 외부 파일에 구식으로 추가 정보 (이제 메타 데이터라고합니다.)를 작성하거나 이전 OSX에서 온 파일입니다.

예를 들어 폴더 압축을 풀 때 “com.apple.ResourceFork”및 “com.apple.FinderInfo”

Xcode 8은 빌드에 추가를 거부합니다 ( “git –add.”를 사용하여 프로젝트에 추가했을 때). 터미널에서 재귀 적으로 찾아서 삭제할 수는 있지만 지루할 수 있습니다.

작은 무료 유틸리티를 작성하여 삭제했습니다. 도움이 되길 바랍니다 ..

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