SDK iOS 8.0의 제품 유형 단위 테스트 번들에는 코드 서명이 필요합니다.


128

점점

SDK 'iOS 8.0'의 제품 유형 'Unit Test Bundle'에 코드 서명이 필요합니다.

내 앱 대상은 코드 서명이 잘되어 있지만 테스트 대상은 아닙니다. 새 컴퓨터를 구입하고 컴퓨터에서 새 개발 인증서를 작성하고 그에 따라 프로비저닝 프로파일을 업데이트하고 둘 다 설치했지만이 코드 서명 오류를 통과 할 수 없습니다.

모든 인증서 / 프로파일을 로컬로 닦아서 다시 설치할 수있는 방법은 무엇입니까?

아마 어떤 종류의 버그 일 것입니다.


비슷한 오류가 발생했습니다-내 수정은 빌드 설정으로 이동하여 프로비저닝 프로파일을 자동으로 선택하는 대신 선택하는 것입니다.
scb998

답변:


129

문제는 프로젝트가 소스 제어하에 있고 .xcodeproj를 가져올 때마다 업데이트된다는 것입니다. 또한 프로비저닝 프로파일이 소스 제어의 프로파일과 다르기 때문에 Unit Test 대상이 자동으로 "코드 서명하지 않음"으로 전환됩니다. 따라서 각 git pull 후에 프로파일을 설정해야합니다.

분명히 장치에 배포하는 경우 단위 테스트 대상이 있으면 코드 서명되어야합니다.

단계 :

1) 테스트 대상 (AppnameTests)으로 대상 변경

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

2) "코드 서명 ID"가 "코드 서명 안 함"이 아닌지 확인하십시오. 로그인 할 프로필을 선택하세요

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

그것이 작동하도록 변경해야하는 전부입니다.


위의 질문에서 언급 한 것과 동일한 문제에 직면했지만 해결 방법을 알 수 없으며 동일한 문제에 대한 질문을 게시했습니다. stackoverflow.com/questions/27312745/…
Neal

수행 방법에 대한 단계별 프로세스를 알려주십시오.
Neal

Xcode 8에서 문제가 발생했습니다. 해상도는 귀하의 것과 동일하지 않지만 가깝습니다. 길을 보여 주셔서 감사합니다!
user3259235

또한 '코드 서명 신원'을 설정하는 것 외에도 '개발 팀'을 설정해야 할 수도 있습니다.
bitsand

100

구성표 편집으로 이동 한 다음 빌드 섹션에서 "실행"에서 단위 테스트 대상이 호출되지 않도록 제거하여 문제를 일시적으로 해결했습니다.


1
잘 잡아! 왜 일시적으로 말 합니까? 그것은 나에게 합리적인 해결책처럼 보입니다. 상점에 앱을 제출 했습니까?
mokagio

App Store에 앱을 제출하는 데 아무런 문제가 없습니다. 코드 서명을 통해 더 영구적 인 수정이 가능하다는 것을 알았 기 때문에 "임시"라고 말했지만, 이것은 번거 로움이없는 빠른 수정이었습니다.
ZS

2
감사합니다. 그것은 나에게 좋은 해결책처럼 보입니다. 단위 테스트 대상은 어쨌든 실행되어서는 안됩니다. +1
mokagio

좀 더 자세히 설명해 주시겠습니까? 내가 '빌드'해야한다는 의미입니까? 그리고 나는 'Run에서 호출되는 단위 테스트 제거'를 이해하지 못한다
LKM

66

여기에있는 다른 조언은 도움이되지 않지만로 이동 하여이 오류를 수정했습니다 Product > Scheme > Edit Scheme. 그런 다음 Build왼쪽을 클릭 하고 옆의 확인란을 선택 취소했습니다 AppNameTests. XCode 6.3을 사용하고 있습니다.

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


@Almo "Test"아래에있는 상자를 선택 취소하지 말고 대신 APPNAMEtests 행에서 모든 항목을 선택 취소하십시오 (선택 취소 가능). 답변에 스크린 샷을 포함시켜 설명을 드리겠습니다.
Olivia Stork이

