Codesign 오류 : 만료 된 프로파일을 삭제 한 후 프로비저닝 프로파일을 찾을 수 없습니다


500

어제 작동하던 앱을 다시 만들려고했습니다. 프로파일이 만료되었다는 메시지가 표시되어 iPod 및 iTunes에서 제거했습니다. 새 프로파일 (식별자에 *가있는 프로파일)을 선택하면 오류가 발생합니다.

코드 서명 오류 : 프로비저닝 프로파일 (긴 문자열)을 찾을 수 없습니다.

내가 무엇을 놓치고 있습니까? 관련 질문을 살펴본 결과이 시나리오를 아직 보지 못했습니다.

답변:


856

xcode 프로젝트 파일이 엉망이되는 경우가 있습니다. 특히 오래된 프로젝트가 있고 이전 버전의 xcode / iphone sdk로 생성 한 경우 특히 그렇습니다. 당신이해야 할 일은 텍스트 편집기에서 프로젝트 파일을 열고 오류에서 '긴 문자열'을 검색하고 해당 줄을 수동으로 지우는 것입니다. 실제로 프로비저닝 프로파일을 가리키는 모든 라인을 지워야합니다. 그런 다음 xcode에서 프로젝트를 다시 열고 설정으로 이동하여 새 프로필을 다시 선택하십시오. 이를 통해 대부분의 경우 이와 같은 문제가 해결됩니다. 프로비저닝 프로파일을 가리키는 라인은 다음과 같습니다.

PROVISIONING_PROFILE = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";

210
.xcodeproj 파일은 실제로 응용 프로그램 번들과 같은 디렉토리입니다. 파인더에서 마우스 오른쪽 버튼으로 클릭하면 show package contents를 선택할 수 있습니다. 그러면 패키지 내부에 (또는 터미널에 cd로있는) 여러 파일이 표시됩니다. 실제 프로젝트 파일은 확장자가 .pbxproj 인 파일입니다. 텍스트 편집기로 파일을 열면 찾고있는 줄이 'PROVISIONING_PROFILE = 또는' ' "PROVISIONING_PROFILE [sdk = iphoneos *]"='로 시작해야합니다. 그것들을 모두 삭제하면 좋을 것입니다.
Brad The App Guy

2
위의 것 외에도 모든 프로파일을 삭제하고 프로비저닝 포털에서 다시 다운로드 한 다음 XCode로 다시 가져와야한다는 것을 알았습니다. 그런 다음 빌드 설정 / 코드 서명에서 모든 빌드 구성에 적합한 프로파일을 선택하십시오.
Jay Imerman

11
2012 년 XCode4에 대해서는 여전히 유용한 조언입니다. 감사합니다!
Alexey Rusakov

6
... 2014 년 Xcode6으로 여전히 유용한 조언을 찾아보십시오! 대단히 감사합니다!
Tom van Zummeren

4
나를 위해 일한 유일한 것은 환경 설정-> 계정-> 세부 정보보기-> 새로 고침입니다. 개발자 포털에서 모든 프로비저닝 프로파일을 다시로드했습니다. 희망이 도움이 사람
blackhawk4152

129

나를 위해 일했고 프로젝트 파일을 수동으로 편집 할 필요가없는 간단한 솔루션이 있습니다.

XCode의 "그룹 및 파일"창에서 "대상"을 확장하고 앱의 대상을 두 번 클릭하십시오. 그러면 대상에 대한 정보 창이 나타납니다. "빌드"섹션에서 이전 프로파일에 대한 "코드 서명"섹션을 확인하고 올바른 프로파일로 바꾸십시오.

이는 프로젝트 아이콘을 두 번 클릭하고 프로필을 변경하는 것과 다릅니다. 아주 놀라운 :)

오리


1
감사! 나는 다음에 일어날 때 이것을 시도 할 것이다 :)
quantumpotato

6
올바른 빌드 구성을 먼저 선택하십시오. :)
Johnus

1
항상 작동하지는 않습니다. 때로는 첫 번째 답변에 표시된 것처럼 여전히 들어가서 수동으로 변경해야합니다.
SpaceTrucker

SpaceTrucker를 반향하는 또 다른 참고 사항 :이 방법이 항상 작동하는 것은 아닙니다. 허용 된 답변은 Xcode가 해당 팬텀 프로파일을 찾지 못하게합니다.
Simone Manganelli

위의 것 외에도 모든 프로파일을 삭제하고 프로비저닝 포털에서 다시 다운로드 한 다음 XCode로 다시 가져와야한다는 것을 알았습니다. 그런 다음 빌드 설정 / 코드 서명에서 모든 빌드 구성에 적합한 프로파일을 선택하십시오.
Jay Imerman 님이

76
  1. 프로젝트 및 대상 속성-> "코드 서명하지 마십시오"-> 확인-> cmd + S (또는 cmd + B);
  2. 프로젝트 및 대상 속성-> "프로 비전 프로필"-> 확인

  3. 모든 것이 다시 작동합니다!


