Xcode 5 : 코드 서명 자격 오류


149

IOS 7을 지원할 새 응용 프로그램을 만들었습니다. 새 XCode 5 GM을 가져 와서 새로운 프로비저닝 프로파일 및 배포 인증서를 사용하여 앱에 서명하려고했지만 배포에 문제가 있습니다. 나는 지속적으로 다음과 같은 오류가 발생합니다 :

"잘못된 코드 서명 인 타이틀먼트. 앱 번들 서명의 인 타이틀먼트가 프로비저닝 프로파일에 포함 된 인 타이틀먼트와 일치하지 않습니다. 프로비저닝 프로파일에 따르면 번들에 허용되지 않는 키 값이 있습니다. '[XXXX.com.sample 'keychain-access-groups'에 대한 '.company]'.

라는 키 값에 대해서도 동일한 오류가 발생합니다 application-identifier.

errror의 스크린 샷 :

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

답변:


208

해결책은 프로비저닝 프로파일이라고하는 Xcode 5의 새로운 옵션에 있습니다. 프로젝트 대상의 프로비저닝 프로파일을 올바른 프로파일로 설정하면 작동합니다.

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


6
이 답변에 추가하려면 프로비저닝 프로파일에 대해 배포 및 릴리스 유형이 모두 있습니다. 이 같은 오류가 발생했는데 릴리스 유형에 대한 개발 프로필이 설정되어 있기 때문입니다 (배포 유형을 사용하고 있다고 생각하고 릴리스 유형을 알지 못했습니다). 일단 내 배포판 프로필로 설정하면 효과가 있습니다.
Bek

4
이 답변을 더 명확하게하기 위해 결합보기를 사용하여 프로비저닝 프로파일과 코드 서명 ID를 각각의 최상위 행에 설정하려고했습니다. 그렇게해도 여전히 <복수 값>으로 돌아갔습니다. 그러나 두 행을 모두 펼쳤을 때 디버그 / 릴리스 행에 올바른 프로필 / 서명 ID가 나열되었지만 각 구성의 "모든 iOS SDK"하위 행이 모두 없음으로 설정되어있는 것을 보았습니다. 이 상태로 보관하면 모든 "iOS SDK"행을 적절한 값으로 명시 적으로 설정할 때까지 여전히 오류가 발생했습니다.
qix

1
우리는 이것에 며칠 을 보냈습니다 ! 이것에 대한 나쁜 점은 IPA를 구축 할 때 여전히 동일한 프로파일을 다시 선택해야합니다 . 벤자민, 이거 어떻게 찾았 어?
cregox

2
불행히도, 그것은 나를 위해 작동하지 않습니다. developer.apple.com 웹 사이트에서 프로파일을 확인했으며 Game Center 및 In App 구매가 활성화되어 있습니다. 나는 어느 쪽도 사용하지 않고 그것이 문제가 될 수 있는지 궁금합니다.
JScarry

4
추가 설명을 추가하려면 Xcode를 사용하여 프로젝트대상 모두에 대한 프로비저닝 프로파일 정보를 선택할 수 있습니다 . 프로젝트뿐만 아니라 대상 의 설정도 변경해야합니다 .
Brian Stormont 2016 년

55

당신이 나와 같아서 EVERYTHING 을 시도했다고 생각 되면 프로젝트를 10 번 이상 보관하고 키보드에서 머리를 두드리면서이 오류가 발생합니다. 자신에게 호의를 베풀고 단순히 XCode다시 시작하십시오 . 언젠가 애플 ... 당신이 싫어요.


하나의 xcode 세션에서 두 개의 다른 응용 프로그램을 빌드하고 1000 오류가 발생했습니다. 다시 시작했다. 감사합니다!
donmarkusi

이것은 나에게도 효과가있었습니다. Xcode 6.3을 사용하고 있습니다. 코드 서명을 위해 apple dev 계정을 선택할 수 없습니다. "ios 앱 ID 'xxxxxxxxx'가지도 기능 변경을 지원하지 않을 때마다 완전히 관련이없는 오류 메시지가 표시되었습니다." 간단한 xcode 재시작으로 문제가 해결되었습니다.
Sahil

