programing

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

topblog 2023. 4. 28. 20:00
반응형

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

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

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

제가 무엇을 빠뜨리고 있나요?저는 관련 질문들을 살펴보았지만 이 시나리오는 이미 보지 못했습니다.

특히 오래된 프로젝트를 가지고 있고 이전 버전의 Xcode/iPhone SDK로 처음 만든 경우 Xcode 프로젝트 파일이 엉망이 될 수 있습니다.

텍스트 편집기에서 프로젝트 파일을 열고 오류에서 '긴 문자열'을 검색한 후 해당 줄을 수동으로 지우는 것이 필요합니다.

실제로 프로비저닝 프로파일을 가리키는 모든 행을 삭제해야 합니다.그런 다음 Xcode에서 프로젝트를 다시 열고 설정으로 이동하여 새 프로필을 다시 선택합니다.이렇게 하면 대부분의 경우 이러한 문제가 해결됩니다.

프로비저닝 프로파일을 가리키는 행은 다음과 같습니다.

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

다음은 프로젝트 파일을 수동으로 편집할 필요가 없는 간단한 솔루션입니다.

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

이것은 프로젝트 아이콘을 두 번 클릭하고 거기서 프로필을 변경하는 것과는 다릅니다.꽤 놀랍습니다 :)

오리

  1. Project & Targets Properties -> "Don't Code Sign" -> OK -> 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 이상에서는 이 텍스트에 액세스하고 선택 및 삭제하는 훨씬 더 쉬운 방법이 있습니다.왼쪽의 프로젝트 탐색기에서 프로젝트(프로젝트 탐색기의 맨 위 줄)를 선택합니다.이제 View > Version Editor > Show Version Editor를 선택하면 됩니다.그러면 프로젝트가 텍스트로 표시되고 Xcode의 편집기 창에서 Provisioning(프로비저닝)을 검색하여 문제가 되는 행을 삭제할 수 있습니다.

방금 이 문제에 대한 변화를 보았습니다.위의 Brad Smith의 메모에 따라 project.pbxproj 파일로 들어갔습니다. 단, 이 경우에는 Xcode에서 찾을 수 없는 "bad" 프로파일 문자열이 발생하지 않고 모든 PROVATION_PROFILE 행이 정확한 것처럼 보였습니다.

그러나 수정 사항은 동일합니다. 이론적으로 "좋아" 보였지만 project.pbxproj의 PROVINING_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" 패널 아래에서 이전 Provisioning Profile을 제거하여 문제가 해결되었습니다.예전 것은 이미 빨간색 "x" 기호가 표시되어 있었지만 아이폰은 여전히 그것을 사용하고 있었습니다.

그 프로필 외에도 새로운 프로필이 (동일한 이름으로) 나타나서 애플리케이션을 다시 시작한 후에는 원활하게 실행할 수 있었습니다.

브래드의 조언과 몇 가지 추가적인 변화를 통해 이 작업을 수행하는 데 한 시간 정도 걸렸습니다.

저는 이것을 10.7.3, Xcode 4.3.2, iOS 5.1 btw를 사용하여 했습니다.

마우스 오른쪽 단추를 클릭합니다.myapp.xcodeproj합니다.

개방적인project.pbxproj텍스트 편집기 사용(형식을 손상시킬 수 있으므로 텍스트 편집은 권장하지 않음)

찾을 때까지 아래로 스크롤합니다./* Begin XCBuildConfiguration section */

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

에서는 릴스섹서살펴다니봅다을음리션을 .CODE_SIGN_IDENTITY&"CODE_SIGN_IDENTITY[sdk=iphoneos*]"다음과 같이 보여야 합니다.

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

»를 .PROVISIONING_PROFILE그리고."PROVISIONING_PROFILE[sdk=iphoneos*]"그들은 다음과 같이 보여야 합니다.

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

이것은 Xcode의 프로비저닝 프로필과 일치해야 합니다.open Xcode > Window > Organizer > Devices > Provisioning Profiles > 프로파일을 마우스 오른쪽 버튼으로 클릭하여 Finder에서 표시 > .mobile provision의 파일 이름은 사용자의 프로파일 ID입니다.