1
나는 그것을했고 Test를 제외하고는 모든 것을 체크하지 않았다. 테스트 코드 서명을 중지하기 위해 .plist 파일을 제거해야한다는 것이 밝혀졌습니다. 내 프로젝트는 정적 라이브러리를 빌드하므로 공동 디자인 할 필요가 없습니다.
Almo

1
알았어 글쎄,이 문제가 발생할 수있는 많은 이유가 있고 문제를 해결하는 많은 방법이있는 것처럼 보입니다. 다른 사람이 솔루션을 언급하지 않은 경우 다른 가능한 답변으로 게시하는 것을 고려할 수 있습니다.
Olivia Stork

3
@huggie ¯ \ _ (ツ) _ / ¯ iOS 프로그래밍에 오신 것을 환영합니다!
Olivia Stork

1
@OliviaStork u는 저를 의무화했습니다. 내 직업을 구해줘 서 정말 고마워
Anurag Shrivastava

29

테스트 대상의 빌드 설정에서 프로비저닝 프로파일을 수동으로 선택하여 수정했습니다.

테스트 대상 설정-> 빌드 설정-> 코드 서명-> 코드 서명 ID. 이전에는 "코드 서명하지 않음"으로 설정되었습니다.


프로비저닝 프로파일을 선택하면 분명히 도움이되었습니다.
Mike Weller

또한 "기본"이 아닌 맨 위에 "전체"필터가 선택되어 있는지 확인하십시오.
Marty

13

또한 빌드 대상 장치를 설정하면 테스트 및 디버깅시 문제가 해결됩니다. 서명 된 코드는 실제 물리적 장치에 앱을 배포하려고 할 때만 필요합니다무화과

필자는 "myIphone"에서 시뮬레이터 iPhone 6 Plus로 변경했으며 앱을 개발하는 동안 문제를 해결했습니다.


1
그러나 앱을 물리적 장치에 배포하고 싶다면 ±는 어떨까요?
Marwen Trabelsi

8

내 경우에는 내가 직면 한 문제는 다음과 같습니다.

CodeSign 오류 : SDK 'iOS 8.4'의 제품 유형 'Unit Test Bundle'에 코드 서명이 필요합니다.

다행스럽게도 대상은 아무것도 구현하지 않았으므로 빠른 솔루션을 제거하십시오.

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


2

작업 CI에서 통합 테스트를 위해 명령 줄에서 xcodebuild를 실행할 때이 오류가 발생했습니다. 프로젝트 수준 설정을 공동 디자인으로 설정하여 작동하게했습니다. 어떤 이유로 대상 설정이 무시되고 프로젝트 설정으로 되돌아갔습니다.


2

위의 해결책으로도 효과가 없다면 다음 단계를 따르십시오.

대상에서 "정보"아래에서 appnameTests를 선택하십시오.

다음 변경

번들 식별자 : com.ProjectName. $ (PRODUCT_NAME : rfc1034identifier)

com.ProjectName.appname으로

번들 이름 : $ (PRODUCT_NAME)

번들 이름 : appname

컴파일 및 실행


1

동일한 섹션 ( '코드 서명')의 '프로비저닝 프로파일'을 자동에서 'MyProvisioningProfile name'으로 변경하여 문제를 해결했습니다.


0

안녕하세요, 오늘도 같은 문제에 직면 해 있습니다. "Spentak"의 답변을 읽은 후 iOSDeveloper로 설정하기 위해 대상의 코드 서명을 시도했지만 여전히 작동하지 않았습니다. 그러나 "프로비저닝 프로파일"을 "자동"으로 변경 한 후 코드 서명 오류없이 프로젝트가 빌드되고 실행되었습니다.


0

때때로 이것은 github 또는 다른 타사 자습서 사이트에서 프로젝트를 다운로드 할 때 발생합니다. 이러한 응용 프로그램은 일반적으로 다른 ID 또는 회사 / 이름으로 서명됩니다.이 경우 솔루션을 해결할 수 없으면 새로운 xcode 프로젝트를 작성하십시오. 모든 헤더 및 구현 파일을 새 프로젝트에 복사하십시오. 또한 프레임 워크 파일과 같은 종속성 파일을 잊지 마십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.