3
내가 당신을 1000 번 찬성 할 수 있다면 이것은 나를 위해 일했습니다. 이것은 XCode 7.1에서 발생했습니다.
마누 칸탄

25

위의 많은 단계를 거쳤지만 마침내 나를 위해 일한 것은 Xcode에서 프로파일을 새로 고치는 것이 었습니다. 내 앱의 배포 프로필이 이미 목록에 표시된 이후 왜 필요한지 확실하지 않습니다. 단계는 다음과 같습니다.

  1. Xcode 환경 설정
  2. 계정 탭
  3. Apple ID를 선택하십시오
  4. Apple ID 세부 사항 패널에서 세부 사항보기 단추를 누르십시오
  5. 왼쪽 하단의 새로 고침 버튼을 누르십시오

2
이 작업을 수행 한 후에는 빌드 및 아카이브 명령을 다시 실행하여 새 프로파일이 적용되었는지 확인해야합니다. (적어도 그것은 저에게 필요했습니다.)
Brent Royal-Gordon

12

필자의 경우 Xcode에서 developer.apple.com의 응용 프로그램 서비스와 동일한 기능을 활성화했습니다. 그게 나를 위해 작동

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

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


이것이 나를 위해 일한 것입니다. 개발자 센터에서 해당 기능을 끌 수 없으며 Xcode 5.1.1로 iOS 7.0을 컴파일해야합니다.
Matt H

6

내 경우 (죄송합니다)-> 일반-> 신원에서 "팀"을 "없음"으로 전환했습니다.

다른 경우에는이 ID를 "없음"에서 ID 및 프로필을 관리하는 개발자 계정으로 전환해야했습니다.

Xcode는 때때로 코드 서명으로 크게 엉망이됩니다. 또는, 우리는 단지 필사자들이 그것이 무엇을하고 있는지 이해하기에 충분히 영리하지 않습니다. 포기하지 마십시오. 우리 모두는 때때로 코드 서명 고문을 겪고 있습니다!


와우, 당신은 내 저녁을 구 했어요, 고마워요 하지만 ... 왜 효과가 있었습니까?
Martin

왜 그것이 효과가 있 었는가… Xcode는 매우 복잡한 제품이라고 생각하며, 아이덴티티와 프로비저닝 프로파일 링은 처음부터 털이 많았습니다. 나는 아무도 더 이상 상호 관계를 완전히 이해하지 못한다고 생각합니다. 난 아니야 이 스레드가 보여주는 것처럼 때로는 시행 착오입니다.
RickJansen 2014 년

5

필자의 경우 릴리스 용 올바른 프로비저닝 프로파일을 설정 한 다음 Xcode를 다시 시작해야했습니다. 다시 시작하기 전에 동일한 프로비저닝 프로파일이 있었고 작동하지 않았습니다. 따라서 때때로 다시 시작하면 기적을 일으킬 수 있습니다. 어쩌면 이것은 누군가를 도울 수 있습니다.


3

누군가 GameCenter를 사용하는 경우 대상에서이 섹션을 확인하십시오. 나는 오래된 프로젝트로 일했고 2 오류가있었습니다 (그러나 모든 것이 잘 작동했습니다). 다시 비활성화하고 활성화하면이 문제가 해결되었습니다.여기에 이미지 설명을 입력하십시오

이 작업은 Game Center 권한을 App ID에 추가하고 자체적으로 처리합니다.


3

1. 프로젝트 폴더로 이동하여 * .entitlements 파일을 삭제하십시오. xcode 프로젝트 대상-> 빌드 설정-> 코드 서명 인 타이틀먼트-값 삭제 3. 청소 4. 실행


3

아,이 영광스러운 오류. 이 오류가 나타날 때마다 다음 사항을 확인하십시오.

1. XCode가 항상 프로비저닝 프로파일 정보에 액세스하도록 허용-XCode를 시작할 때 컴퓨터의 개인 파일에 액세스 할 수 있는지 묻는 메시지가 표시되면 지금이 아니라 항상 액세스 할 수있는 옵션으로 프로비저닝 프로파일 정보를 얻을 수 있습니다. 또는 한 번만-항상 액세스 허용으로 설정하십시오.

