Programming

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

procodes 2020. 2. 12. 23:44
반응형

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


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

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

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


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

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

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

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

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

오리


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

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


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

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

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


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

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


터미널에서 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

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

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


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

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모든 채워집니다.


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

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


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

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

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


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


Brad Smith의 솔루션이 나를 위해 일했지만 CODE_SIGN_IDENTITY 필드를 제거해야 작동했습니다.


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

작업 버전의 프로젝트 파일로 롤백했습니다. Xcode로 되돌릴 수 없기 때문에 ( Xcode 4의 소스 제어에서 'Revert'옵션은 어디에 있습니까? )-Tortoise, Windows 컴퓨터 및이 자습서를 사용했습니다 ( http://tortoisesvn.net/docs/nightly/TortoiseSVN_en /tsvn-howto-rollback.html )을 사용하여 이전 프로젝트 파일로 롤백합니다.

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


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

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

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

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

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


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

참고 URL : https://stackoverflow.com/questions/1760518/codesign-error-provisioning-profile-cannot-be-found-after-deleting-expired-prof



반응형