Xcode 11.2.1에서 임베디드 프레임 워크 서명이 작동하지 않습니다


18

프레임 워크 (AequumPOCFramework.framework) 내에 프레임 워크 (Alamofire)를 포함시키고 서명하려고하는 작은 개념 증명 앱이 있지만 장치에 배포하려고하면 계속 제공합니다. 나 오류

.... 라이브러리 유효성 검사를 사용하는 프로세스에 사용할 수 없습니다 : 매핑 된 파일에 cdhash가없고 서명이 완전히 없습니까? 코드는 임시 서명되어야합니다.

Alamofire를 내장하지 않고 자체 프레임 워크를 배포하려고하면 모든 것이 제대로 작동합니다.

내 iPhone에 배포 할 때 발생하는 전체 오류는 다음과 같습니다.

dyld : 라이브러리가로드되지 않음 : @ rpath / Alamofire.framework / Alamofire 참조 : /private/var/containers/Bundle/Application/EDB697EB-EA15-4301-B4B6-A8FE1F0212BE/PocIOS.app/Frameworks/AequumPOCFramework.framework/AequumPOCFrame : 적합한 이미지가 없습니다. 찾은 항목 : /private/var/containers/Bundle/Application/EDB697EB-EA15-4301-B4B6-A8FE1F0212BE/PocIOS.app/Frameworks/AequumPOCFramework.framework/Frameworks/Alamofire.framework/Alamofire : 코드 서명 (/ private / var 라이브러리 유효성 검사를 사용하는 프로세스에서 사용할 수없는 /containers/Bundle/Application/EDB697EB-EA15-4301-B4B6-A8FE1F0212BE/PocIOS.app/Frameworks/AequumPOCFramework.framework/Frameworks/Alamofire.framework/Alamofire) : 매핑 된 파일에 cdhash가 없습니다 완전히 서명하지 않았습니까? 코드는 임시 서명해야합니다.

내가 무엇을 잘못하고 있지?

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오


2
여기에 같은 문제가 있습니다. 현재이 문제에 파고 들었습니다. 이미 해결책을 찾았다면 계속 게시하십시오!
Mattk90

2
내가 유일한 사람이 아니라는 것을 알게되어 기쁘다 .... 내가 알게되면, 알려줄 것이다. 또한 전진 할 경우 알려주십시오.
geekyaleks

프레임 워크의 서명 프로세스와 관련이 있다고 이미 말할 수 있습니다. 따라서 Xcode는 임베디드 프레임 워크의 서명이 자신의 프레임 워크 서명과 잘못되었거나 동일하지 않다고 말합니다. 나는 현재 더 깊이 파고있다. 주제에 좋은 소개를 위해이 문서를 확인하십시오 : medium.com/@tally_b/more-unfolding-on-ios-signings-b6886236d7fc
Mattk90

2
예,이 서명 프로세스에 문제가 있습니다 ... 지금은 Alamofire 프레임 워크를 자체 프레임 워크에 포함시키고 서명하고 거기에 서명 한 다음 앱 자체에 서명하고 포함시킵니다. 나는 이런 종류의 짜증을 알고 있지만 적어도 코딩을 유지할 수있게 해줄 것이며 곧 실제 수정이 곧 나올 것입니다.
geekyaleks

1
매우 포괄적 인 답변을 주셔서 감사합니다 ... 지금은 앱 자체에 "임베디드 / 임베디드"프레임 워크에 서명하기로 결정했습니다. 가까운 시일 내에 다른 답변이 표시 될 것입니다 ...
geekyaleks

답변:


15

중첩 된 프레임 워크는 iOS에서 지원되지 않습니다 ( 기술 노트 참조 ). 현재 유일한 합법적 인 솔루션은 "내장 된"프레임 워크를 호스팅 앱에 직접 연결하는 것입니다.

* XCFramework는 주로 플랫폼 별 바이너리의 집합이며 불행히도 프레임 워크 임베드와는 아무런 관련이 없습니다.


이 문제에 대한 뉴스가 있습니까? 저도 같은 문제에 직면하고있어 내 프레임 워크 A가 내 프레임 워크 B를 사용하고 있습니다 만 프레임 워크 A를 포함에 내가 최종 응용 프로그램을 필요로하고 액세스 프레임 워크 B 할 수 없습니다
실비아

@Silvia B를 숨길 필요가 있다면 정적 라이브러리로 바꿀 수 있다고 생각합니다.
berec

0

Alamofire도 프로젝트에 포함시켜야합니다.

예를 들어 Carthage를 사용하고 있으며 프레임 워크의 Cartfile에 Alamofire 라이브러리가 있습니다. 기본 앱에도 동일한 Carfile을 사용해야합니다. 또한 주 앱에 대해 다른 카르타고 작업 (링크 라이브러리, 실행 스크립트 추가)을 수행해야합니다.


그렇습니다. 그러나 모든 프레임 워크를 최종 개발자에게 노출시키는 것이 나의 목표는 아니라는 것을 알았습니다. 나는 하나의 프레임 워크 (내 프레임 워크) 안에 모든 것을 멋지게 묶기를 원했습니다.
geekyaleks
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.