2. 프로젝트를 시작하는 오래된 자격 파일이있는 경우 해당 파일과 그 흔적을 제거하십시오. 프로젝트 에 .entitlements 파일이 있으면 삭제하십시오 (또는 확실하지 않은 경우 참조를 제거하십시오). 완전히 삭제할 준비가 되었으면 빌드 설정의 '코드 서명'섹션 아래에있는 '코드 서명 권한'줄이 비어 있는지 확인하십시오.

3. 온라인으로 애플리케이션 서비스를 확인하고 앱의 XCode 서비스와 일치 시키십시오. -Apple 멤버 센터로 이동 하여 앱 의 앱 ID를 확인하고 앱을 클릭하여 '애플리케이션 서비스'를 확인한 후 확인 한 다음 XCode로 이동하여 '기능'섹션을 확인하여 두 사람이 모두 동일한 Apple 서비스 목록을 가지고 있는지 확인하십시오.

4. 확인하기 전에 유효한 프로비저닝 프로파일을 앱에 할당해야합니다 . Apple 멤버 센터에서 앱의 프로비저닝 프로파일을 다시 확인하고, 만료되지 않았는지, 올바른 번들 ID 및 배포가있는 올바른 앱 ID가 있는지 확인하십시오. . 새 프로비저닝 프로파일을 다운로드하여 클릭하여 XCode에 있는지 확인하거나 XCode> 환경 설정> 계정으로 이동 한 후 계정을 클릭하고 세부 사항보기를 클릭 한 후 하단 모서리 단추를 클릭하여 모든 프로파일을 XCode에 동기화하십시오. '코드 서명'섹션에서 지금 선택할 수있는 프로필이 있어야합니다. 올바른 프로비저닝 프로파일이 있으면 'Code Signing Identity'코드를 해당 프로비저닝 프로파일에 대한 올바른 옵션으로 설정할 수 있습니다.

참고-배포 인증서를 수행하는 경우 모든 '코드 서명 ID'행을 디버그 행을 포함하여 배포에 사용하는 ID로 설정하는 데 도움이 될 수 있습니다.

5. 모두 실패 할 경우-프로젝트를 정리하고 XCode를 다시 시작하십시오. 다음에 프로젝트를 열고 유효성 검사를 시도 할 때 일부 Apple Magic이 제대로 작동 할 수 있습니다.


2