에서 아래로 스크롤합니다.project.pbxproj릴리스 섹션의 두 번째 인스턴스를 찾습니다. 섹션의 두는 " 션 의 주 로 끝 으 야 나 합 니 다 같 은 과 다 음 는 스 턴 스 째 ▁saying ▁of ▁the 다 ▁with ▁should ▁comment ▁end ▁section 합 ▁a ▁second ▁release 니 ▁instance/* End XCBuildConfiguration section */

이 첫 하여 두 번째 섹션과 일치하는지 확인합니다.CODE_SIGN_IDENTITY, "CODE_SIGN_IDENTITY[sdk=iphoneos*],그리고.PROVISIONING_PROFILE모두 입력되어 있습니다.

아직 아무도 말하지 않았기 때문에 한 가지 제안을 하겠습니다: 내용 수정을 시작하기 전에 전체 .xcodeproj 파일을 백업하십시오.프로젝트 파일을 망쳤는데 백업이 없으면 매우 불쾌한 경험을 하게 됩니다.

편집에서 손을 뗄 수 있다는 것은 좋은 일입니다.

Any iOS SDK에서 코드 서명에서 빈 줄을 선택하고 올바른 인증서를 선택합니다.

Brad Smith의 솔루션은 저에게 효과가 있었지만 CODE_SIGN_IDENTITY 필드도 제거해야 작동했습니다.

방금 제 Xcode 4에서 이 문제가 발생했습니다.이 문제를 해결하려면 모든 올바른 프로비저닝을 디버그 및 릴리스 구성에 넣어야 합니다.

앱을 (아카이브를 통해) 제출하려고 했습니다.그래서 저는 디버그 프로비저닝을 "코드 서명하지 않음"으로 변경하고 릴리스 프로비저닝을 앱의 앱스토어 프로비저닝으로 변경합니다.

이렇게 하면 문제가 해결되고 정상적으로 보관할 수 있습니다.도움이 되길 바랍니다.

불행하게도 이 접근법은 저에게 효과가 없었습니다.하지만 저에게 효과적인 해결책이 있습니다(이 문제를 해결하려면 Subversion 등에서 작업 중인 프로젝트 파일이 필요합니다).

프로젝트 파일의 작업 버전으로 롤백했습니다.Xcode로는 되돌릴 수 없기 때문에 (Xcode 4의 Source Control에서 'Return' 옵션은 어디에 있나요?) - 저는 Tortoe, 제 윈도우 머신과 이 튜토리얼(http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-howto-rollback.html) 을 사용하여 이전 프로젝트 파일로 롤백했습니다.

튜토리얼이 제게 맞지 않았기 때문에, 저는 단지 Tortoo를 사용하여 프로젝트 파일의 작업 수정본을 Mac에 이식하기 위해 USB 스틱에 저장했습니다.그 후, 저는 고장난 새 프로젝트 파일을 이전 작업 파일로 교체하고 청소를 완료했으며, 그것은 매력적으로 작동했습니다!

적어도 Xcode 5에서, 이것이 저에게 문제를 해결해 준 것입니다.

프로비저닝 프로파일에서 문제가 있는 프로비저닝 프로파일을 선택한 다음 풀다운 메뉴에서 올바른 프로비저닝 프로파일을 선택합니다.

여기에 이미지 설명 입력

프로비저닝 파일의 이전 참조를 제거할 수 있습니다.그런 다음 새 프로비저닝 프로파일을 가져오고 Xcode Builder를 선택합니다.

AdHoc 프로비저닝 프로필을 TestFlight에서 사용할 수 있도록 새 장치로 업데이트했기 때문에 문제가 있었습니다.Xcode가 프로젝트 또는 대상에 대한 코드 서명 빌드 설정에서 프로비저닝 프로필에 대한 오래된 참조를 가지고 있기 때문에 이러한 현상이 발생한 것으로 추정됩니다.제가 고친 방법은 다음과 같습니다.

  1. 대상 빌드 설정과 프로젝트 빌드 설정으로 모두 이동합니다. 코드 서명에서 모든 프로비저닝 프로파일을 다른 것으로 변경합니다.
  2. Organizer의 장치/프로비저닝 프로필로 이동하여 문제가 되는 프로필을 삭제한 다음 오른쪽 아래에 있는 새로 고침 단추를 클릭합니다.
  3. 대상 및 프로젝트 빌드 설정으로 돌아가서 프로비저닝 프로파일을 새로 새로 업데이트된 적절한 프로비저닝 프로파일로 설정합니다.

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

반응형