4
이것은 나를 위해 일한 유일한 솔루션입니다 (XCode4 사용). "코드 서명하지 않음"을 선택한 상태에서 앱을 빌드하는 것은 필수 단계입니다.
Chazbot

이것은 Xcode가 나중에 프로젝트 파일을 작성하는 방식을 바꿀 수 있기 때문에 200 개 이상의 투표를 가진 솔루션보다 더 나은 솔루션처럼 보입니다.
Danyal Aytekin

1
이것은 Xcode 4.2에서 나에게 맞는 올바른 해결책입니다.
Selvin

10

Brad의 대답에 동의합니다. 대상 / 프로젝트를 직접 편집하고 다음과 같은 줄을 삭제 하여이 문제를 해결할 수 있습니다.

PROVISIONING_PROFILE = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";

그러나 Xcode 4.2 이상에서는이 텍스트에 액세스하여 선택하고 삭제할 수있는 훨씬 쉬운 방법이 있습니다. 왼쪽의 프로젝트 네비게이터에서 프로젝트 (프로젝트 네비게이터의 맨 위 줄)를 선택하십시오. 이제보기> 버전 편집기> 버전 편집기 표시를 선택하십시오. 그러면 프로젝트가 텍스트로 표시되고 Xcode의 편집기 창에서 PROVISIONING을 검색하고 번거로운 줄을 삭제할 수 있습니다.


이후 프로젝트를 닫거나 열 필요가 없습니다. 더 나은 접근 방식 :)
바이러스 성

6

이 문제에 대한 변형을 보았습니다. 위의 Brad Smith의 노트에 따라 project.pbxproj 파일로갔습니다.이 경우 XPRO가 할 수 없었던 "나쁜"프로파일 문자열이 발생하지 않고 모든 PROVISIONING_PROFILE 줄이 올바른 것처럼 보입니다. 찾을 수 없습니다.

그러나 해결 방법은 동일합니다. 이론적으로 "양호한"것처럼 보이더라도 project.pbxproj의 모든 PROVISIONING_PROFILE 줄을 삭제 한 다음 XCode에서 프로젝트를 다시여십시오.


4

터미널에서 Brad의 솔루션을 완전히 달성하려면 다음 명령을 사용하십시오.

  1. cd [Xcode project parent]
  2. vi [Xcode project name].xcodeproj/project.pbxproj
  3. /[offending provisioning profile] [Enter]
  4. dd -전체 줄을 삭제
  5. 더 이상 찾을 때까지 n을 누르십시오
  6. 저장 후 닫으려면 Ctrl + x

3

제 경우에는 Window-> Organizer를 열고 장치를 선택하고 오른쪽의 "Provisioning"패널에서 이전 프로비저닝 프로파일을 제거하여 문제를 해결했습니다. 오래된 것은 이미 빨간색 "x"기호로 표시되었지만 iPhone은 여전히 ​​사용하고 있습니다.

그 프로파일 외에도 새로운 프로파일 (같은 이름으로)이 나타 났으며 응용 프로그램을 다시 시작한 후 원활하게 실행했습니다.


+1, 때로는 만료 된 프로필로 인해 설치하지 못했습니다. 동일한 식별자가 없어도! -내 장치에있었습니다.
quantumpotato

이것은 나를 위해 일했지만 XCode를 다시 시작해야 작동했습니다.
Matt

3

브래드의 조언과 몇 가지 추가 변경 사항을 사용 하여이 작업을 한 시간 정도 보냈습니다.

10.7.3, Xcode 4.3.2, iOS 5.1 btw를 사용 하여이 작업을 수행했습니다.

1) 마우스 오른쪽 버튼으로 클릭 myapp.xcodeproj하고 패키지 내용을 선택하십시오.

2) project.pbxproj텍스트 편집기를 사용하여 엽니 다 (형식을 망칠 수 있으므로 텍스트 편집을 권장하지 않습니다)

3) 찾을 때까지 끝까지 스크롤하십시오. /* Begin XCBuildConfiguration section */

4) 디버그 및 릴리스 섹션이 있습니다.

에서 5) 자료 섹션에서 살펴 CODE_SIGN_IDENTITY"CODE_SIGN_IDENTITY[sdk=iphoneos*]"그 모양은 다음과 같습니다

CODE_SIGN_IDENTITY = "iPhone Distribution: MyCompany LLC";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: MyCompany LLC";

6) 한 번 봐 PROVISIONING_PROFILE"PROVISIONING_PROFILE[sdk=iphoneos*]"같이 보일 것이다 :

PROVISIONING_PROFILE = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

Xcode의 프로비저닝 프로파일과 일치해야합니다. Xcode> Window> Organizer> Devices> Provisioning Profiles와 일치하는지 확인하려면 프로파일을 마우스 오른쪽 버튼으로 클릭하고 Finder에서 공개> .mobileprovision의 파일 이름은 프로파일 ID입니다.