오래된 3.1.5 프로젝트를 빌드하는 경우 Xcode 5에는 선택할 수있는 프로비저닝 프로파일이 없기 때문에 불행히도 Benjamin의 대답을 불가능하게하는 몇 가지 버그가 있습니다. 늦은 시간에 Xcode 프로젝트 파일을 많이 읽은 후이 솔루션을 생각해 냈습니다.

  • Xcode 5의 유틸리티 창 (오른쪽)에있는 프로젝트 문서에서 Xcode 3.1 호환에서 Xcode 3.2 호환으로 변경하십시오.
  • 조직 이름을 입력하십시오.
  • 프로젝트를 닫습니다.
  • 프로젝트 파일을 엽니 다 (예 : open -a TextEdit path/to/name.xcodeproj/project.pbxproj
    • 두 개의 배포 절 ( isa=XCBuildConfiguration)을 제거하십시오 .
    • (한 buildConfiguration에서이 개 동반 줄을 제거 PBXNativeTarget하고 하나를 PBXProject XCConfigurationLists)

이제 앱 스토어를 다시 열고 보관하고 제출할 준비가되었습니다. 다시 작동합니다!

내가 생각하는 방법

애플은 라인 어딘가에서 별도의 배포 구성에 대한 필요성을 없애기로 결정했기 때문에 이것이 효과가 있다고 가정합니다. 보관할 때 Xcode는 배포를 위해 자동으로 부호를 코딩합니다. 그것이 처음에 구현되어야했던 방식입니다. 애플이 IDE의 자동 마이그레이션을 할 수 없다는 것은 부끄러운 일입니다. 대신 그들은 개발자들에게 수십 년을 소비 하여이 물건을 작동하게합니다.


2

나는 하루 이상이 문제로 어려움을 겪어 왔으며 여기 저기 인터넷에서 제안 된 모든 종류의 솔루션을 시험해 보았다. 아무것도 효과가 없었습니다 ...

그러나 마침내 문제를 해결했습니다!

내가 가진 문제는 3 년 동안 만지지 않은 오래된 앱에서 발생했으며 이제 오랫동안 기다려온 업데이트를 출시하려고했습니다. 앱을 출시 한 이후 Apple은 인증서와 앱 ID의 작동 방식을 업데이트하고 있습니다. 그들은 사용하는 것이 좋습니다 팀 ID의 개념을 도입했습니다. 특히, 애플의 "인증서, 식별자 및 프로필"사이트는 그 이후로 많은 변화를 겪었습니다.

거기에서 App Store Distribution에 사용했던 프로비저닝 프로파일이 App Id에 연결되어 ED8xxxxxxx.com.rostsolutions.*있지만 제출하려고하는 게임의 App Id를보고 App Id가임을 알았습니다 ATMxxxxxxx.com.rostsolutions.Swisch. 따라서 앱 ID 접두사가 일치하지 않습니다! 그것은 문제의 근원 인 것 같습니다. 그래서 내가 한 것은 App Id에 연결된 새로운 프로비저닝 프로파일을 만드는 것이 었습니다 ATMxxxxxxx.com.rostsolutions.Swisch. 이 프로비저닝 프로파일을 사용하여 App Store에 앱을 성공적으로 제출했으며 이제는 애플 측에서 다른 모든 것이 잘 작동한다고 손가락을 엇갈리게 유지했습니다.

(처음에는 새로운 프로비저닝 프로파일에 와일드 카드 ID로 연결하려고했지만 ATMxxxxxxx.com.rostsolutions.*작동하지 않는 것 같습니다).

그러나 내가 당황하는 것은 iTunes Connects의 이전 App을보고 Binary Details로 이동하면 App Id는 ED8xxxxxxx.com.rostsolutions.Swisch입니다. "인증서, 식별자 및 프로필"페이지에 앱 ID가 표시된 이유는 ATMxxxxxxx.com.rostsolutions.Swisch무엇입니까?


이 Daniel을 게시 해 주셔서 감사합니다. 원하는 인증서와 프로필을 사용하지 못하게하는 비슷한 동작이 나타납니다. 인증서를 다운로드하거나 Xcode에서 인증서를 다운로드 할 때마다 필자의 경우 iCloud 기능 (사용)을 '중단'하는 '팬텀'팀 ID가 나타납니다. 아직 해결책이 없습니다.
David

세상에! 50 개가 넘는 앱에서 이와 동일한 크랩이 발생합니다! 팬텀 팀이 우릴 죽이고있어 왜 애플인가! ????
Sukima

2

기본 설정-> 계정에서 Apple ID를 제거한 다음 다시 추가하여 문제를 해결했습니다. 그런 다음 모든 프로비저닝 프로파일 파일이 세부 정보보기 유틸리티 패널에 표시되었습니다. 프로젝트의 실제 배포 프로비저닝 프로파일 대신 "Mac Team Provisioning Profile : *"을 잘못 선택하여 일반적인 선택이라고 생각했습니다. 프로비저닝 파일은 프로젝트마다 고유해야합니다. 아, 그리고 BTW, 프로비저닝 프로파일에 올바른 권한 (예 : 맵)이 있는지 확인하십시오. 인 타이틀먼트없이 OSX Maps를 사용하여 앱을 출시했으며 Apple에서 승인했지만 프로덕션 버전에는 맵이 표시되지 않았습니다!


1

제 경우에는 같은 문제가 있었으며, 해결책은 보관하기 전에 빌드 설정에서 '릴리스 프로비저닝 프로파일'을 변경하는 것이 었습니다. 이 작업은 App Store 배포와 Ad Hoc 배포를 위해 두 번 수행합니다. 또한 내 아카이브에 의견을 추가합니다. 나의 결론은 "아카이브 재 서명"에 관해 무언가가 깨진다는 것이다.


1

웹 사이트 에서 해당 문제를 해결하기위한 매우 유용한 자습서가 있습니다.

프로젝트 번들 식별자가 iTunes Connect 웹 사이트 에서 입력 한 것과 다른 경우이 문제가 발생할 수 있습니다 .



1

위의 모든 것이 작동하지 않으면 (내 경우에는 며칠 동안 모든 것을 시도 하지 않아도됩니다) Mac 응용 프로그램이 하나뿐입니다. 반론에 조심하십시오!

1) "Mac App Distribution"및 "Mac Installer Distribution"을 모두 수동으로 취소하십시오.
2) 키 체인에서 관련 인증서 및 열린 키를 청소하십시오 ( 경고 : 삭제하기 전에 내보내기)
3) Xcode 재시작 4) (Safari에서) developer.apple로 이동하십시오. .com-> 인증서 등 5) 키 체인-> 인증 지원에서 CertificateSigningRequest.certSigningRequest
생성 6) * .certSigningRequest를 사용하여 "Mac App Distribution"및 "Mac Installer Distribution"을 developer.apple.com에서 직접 작성
7) 프로비저닝 프로파일-> 배포-> AppStore에 대한 사용자 지정 프로비저닝 생성 / 수정 (특별히 이름을 "AppStore에 대한 Mac 프로비저닝 프로파일"이라고합니다.
8) Xcode-> 설정-> 계정-> 계정->새로 고침 9) Xcode Clean-> Archive-> Validate


