2016-12-01 10 views
0

내 응용 프로그램의 컴파일 된 버전으로 테스트를 위해 번들을 다른 컴퓨터로 복사했습니다. 이와 충돌 :"코드 서명이 유효하지 않음"오류가있는 다른 컴퓨터에서 응용 프로그램 릴리스 버전을 실행하려고 할 때 오류가 발생했습니다.

$ codesign -vv --deep-verify /Users/remap/Downloads/ndncon2-testing/ndncon.app 
/Users/remap/Downloads/ndncon2-testing/ndncon.app: valid on disk 
/Users/remap/Downloads/ndncon2-testing/ndncon.app: satisfies its Designated Requirement 

$ codesign -dvv /Users/remap/Downloads/ndncon2-testing/ndncon.app 
Executable=/Users/remap/Downloads/ndncon2-testing/ndncon.app/Contents/MacOS/ndncon 
Identifier=ucla.edu.ndncon 
Format=bundle with Mach-O thin (x86_64) 
CodeDirectory v=20200 size=8819 flags=0x0(none) hashes=434+3 location=embedded 
Signature size=4688 
Authority=Mac Developer: [email protected] (H79XXXX834) 
Authority=Apple Worldwide Developer Relations Certification Authority 
Authority=Apple Root CA 
Signed Time=Dec 1, 2016, 12:51:19 PM 
Info.plist entries=26 
TeamIdentifier=XXXXXXXXX 
Sealed Resources version=2 rules=12 files=44 
Internal requirements count=1 size=180 

그리고 마지막으로,

$ sudo spctl --assess -v /Users/remap/Downloads/ndncon2-testing/ndncon.app 
/Users/remap/Downloads/ndncon2-testing/ndncon.app: accepted 
override=security disabled 

는 불평 왜 확실하지 약 1) 내부 동적 :

Dyld Error Message: 
    Library not loaded: @rpath/libxxx.dylib 
    Referenced from: /Users/USER/Downloads/*/ndncon.app/Contents/MacOS/ndncon 
    Reason: no suitable image found. Did find: 
    /Users/remap/Downloads/ndncon2-testing/ndncon.app/Contents/MacOS/../Frameworks/libxxx.dylib: code signature invalid for '/Users/remap/Downloads/ndncon2-testing/ndncon.app/Contents/MacOS/../Frameworks/libxxx.dylib' 

나는 검증을 실행 도서관 및 2) 왜 불평하는지 모두?

답변

3

우리는 지난 몇 일 동안이 문제를 처리하고 마침내 문제를 파악했습니다. 당신이 질문에 언급하지는 않았지만 나는 OS X에서 이것을 실행하고 있다고 의심 할 만하다. 10.10.5

당신의 코드 서명에 sha1 해시가 필요하다. 요세미티에는 sha256 해시 만 있습니다. codesign 유틸리티는 이진의 배포 대상 [LC_VERSION_MIN_MACOSX]을 검사하여 sha1 또는 sha256을 포함하고 적절하게 서명해야하는지 여부를 감지합니다. 어떤 이유로 든 Yosemite의 "codesign -vv"가 분명히 실패 할 경우 유효한 서명을 잘못보고하고 있습니다.

참고 - 요세미티까지 라이브러리 서명이 확인되지 않기 때문에 이전 버전의 OS X에서는 문제가되지 않습니다.

+0

통찰력을 가져 주셔서 감사합니다! 내 버전이 El Captain 10.11.6인데도 이것이 문제가 될 수 있다고 생각합니다. 나는 이것을 점검 할 것이다. 어떻게 그걸 고쳤습니까? – peetonn

+0

이전 전개 대상을 지정하는 재 빌드. 쉬운 방법은 이전 빌드의 OS X에서 라이브러리를 다시 빌드하고 복사하는 것입니다. – hemancuso

+0

10.10 및 10.9에 대한 재구성을 시도해도 도움이되지 않습니다. 라이브러리는 GNU autotools를 사용하여 제작되었으며, 특정 macOS 버전에 라이브러리를 연결하는지 여부를 알고 있습니까? – peetonn