7) 아래로 스크롤 project.pbxproj하여 릴리스 섹션의 두 번째 인스턴스를 찾으십시오. 릴리스 섹션의 두 번째 인스턴스는 다음과 같은 주석으로 끝나야합니다./* End XCBuildConfiguration section */

8) 두 번째 섹션은 그래서 첫 번째 섹션과 일치하는지 확인 CODE_SIGN_IDENTITY, "CODE_SIGN_IDENTITY[sdk=iphoneos*]하고, PROVISIONING_PROFILE모든 채워집니다.


2

아직 아무도 말하지 않았으므로 한 가지 제안 : PLEASE PLEASE PLEASE는 내용을 수정하기 전에 전체 .xcodeproj 파일을 백업하십시오. 프로젝트 파일을 조이고 백업하지 않으면 매우 불쾌한 경험이 될 것입니다.

편집을 취소 할 수 있다면 신이 될 수 있습니다.


예, 이것이 SCM 신들이 소스 제어를 만든 이유입니다.
Br.Bill

1

XCode4 에서이 문제가 발생했습니다. 이 문제를 해결하려면 모든 올바른 규정을 디버그 및 릴리스 구성에 모두 넣어야합니다.

앱을 제출하여 보관하려고했습니다. 따라서 디버그 조항을 "코드 서명하지 않음"으로 변경하고 릴리스 조항을 내 앱의 앱 스토어 조항으로 변경합니다.

이 문제를 해결하고 정상적으로 보관할 수 있습니다. 희망이 도움이됩니다.


1

공동 설계에서 임의의 iOS SDK 아래에 비어있는 행을 선택하고 올바른 인증서를 선택하십시오.


1

Brad Smith의 솔루션이 저에게 도움이되었지만 CODE_SIGN_IDENTITY 필드를 제거해야 작동했습니다.


이것은 텍스트 편집기에서 xcode 프로젝트 파일을 수정하여 수동으로 수행되며, 종종 깨진 상태가 될 때 다시 시작하기 위해이 작업을 수행해야했습니다. 제거 할 수있는 두 가지를 아는 것이 종종 매우 도움이됩니다. 좋은 지적.
Warren P

0

불행히도이 접근법은 나에게 적합하지 않았습니다. 그러나 여기 나를 위해 일한 수정 프로그램이 있습니다 (이 작업을 수행하려면 Subversion에서 작업중 인 프로젝트 파일이 필요합니다).

작업 버전의 프로젝트 파일로 롤백했습니다. 이 엑스 코드로 되돌릴 수 없습니다로 ( 엑스 코드 4의 소스 제어에서 '되돌리기'옵션입니까? ) - 나는 거북이, 내 Windows 시스템이 튜토리얼 (사용 http://tortoisesvn.net/docs/nightly/TortoiseSVN_en를 /tsvn-howto-rollback.html 이전 프로젝트 파일로 롤백하려면 )

튜토리얼이 나에게 도움이되지 않았기 때문에 Tortoise를 사용하여 프로젝트 파일의 작업 개정판을 USB 스틱에 저장하여 Mac으로 이식했습니다. 그 후 새로운 깨진 프로젝트 파일을 이전 작업 파일로 바꾸고 청소하고 매력처럼 작동했습니다!


0

TestFlight에서 사용할 새 장치로 AdHoc 프로비저닝 프로파일을 업데이트했기 때문에 문제가 발생했습니다. xcode에 프로젝트 또는 대상의 공동 디자인 빌드 설정에서 프로비저닝 프로파일에 대한 이전 참조가 있기 때문에 이러한 상황이 발생합니다. 내가 수정 한 방식은 다음과 같습니다.

  1. 대상 빌드 설정과 프로젝트 빌드 설정 모두로 이동하십시오. 코드 서명에서 모든 프로비저닝 프로파일을 다른 것으로 변경하십시오.
  2. 관리자에서 기기 / 프로비저닝 프로파일로 이동하여 문제가있는 프로파일을 삭제 한 다음 오른쪽 하단의 새로 고침 버튼을 클릭하십시오.
  3. 대상 및 프로젝트 빌드 설정으로 돌아가서 프로비저닝 프로파일을 적절한 새로 고쳐진 프로비저닝 프로파일로 설정하십시오.

0

적어도 Xcode 5에서는 이것이 나를 위해 문제를 해결 한 것입니다.

프로비저닝 프로파일에서 문제가되는 프로비저닝 프로파일을 선택한 다음 풀다운 메뉴에서 유효한 프로비저닝 프로파일을 선택하십시오.

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


0

프로비저닝 파일의 이전 참조를 제거 할 수 있습니다. 그런 다음 새 프로비저닝 프로파일을 가져온 후 Xcode 빌더를 선택하십시오.

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