코드 서명 오류: 만료된 프로파일을 삭제한 후 프로비저닝 프로파일을 찾을 수 없습니다.
바로 어제 작동하던 앱을 다시 빌드하려고 했습니다.프로필이 만료되었다는 메시지가 표시되어 iPod 및 iTunes에서 제거했습니다.새 프로필(식별자에 *가 있는 프로필)을 선택하면 다음 오류가 발생합니다.
코드 서명 오류: 프로비저닝 프로파일(긴 문자열)을 찾을 수 없습니다.
제가 무엇을 빠뜨리고 있나요?저는 관련 질문들을 살펴보았지만 이 시나리오는 이미 보지 못했습니다.
특히 오래된 프로젝트를 가지고 있고 이전 버전의 Xcode/iPhone SDK로 처음 만든 경우 Xcode 프로젝트 파일이 엉망이 될 수 있습니다.
텍스트 편집기에서 프로젝트 파일을 열고 오류에서 '긴 문자열'을 검색한 후 해당 줄을 수동으로 지우는 것이 필요합니다.
실제로 프로비저닝 프로파일을 가리키는 모든 행을 삭제해야 합니다.그런 다음 Xcode에서 프로젝트를 다시 열고 설정으로 이동하여 새 프로필을 다시 선택합니다.이렇게 하면 대부분의 경우 이러한 문제가 해결됩니다.
프로비저닝 프로파일을 가리키는 행은 다음과 같습니다.
PROVISIONING_PROFILE = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";
다음은 프로젝트 파일을 수동으로 편집할 필요가 없는 간단한 솔루션입니다.
Xcode의 "그룹 및 파일" 창에서 "대상"을 확장하고 앱의 대상을 두 번 클릭합니다.대상에 대한 정보 창이 나타납니다."빌드" 섹션에서 "코드 서명" 섹션에서 이전 프로파일을 확인하고 올바른 프로파일로 대체합니다.
이것은 프로젝트 아이콘을 두 번 클릭하고 거기서 프로필을 변경하는 것과는 다릅니다.꽤 놀랍습니다 :)
오리
- Project & Targets Properties -> "Don't Code Sign" -> OK -> cmd+S(또는 cmd+B);
프로젝트 및 대상 속성 -> "사용자의 프로비저닝 프로필" -> 확인
모든 것이 다시 작동합니다!
대상/프로젝트를 수동으로 편집하고 다음과 같은 행을 삭제하면 이 문제를 해결할 수 있다는 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의 솔루션을 완전히 달성하려면 다음 명령을 사용합니다.
cd [Xcode project parent]
vi [Xcode project name].xcodeproj/project.pbxproj
/[offending provisioning profile] [Enter]
dd
전체를- 더 이상 찾을 수 없을 때까지 n을 누릅니다.
- 저장하고 닫을 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가 프로젝트 또는 대상에 대한 코드 서명 빌드 설정에서 프로비저닝 프로필에 대한 오래된 참조를 가지고 있기 때문에 이러한 현상이 발생한 것으로 추정됩니다.제가 고친 방법은 다음과 같습니다.
- 대상 빌드 설정과 프로젝트 빌드 설정으로 모두 이동합니다. 코드 서명에서 모든 프로비저닝 프로파일을 다른 것으로 변경합니다.
- Organizer의 장치/프로비저닝 프로필로 이동하여 문제가 되는 프로필을 삭제한 다음 오른쪽 아래에 있는 새로 고침 단추를 클릭합니다.
- 대상 및 프로젝트 빌드 설정으로 돌아가서 프로비저닝 프로파일을 새로 새로 업데이트된 적절한 프로비저닝 프로파일로 설정합니다.
언급URL : https://stackoverflow.com/questions/1760518/codesign-error-provisioning-profile-cannot-be-found-after-deleting-expired-prof
'programing' 카테고리의 다른 글
node.js에서 path.join을 사용해야 합니까? (0) | 2023.04.28 |
---|---|
Excel 또는 OpenOffice의 공통 열에 두 개의 스프레드쉬트 결합 (0) | 2023.04.28 |
사용자가 구성원인 모든 그룹을 가져오는 방법은 무엇입니까? (0) | 2023.04.28 |
Excel VBA에서 화면 강제 업데이트 (0) | 2023.04.28 |
Bash의 기존 파일 하단에 파일 내용 추가 (0) | 2023.04.28 |