1

비슷한 문제로 어려움을 겪고 있습니다 (Ad-Hoc 배포를 위해 구축 중이었습니다). 마지막으로 성공적으로 배포 한 이후 변경된 것은 프로비저닝 프로파일에 두 개의 장치를 추가하는 것이 었습니다.

모든 빌드 설정을 이중 및 삼중으로 확인한 후 프로비저닝 프로파일을 재생성하고 (아무것도 변경하지 않고) 다시 다운로드하여 정상적으로 작동했습니다.

따라서 스스로 설명하십시오. 논리적 설명이 없으면 항상 오래된 IT 부두교를 시험해 볼 수 있습니다.

또한 추천 아이폰 구성 유틸리티 의 이름에도 불구하고, 당신은 컴퓨터에있는 프로비저닝 어떤 프로필을 확인하는 데 유용합니다.


1

오류 ITMS-9000 :“이 번들은 유효하지 않습니다. App Store에 제출 된 새로운 앱 및 앱 업데이트는 공개 (GM) 버전의 XCode 5.1.1 이상 및 iOS 7 SDK로 빌드해야합니다. 베타 소프트웨어로 제작 된 앱을 제출하지 마십시오.


0

여러 개발자가 동일한 회원 센터 계정을 사용하는 경우 그 중 하나는 다른 사람이 만든 인증서를 사용할 수 없으므로 컴퓨터를 사용하여 만든 인증서 요청을 사용했습니다.

자신이 만든 인증서 (컴퓨터를 사용하여 만든 인증서 요청)를 사용해야합니다.

또는 개발자에게 개발자 프로필을 보내라고 지시했습니다. 이름을 모릅니다. 다른 컴퓨터에서 만든 인증서를 사용합니다.


0

코드 서명 인 타이틀먼트는 리소스에 리소스에 인 타이틀먼트 파일이 포함되어 있지 않기 때문에 발생합니다. 빌드 설정으로 이동하여 코드 서명을 검색하십시오. 건배


-1

나는 같은 문제가 있었지만 여기에 쓰여진 아무것도 나에게 도움이되지 않았다. 그러나 나는 나를 위해 일한 간단한 방법을 발견했다. 방법은 다음과 같습니다.

1) 프로젝트 및 대상 빌드 설정에서 모든 프로비저닝 프로파일에 대해 "없음"을 선택하고 모든 코드 서명 ID에 대해 "코드 서명 안 함"을 선택하십시오.

2) 이제 Target을 선택하고 빌드 설정으로 이동하십시오. 코드 서명 Identity 릴리스 설정에서 "모든 iOS SDK"에 대해 "iOS 배포"를 선택하십시오. 그런 다음 프로비저닝 프로파일 릴리스 설정에서 "모든 iOS SDK"에 대한 배포 프로파일을 선택하십시오. 그런 다음 코드 서명 Identity Release 설정이 자동으로 "iPhone Distribution"으로 변경됩니다.

3) 빌드를 보관하고 유효성을 검사하십시오. 이제 잘 작동합니다. 그게 다야!

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