Code Sign error 발생 시의 문제 해결 방법 #1

MAC OS X(Server)를 새로 설치하고 XCODE도 새로 설치한 다음, iPHONE을 재 등록하고 device로 출력물이 나오도록 컴파일해 실행하자 다음과 같은 에러 메시지가 나타났다.

[BEROR]Code Sign error: The identity ‘iPhone Developer’ doesn’t match any valid certificate/private key pair in the default keychain

사용자 삽입 이미지삽질하고 나서 안 거지만 이유는 간단했다. 개발자 등록해서 인증 받은 키가 새로 설치한 MAC OS X에 설치되어 있지 않았고, 또 키가 설치되어있더라도 그 키와 Device Provisioning Profile이 서로 연동되어있지 않았기 때문이다.

그럼 어떻게 해야하는지 설명하겠다.
과거의 인증서 등을 그대로 써도 되는진 모르겠지만, 과거의 기록이 어떤 영향을 줄지 모르므로 무조건 신규발급 받는 것을 택했다. 귀찮으면 걍 패스하고  6번으로 넘어가서 테스트해보라.

0. 유티리티/KeyChain 안의 개발자 인증서와 XCODE/ORGANIZER 안의 Provisioning Profiles를 지운다.
(OS를 새로 설치한 상태라면 없을 것이다.)

1. 개발자 홈페이지로 로그인 하고 오른쪽 메뉴의 iOS Provisioning Portal을 선택한다.
2. 왼쪽의 Certificates 메뉴를 클릭.
3. 인증서 맨 오른쪽의 Revoke를 눌러 인증서를 폐기한다.
4. 새로 인증서를 발급받는다. (다른 페이지를 보고 돌아오는 등 조금 기다리면 활성화 된다)
5. Download를 눌러 인증서를 받아 더블클릭하면 키가 추가된다.

6. iOS Provisionig Portal 의 루트페이지로 돌아가서 하단의 Launch Assistant를 클릭
7. 도움말 창이 뜬다.
사용자 삽입 이미지

사실 이대로만 따라해주면 끝난다. 아주쉽다. 여기서 시키는대로 하면 App ID를 작성하거나 기존 App ID로 Provisioning Profile을 생성해서 넣어주고, 그것을 앞에서 작업한 키와 연동시키는 과정을 수행하도록 짜여있다. 이 과정은 앱 개발자라면 누구나 할 수 있을 정도의 상식선이기 때문에 별도의 설명은 하지 않겠다.

이 과정을 거치지 않으면, 보통 Provisioning Profile이 다음과 같이 나온다. (보통 문제가 되는 상태가 이렇다)

A valid signing identity matching this profile could not be found in your keychain.
사용자 삽입 이미지

이것은 지금 쓰고있는 키와 Provisioning Profile 이 연결 되어있지 않기 때문이다.
 
KeyCahin의 key를 살펴보면 보통 요런 식으로 나와있을 것이다. (아예 Key에 아무런 값이 없을 경우도 있다. 이 때는 위의 0번 과정으로 가서 새로 등록을 하자. 물론 key명은 사용자마다 각각 다를 것이다.)
 

사용자 삽입 이미지

 
하지만, 위에서 나온 과정을 그대로 따라하면 다음과 같이 바뀌어 있음을 알 수 있다.
 

사용자 삽입 이미지

 
private key 앞에 삼각형이 달려있다. 이 부분을 클릭해보면…
 

사용자 삽입 이미지

 
다음과 같이 연결되어있음을 알 수 있다.
이제 XCODE를 실행하고 다시 컴파일해 보면 device상에서 잘 동작하는 것을 알 수 있다.
 
 

사족. 사실 맨 처음 나오는 에러에 추가 설명으로 간단히 개발자 홈에 가서 Launch Assistant를 클릭하라고만 나와주면 “대체 왜 이런 일이 생기는 걸까?” 라고 고민할 필요도 없이 간단할텐데.. 라는 생각을 해 본다.

 
사족2. 일단 위 내용은 개인 개발자 등록시 발생한 문제에 한한다. 다른 환경에선 어떻게 나오는지 해 본 적이 없어서 위와 똑같다고 장담할 수 없다. 그리고 약간의 기억에 의존하는 부분이 있어서 살짝 설명과 다를 수 있지만 크게 다르진 않을 것이다.
사족3. 남의 코드를 가져다 쓰거나 할 때 발생하는 Code Sign error 는 http://asteris.pe.kr/blog/1407 에 정리했다.

끝.

 

3 thoughts on “Code Sign error 발생 시의 문제 해결 방법 #1”

  1. 안녕하세요.
    우연한 기회에 아이폰용 어플을 개발하게 되었어요.
    알고리즘만 확실하면 어플을 만들수 있을 것이라 생각했는데, 그렇지 않네요.
    골프관련 어플인데요. 제가 알고리즘을 포트란으로 만들어 검증 완료한 이후에,
    아이폰 개발자에게 줘서 개발을 완료 했습니다.
    어플 기능에 문제가 생길 때마다 개발자에게 연락해서 수정요구하는게 참 어렵네요.
    그래서 제가 맥북을 사서 xcode사용법을 익혀가며 직접 개발을 해 보려고 합니다.
    우연히 선생님의 블로그를 발견하고 문의드려 봅니다.
    혹시 제가 궁금한 사항에 대해 조언을 해주실 수 있을런지요?
    제 이메일 주소 입니다. 선생님과 소통가능할까요?
    chanhee.ree@gmail.com
    여유가 좀 되신다면… 답변 부탁드리겠습니다.
    감사합니다. ^^

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.